geode-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From dschnei...@apache.org
Subject [geode] branch develop updated: GEODE-5960: Add test to verify CommandMarker file for the JDBC connector (#2751)
Date Thu, 01 Nov 2018 20:45:16 GMT
This is an automated email from the ASF dual-hosted git repository.

dschneider pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/geode.git


The following commit(s) were added to refs/heads/develop by this push:
     new dd24a9c  GEODE-5960: Add test to verify CommandMarker file for the JDBC connector
(#2751)
dd24a9c is described below

commit dd24a9c46c14371668dd082d138cc1f6cda7676f
Author: BenjaminPerryRoss <39068135+BenjaminPerryRoss@users.noreply.github.com>
AuthorDate: Thu Nov 1 13:45:08 2018 -0700

    GEODE-5960: Add test to verify CommandMarker file for the JDBC connector (#2751)
    
    Added a new test to the JDBC connector project to verify that the list
    of commands loaded via the scanner and the command marker match the list
    of commands found via these two sources. This is to avoid
    errors/warnings due to commands which appear in Command Marker files but
    don't have available source code.
    
    Co-authored-by: Ben Ross <bross@pivotal.io>
    Co-authored-by: Darrel Schneider <dschneider@pivotal.io>
---
 .../cli/ConnectionsCommandManagerJUnitTest.java    | 80 ++++++++++++++++++++++
 1 file changed, 80 insertions(+)

diff --git a/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/cli/ConnectionsCommandManagerJUnitTest.java
b/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/cli/ConnectionsCommandManagerJUnitTest.java
new file mode 100644
index 0000000..5a325f9
--- /dev/null
+++ b/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/cli/ConnectionsCommandManagerJUnitTest.java
@@ -0,0 +1,80 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more contributor license
+ * agreements. See the NOTICE file distributed with this work for additional information
regarding
+ * copyright ownership. The ASF licenses this file to You under the Apache License, Version
2.0 (the
+ * "License"); you may not use this file except in compliance with the License. You may obtain
a
+ * copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under
the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
express
+ * or implied. See the License for the specific language governing permissions and limitations
under
+ * the License.
+ */
+package org.apache.geode.connectors.jdbc.internal.cli;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.ServiceLoader;
+import java.util.Set;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.springframework.shell.core.CommandMarker;
+
+import org.apache.geode.internal.ClassPathLoader;
+import org.apache.geode.management.cli.GfshCommand;
+import org.apache.geode.management.internal.cli.CommandManager;
+import org.apache.geode.management.internal.cli.commands.InternalGfshCommand;
+import org.apache.geode.management.internal.cli.util.ClasspathScanLoadHelper;
+
+/**
+ * CommandManagerTest - Includes tests to check the CommandManager functions
+ */
+public class ConnectionsCommandManagerJUnitTest {
+
+  private CommandManager commandManager;
+
+  @Before
+  public void before() {
+    commandManager = new CommandManager();
+  }
+
+  /**
+   * tests loadCommands()
+   */
+  @Test
+  public void testCommandManagerLoadCommands() {
+    Set<String> packagesToScan = new HashSet<>();
+    packagesToScan.add(GfshCommand.class.getPackage().getName());
+    packagesToScan.add(InternalGfshCommand.class.getPackage().getName());
+
+    ClasspathScanLoadHelper scanner = new ClasspathScanLoadHelper(packagesToScan);
+    ServiceLoader<CommandMarker> loader =
+        ServiceLoader.load(CommandMarker.class, ClassPathLoader.getLatest().asClassLoader());
+    loader.reload();
+    Iterator<CommandMarker> iterator = loader.iterator();
+
+    Set<Class<?>> foundClasses;
+
+    // geode's commands
+    foundClasses = scanner.scanPackagesForClassesImplementing(CommandMarker.class,
+        GfshCommand.class.getPackage().getName(),
+        InternalGfshCommand.class.getPackage().getName());
+
+    while (iterator.hasNext()) {
+      foundClasses.add(iterator.next().getClass());
+    }
+
+    Set<Class<?>> expectedClasses = new HashSet<>();
+
+    for (CommandMarker commandMarker : commandManager.getCommandMarkers()) {
+      expectedClasses.add(commandMarker.getClass());
+    }
+
+    assertThat(expectedClasses).isEqualTo(foundClasses);
+  }
+}


Mime
View raw message