diff options
author | an4828 <nekrassov@att.com> | 2017-09-26 14:35:17 -0400 |
---|---|---|
committer | an4828 <nekrassov@att.com> | 2017-09-26 14:35:24 -0400 |
commit | 06044df56fb07f4b368888581752855595e7b147 (patch) | |
tree | 6400a3a6ede762887861a621b7fdbfadd25190d5 /dcae-analytics-test/src/main/java | |
parent | 475cb8c867038acd73ff540173d54bac3947c610 (diff) |
TCA: Support for VES/A&AI enrichment
Change-Id: I75e0f8e034b9334e918304739e4d73dd12c1ff62
Signed-off-by: an4828 <nekrassov@att.com>
Issue-ID: DCAEGEN2-116
Diffstat (limited to 'dcae-analytics-test/src/main/java')
5 files changed, 446 insertions, 446 deletions
diff --git a/dcae-analytics-test/src/main/java/org/openecomp/dcae/apod/analytics/test/BaseDCAEAnalyticsCommonTest.java b/dcae-analytics-test/src/main/java/org/openecomp/dcae/apod/analytics/test/BaseDCAEAnalyticsCommonTest.java index 4698f21..4f5015b 100644 --- a/dcae-analytics-test/src/main/java/org/openecomp/dcae/apod/analytics/test/BaseDCAEAnalyticsCommonTest.java +++ b/dcae-analytics-test/src/main/java/org/openecomp/dcae/apod/analytics/test/BaseDCAEAnalyticsCommonTest.java @@ -1,243 +1,243 @@ -/* - * ===============================LICENSE_START====================================== - * dcae-analytics - * ================================================================================ - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed 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. - * ============================LICENSE_END=========================================== - */ - -package org.openecomp.dcae.apod.analytics.test; - -import org.json.JSONException; -import org.junit.Assert; -import org.skyscreamer.jsonassert.JSONAssert; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.io.BufferedReader; -import java.io.File; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.io.ObjectOutputStream; -import java.io.OutputStreamWriter; -import java.lang.reflect.Field; -import java.net.URL; -import java.net.URLClassLoader; -import java.nio.charset.Charset; -import java.nio.file.Paths; -import java.security.AccessController; -import java.security.PrivilegedAction; -import java.util.Arrays; - -import static java.nio.file.Files.deleteIfExists; -import static java.nio.file.Files.exists; - -/** - * Base common test class for all DCAE Analytics Test e.g. unit tests, integration test, CDAP tests etc. - * <p> - * @author Rajiv Singla . Creation Date: 10/19/2016. - */ -abstract class BaseDCAEAnalyticsCommonTest { - - protected static final Logger LOG = LoggerFactory.getLogger(BaseDCAEAnalyticsCommonTest.class); - - /** - * Asserts if expected Json String and actual Json String contain the same properties ignoring - * property order. Simple String assertion might fail as property order during serialization and deserialization - * is generally non-deterministic. Also proper error message are generated more missing or unexpected - * properties - * - * @param expectedJsonString expected Json String - * @param actualJsonString actual Json String - * @throws JSONException Json Exception - */ - public static void assertJson(String expectedJsonString, String actualJsonString) throws JSONException { - JSONAssert.assertEquals(expectedJsonString, actualJsonString, true); - } - - /** - * Converts given file location to String - * - * @param fileLocation location of the file which needs to be converted to String - * @return Contents of file as string - * @throws IOException IOException - */ - public static String fromStream(String fileLocation) throws IOException { - final InputStream jsonFileInputStream = - BaseDCAEAnalyticsCommonTest.class.getClassLoader().getResourceAsStream(fileLocation); - Assert.assertNotNull("Json File Location must be valid", jsonFileInputStream); - try (BufferedReader reader = - new BufferedReader(new InputStreamReader(jsonFileInputStream, Charset.forName("UTF-8")))) { - final StringBuilder result = new StringBuilder(); - final String newLine = System.getProperty("line.separator"); - String line = reader.readLine(); - while (line != null) { - result.append(line) - .append(newLine); - line = reader.readLine(); - } - jsonFileInputStream.close(); - return result.toString(); - } - } - - - /** - * Checks if object can be serialized properly - * - * @param object input object - * @param callingClass calling class - * @throws IOException IOException - */ - public static void testSerialization(Object object, Class<?> callingClass) throws IOException { - final URL location = callingClass.getProtectionDomain().getCodeSource().getLocation(); - final File serializedOutputFile = - new File(location.getPath() + String.format("serialization/%s.ser", object.getClass().getSimpleName())); - - // Maybe file already try deleting it first - final boolean deleteIfExists = deleteIfExists(Paths.get(serializedOutputFile.getPath())); - - if (deleteIfExists) { - LOG.warn("Previous serialization file was overwritten at location: {}", serializedOutputFile.getPath()); - } - - boolean mkdirs = true; - if (!exists(Paths.get(serializedOutputFile.getParentFile().getPath()))) { - mkdirs = serializedOutputFile.getParentFile().mkdirs(); - } - if (mkdirs) { - try (FileOutputStream fileOutputStream = new FileOutputStream(serializedOutputFile); - ObjectOutputStream objectOutputStream = new ObjectOutputStream(fileOutputStream)) { - objectOutputStream.writeObject(object); - LOG.debug("Successfully created serialization file at location: {}", serializedOutputFile.getPath()); - } - } else { - throw new IllegalStateException( - String.format("Failed to create location to store serialization file: %s", - serializedOutputFile)); - } - } - - /** - * Writes Text to Output file - * - * @param textFileLocation - location of text file e.g. textfiles/fileName.json - * @param content - file content - * @param callingClass - calling class - * @throws IOException - ioException - */ - public static void writeToOutputTextFile(String textFileLocation, String content, Class<?> callingClass) throws - IOException { - final URL location = callingClass.getProtectionDomain().getCodeSource().getLocation(); - final File fileLocation = new File(location.getPath() + textFileLocation); - - // Maybe file already try deleting it first - final boolean deleteIfExists = deleteIfExists(Paths.get(fileLocation.getPath())); - - if (deleteIfExists) { - LOG.warn("Previous file will be overwritten at location: {}", fileLocation.getPath()); - } - - boolean mkdirs = true; - if (!exists(Paths.get(fileLocation.getParentFile().getPath()))) { - mkdirs = fileLocation.getParentFile().mkdirs(); - } - if (mkdirs) { - try ( - FileOutputStream fileOutputStream = new FileOutputStream(fileLocation); - OutputStreamWriter outputStream = - new OutputStreamWriter(fileOutputStream, Charset.forName("UTF-8"))) { - outputStream.write(content); - LOG.debug("Successfully created text file at location: {}", fileLocation.getPath()); - } - } else { - throw new IllegalStateException( - String.format("Failed to create location to store text file: %s", fileLocation)); - } - - } - - - /** - * For testing purposes only we may sometime we may want to access private fields of underlying - * object to confirm the values are setup correctly. - * <p> - * This method uses java reflection to get the value to private object in the class - * - * @param object Actual object which has the private field you want to check - * @param fieldName Field name in the Actual Object you want to get the value of - * @param privateFieldClass Type of the private field - * @param <T> Class of Actual Object - * @param <U> Class of private field - * @return value of the private field - */ - public static <T, U> U getPrivateFiledValue(T object, String fieldName, Class<U> privateFieldClass) { - - final Class<?> objectClass = object.getClass(); - try { - final Field privateField = objectClass.getDeclaredField(fieldName); - try { - - // mark private field to be accessible for testing purposes - AccessController.doPrivileged(new PrivilegedAction() { - @Override - public Object run() { - privateField.setAccessible(true); - return null; - } - }); - - - return privateFieldClass.cast(privateField.get(object)); - - } catch (IllegalAccessException e) { - LOG.error("Unable to access field: {}", fieldName); - throw new IllegalStateException(e); - } - } catch (NoSuchFieldException e) { - LOG.error("Unable to locate field name: {} in class: {}", fieldName, objectClass.getSimpleName()); - throw new IllegalStateException(e); - } - - - } - - - /** - * Prints classpath jars which are visible inside the class - * - * @param classLoader classloader of the calling class - */ - public static void dumpClasspath(ClassLoader classLoader) { - - LOG.info("Dumping ClassPath for classloader: {}", classLoader); - - if (classLoader instanceof URLClassLoader) { - - URLClassLoader ucl = (URLClassLoader) classLoader; - LOG.info("\t ==========>>>" + Arrays.toString(ucl.getURLs())); - - } else { - LOG.info("\t(cannot display components as not a URLClassLoader)"); - } - - if (classLoader.getParent() != null) { - dumpClasspath(classLoader.getParent()); - } - } - -} +/*
+ * ===============================LICENSE_START======================================
+ * dcae-analytics
+ * ================================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed 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.
+ * ============================LICENSE_END===========================================
+ */
+
+package org.openecomp.dcae.apod.analytics.test;
+
+import org.json.JSONException;
+import org.junit.Assert;
+import org.skyscreamer.jsonassert.JSONAssert;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.ObjectOutputStream;
+import java.io.OutputStreamWriter;
+import java.lang.reflect.Field;
+import java.net.URL;
+import java.net.URLClassLoader;
+import java.nio.charset.Charset;
+import java.nio.file.Paths;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
+import java.util.Arrays;
+
+import static java.nio.file.Files.deleteIfExists;
+import static java.nio.file.Files.exists;
+
+/**
+ * Base common test class for all DCAE Analytics Test e.g. unit tests, integration test, CDAP tests etc.
+ * <p>
+ * @author Rajiv Singla . Creation Date: 10/19/2016.
+ */
+abstract class BaseDCAEAnalyticsCommonTest {
+
+ protected static final Logger LOG = LoggerFactory.getLogger(BaseDCAEAnalyticsCommonTest.class);
+
+ /**
+ * Asserts if expected Json String and actual Json String contain the same properties ignoring
+ * property order. Simple String assertion might fail as property order during serialization and deserialization
+ * is generally non-deterministic. Also proper error message are generated more missing or unexpected
+ * properties
+ *
+ * @param expectedJsonString expected Json String
+ * @param actualJsonString actual Json String
+ * @throws JSONException Json Exception
+ */
+ public static void assertJson(String expectedJsonString, String actualJsonString) throws JSONException {
+ JSONAssert.assertEquals(expectedJsonString, actualJsonString, true);
+ }
+
+ /**
+ * Converts given file location to String
+ *
+ * @param fileLocation location of the file which needs to be converted to String
+ * @return Contents of file as string
+ * @throws IOException IOException
+ */
+ public static String fromStream(String fileLocation) throws IOException {
+ final InputStream jsonFileInputStream =
+ BaseDCAEAnalyticsCommonTest.class.getClassLoader().getResourceAsStream(fileLocation);
+ Assert.assertNotNull("Json File Location must be valid", jsonFileInputStream);
+ try (BufferedReader reader =
+ new BufferedReader(new InputStreamReader(jsonFileInputStream, Charset.forName("UTF-8")))) {
+ final StringBuilder result = new StringBuilder();
+ final String newLine = System.getProperty("line.separator");
+ String line = reader.readLine();
+ while (line != null) {
+ result.append(line)
+ .append(newLine);
+ line = reader.readLine();
+ }
+ jsonFileInputStream.close();
+ return result.toString();
+ }
+ }
+
+
+ /**
+ * Checks if object can be serialized properly
+ *
+ * @param object input object
+ * @param callingClass calling class
+ * @throws IOException IOException
+ */
+ public static void testSerialization(Object object, Class<?> callingClass) throws IOException {
+ final URL location = callingClass.getProtectionDomain().getCodeSource().getLocation();
+ final File serializedOutputFile =
+ new File(location.getPath() + String.format("serialization/%s.ser", object.getClass().getSimpleName()));
+
+ // Maybe file already try deleting it first
+ final boolean deleteIfExists = deleteIfExists(Paths.get(serializedOutputFile.getPath()));
+
+ if (deleteIfExists) {
+ LOG.warn("Previous serialization file was overwritten at location: {}", serializedOutputFile.getPath());
+ }
+
+ boolean mkdirs = true;
+ if (!exists(Paths.get(serializedOutputFile.getParentFile().getPath()))) {
+ mkdirs = serializedOutputFile.getParentFile().mkdirs();
+ }
+ if (mkdirs) {
+ try (FileOutputStream fileOutputStream = new FileOutputStream(serializedOutputFile);
+ ObjectOutputStream objectOutputStream = new ObjectOutputStream(fileOutputStream)) {
+ objectOutputStream.writeObject(object);
+ LOG.debug("Successfully created serialization file at location: {}", serializedOutputFile.getPath());
+ }
+ } else {
+ throw new IllegalStateException(
+ String.format("Failed to create location to store serialization file: %s",
+ serializedOutputFile));
+ }
+ }
+
+ /**
+ * Writes Text to Output file
+ *
+ * @param textFileLocation - location of text file e.g. textfiles/fileName.json
+ * @param content - file content
+ * @param callingClass - calling class
+ * @throws IOException - ioException
+ */
+ public static void writeToOutputTextFile(String textFileLocation, String content, Class<?> callingClass) throws
+ IOException {
+ final URL location = callingClass.getProtectionDomain().getCodeSource().getLocation();
+ final File fileLocation = new File(location.getPath() + textFileLocation);
+
+ // Maybe file already try deleting it first
+ final boolean deleteIfExists = deleteIfExists(Paths.get(fileLocation.getPath()));
+
+ if (deleteIfExists) {
+ LOG.warn("Previous file will be overwritten at location: {}", fileLocation.getPath());
+ }
+
+ boolean mkdirs = true;
+ if (!exists(Paths.get(fileLocation.getParentFile().getPath()))) {
+ mkdirs = fileLocation.getParentFile().mkdirs();
+ }
+ if (mkdirs) {
+ try (
+ FileOutputStream fileOutputStream = new FileOutputStream(fileLocation);
+ OutputStreamWriter outputStream =
+ new OutputStreamWriter(fileOutputStream, Charset.forName("UTF-8"))) {
+ outputStream.write(content);
+ LOG.debug("Successfully created text file at location: {}", fileLocation.getPath());
+ }
+ } else {
+ throw new IllegalStateException(
+ String.format("Failed to create location to store text file: %s", fileLocation));
+ }
+
+ }
+
+
+ /**
+ * For testing purposes only we may sometime we may want to access private fields of underlying
+ * object to confirm the values are setup correctly.
+ * <p>
+ * This method uses java reflection to get the value to private object in the class
+ *
+ * @param object Actual object which has the private field you want to check
+ * @param fieldName Field name in the Actual Object you want to get the value of
+ * @param privateFieldClass Type of the private field
+ * @param <T> Class of Actual Object
+ * @param <U> Class of private field
+ * @return value of the private field
+ */
+ public static <T, U> U getPrivateFiledValue(T object, String fieldName, Class<U> privateFieldClass) {
+
+ final Class<?> objectClass = object.getClass();
+ try {
+ final Field privateField = objectClass.getDeclaredField(fieldName);
+ try {
+
+ // mark private field to be accessible for testing purposes
+ AccessController.doPrivileged(new PrivilegedAction() {
+ @Override
+ public Object run() {
+ privateField.setAccessible(true);
+ return null;
+ }
+ });
+
+
+ return privateFieldClass.cast(privateField.get(object));
+
+ } catch (IllegalAccessException e) {
+ LOG.error("Unable to access field: {}", fieldName);
+ throw new IllegalStateException(e);
+ }
+ } catch (NoSuchFieldException e) {
+ LOG.error("Unable to locate field name: {} in class: {}", fieldName, objectClass.getSimpleName());
+ throw new IllegalStateException(e);
+ }
+
+
+ }
+
+
+ /**
+ * Prints classpath jars which are visible inside the class
+ *
+ * @param classLoader classloader of the calling class
+ */
+ public static void dumpClasspath(ClassLoader classLoader) {
+
+ LOG.info("Dumping ClassPath for classloader: {}", classLoader);
+
+ if (classLoader instanceof URLClassLoader) {
+
+ URLClassLoader ucl = (URLClassLoader) classLoader;
+ LOG.info("\t ==========>>>" + Arrays.toString(ucl.getURLs()));
+
+ } else {
+ LOG.info("\t(cannot display components as not a URLClassLoader)");
+ }
+
+ if (classLoader.getParent() != null) {
+ dumpClasspath(classLoader.getParent());
+ }
+ }
+
+}
diff --git a/dcae-analytics-test/src/main/java/org/openecomp/dcae/apod/analytics/test/BaseDCAEAnalyticsIT.java b/dcae-analytics-test/src/main/java/org/openecomp/dcae/apod/analytics/test/BaseDCAEAnalyticsIT.java index cbc7f1c..a63d32c 100644 --- a/dcae-analytics-test/src/main/java/org/openecomp/dcae/apod/analytics/test/BaseDCAEAnalyticsIT.java +++ b/dcae-analytics-test/src/main/java/org/openecomp/dcae/apod/analytics/test/BaseDCAEAnalyticsIT.java @@ -1,29 +1,29 @@ -/* - * ===============================LICENSE_START====================================== - * dcae-analytics - * ================================================================================ - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed 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. - * ============================LICENSE_END=========================================== - */ - -package org.openecomp.dcae.apod.analytics.test; - -/** - * Base class for all DCAE Analytics Integration Tests - * <p> - * @author Rajiv Singla . Creation Date: 10/6/2016. - */ -public abstract class BaseDCAEAnalyticsIT extends BaseDCAEAnalyticsCommonTest { -} +/*
+ * ===============================LICENSE_START======================================
+ * dcae-analytics
+ * ================================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed 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.
+ * ============================LICENSE_END===========================================
+ */
+
+package org.openecomp.dcae.apod.analytics.test;
+
+/**
+ * Base class for all DCAE Analytics Integration Tests
+ * <p>
+ * @author Rajiv Singla . Creation Date: 10/6/2016.
+ */
+public abstract class BaseDCAEAnalyticsIT extends BaseDCAEAnalyticsCommonTest {
+}
diff --git a/dcae-analytics-test/src/main/java/org/openecomp/dcae/apod/analytics/test/BaseDCAEAnalyticsUnitTest.java b/dcae-analytics-test/src/main/java/org/openecomp/dcae/apod/analytics/test/BaseDCAEAnalyticsUnitTest.java index ddc996a..6b7cc9d 100644 --- a/dcae-analytics-test/src/main/java/org/openecomp/dcae/apod/analytics/test/BaseDCAEAnalyticsUnitTest.java +++ b/dcae-analytics-test/src/main/java/org/openecomp/dcae/apod/analytics/test/BaseDCAEAnalyticsUnitTest.java @@ -1,29 +1,29 @@ -/* - * ===============================LICENSE_START====================================== - * dcae-analytics - * ================================================================================ - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed 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. - * ============================LICENSE_END=========================================== - */ - -package org.openecomp.dcae.apod.analytics.test; - -/** - * Base class for all DCAE Analytics Unit Tests - * <p> - * @author Rajiv Singla . Creation Date: 10/6/2016. - */ -public abstract class BaseDCAEAnalyticsUnitTest extends BaseDCAEAnalyticsCommonTest { -} +/*
+ * ===============================LICENSE_START======================================
+ * dcae-analytics
+ * ================================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed 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.
+ * ============================LICENSE_END===========================================
+ */
+
+package org.openecomp.dcae.apod.analytics.test;
+
+/**
+ * Base class for all DCAE Analytics Unit Tests
+ * <p>
+ * @author Rajiv Singla . Creation Date: 10/6/2016.
+ */
+public abstract class BaseDCAEAnalyticsUnitTest extends BaseDCAEAnalyticsCommonTest {
+}
diff --git a/dcae-analytics-test/src/main/java/org/openecomp/dcae/apod/analytics/test/annotation/GuiceModules.java b/dcae-analytics-test/src/main/java/org/openecomp/dcae/apod/analytics/test/annotation/GuiceModules.java index 8c62db2..1c20f17 100644 --- a/dcae-analytics-test/src/main/java/org/openecomp/dcae/apod/analytics/test/annotation/GuiceModules.java +++ b/dcae-analytics-test/src/main/java/org/openecomp/dcae/apod/analytics/test/annotation/GuiceModules.java @@ -1,45 +1,45 @@ -/* - * ===============================LICENSE_START====================================== - * dcae-analytics - * ================================================================================ - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed 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. - * ============================LICENSE_END=========================================== - */ - -package org.openecomp.dcae.apod.analytics.test.annotation; - -import java.lang.annotation.ElementType; -import java.lang.annotation.Inherited; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -/** - * Annotation which can be used to provide test guice modules - * <p> - * @author Rajiv Singla . Creation Date: 10/20/2016. - */ -@Target(ElementType.TYPE) -@Retention(RetentionPolicy.RUNTIME) -@Inherited -public @interface GuiceModules { - - /** - * Test Modules - * - * @return module classes - */ - Class<?>[] value(); -} +/*
+ * ===============================LICENSE_START======================================
+ * dcae-analytics
+ * ================================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed 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.
+ * ============================LICENSE_END===========================================
+ */
+
+package org.openecomp.dcae.apod.analytics.test.annotation;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Inherited;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * Annotation which can be used to provide test guice modules
+ * <p>
+ * @author Rajiv Singla . Creation Date: 10/20/2016.
+ */
+@Target(ElementType.TYPE)
+@Retention(RetentionPolicy.RUNTIME)
+@Inherited
+public @interface GuiceModules {
+
+ /**
+ * Test Modules
+ *
+ * @return module classes
+ */
+ Class<?>[] value();
+}
diff --git a/dcae-analytics-test/src/main/java/org/openecomp/dcae/apod/analytics/test/runner/GuiceJUnitRunner.java b/dcae-analytics-test/src/main/java/org/openecomp/dcae/apod/analytics/test/runner/GuiceJUnitRunner.java index 6353442..93ef603 100644 --- a/dcae-analytics-test/src/main/java/org/openecomp/dcae/apod/analytics/test/runner/GuiceJUnitRunner.java +++ b/dcae-analytics-test/src/main/java/org/openecomp/dcae/apod/analytics/test/runner/GuiceJUnitRunner.java @@ -1,100 +1,100 @@ -/* - * ===============================LICENSE_START====================================== - * dcae-analytics - * ================================================================================ - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed 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. - * ============================LICENSE_END=========================================== - */ - -package org.openecomp.dcae.apod.analytics.test.runner; - -import com.google.inject.Guice; -import com.google.inject.Injector; -import com.google.inject.Module; -import org.junit.runners.BlockJUnit4ClassRunner; -import org.junit.runners.model.InitializationError; -import org.openecomp.dcae.apod.analytics.test.annotation.GuiceModules; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.util.Arrays; - -/** - * A custom Junit Runner which can be used to run Guice Test with custom Test Modules - * <p> - * @author Rajiv Singla . Creation Date: 10/20/2016. - */ -public class GuiceJUnitRunner extends BlockJUnit4ClassRunner { - - private static final Logger LOG = LoggerFactory.getLogger(GuiceJUnitRunner.class); - - private final Injector injector; - - public GuiceJUnitRunner(Class<?> klass) throws InitializationError { - super(klass); - Class<?>[] classes = getModulesFor(klass); - injector = createInjectorFor(classes); - } - - - /** - * Returns a new fixture for running a test. Injects Guice members - */ - @Override - public Object createTest() throws Exception { - Object obj = super.createTest(); - injector.injectMembers(obj); - return obj; - } - - - /** - * Creates new Guice Injector and registers Guice test modules - * - * @param classes test module classes - * @return Guice injector with test modules - * @throws InitializationError - */ - private Injector createInjectorFor(Class<?>[] classes) throws InitializationError { - Module[] modules = new Module[classes.length]; - for (int i = 0; i < classes.length; i++) { - try { - modules[i] = (Module) classes[i].newInstance(); - } catch (InstantiationException | IllegalAccessException e) { - throw new InitializationError(e); - } - } - LOG.debug("Creating Junit Test Runner with Guice Test Modules: {}", Arrays.toString(modules)); - return Guice.createInjector(modules); - } - - /** - * Extract user provide test modules from the {@link GuiceModules} annotation - * - * @param klass Target class which is running the test - * @return Guice modules contained passed in annotation of Guice Modules - * @throws InitializationError - */ - private Class<?>[] getModulesFor(Class<?> klass) throws InitializationError { - GuiceModules annotation = klass.getAnnotation(GuiceModules.class); - if (annotation == null) { - throw new InitializationError( - "Missing @GuiceModules annotation for unit test '" + klass.getName() - + "'"); - } - return annotation.value(); - } - -} +/*
+ * ===============================LICENSE_START======================================
+ * dcae-analytics
+ * ================================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed 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.
+ * ============================LICENSE_END===========================================
+ */
+
+package org.openecomp.dcae.apod.analytics.test.runner;
+
+import com.google.inject.Guice;
+import com.google.inject.Injector;
+import com.google.inject.Module;
+import org.junit.runners.BlockJUnit4ClassRunner;
+import org.junit.runners.model.InitializationError;
+import org.openecomp.dcae.apod.analytics.test.annotation.GuiceModules;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.Arrays;
+
+/**
+ * A custom Junit Runner which can be used to run Guice Test with custom Test Modules
+ * <p>
+ * @author Rajiv Singla . Creation Date: 10/20/2016.
+ */
+public class GuiceJUnitRunner extends BlockJUnit4ClassRunner {
+
+ private static final Logger LOG = LoggerFactory.getLogger(GuiceJUnitRunner.class);
+
+ private final Injector injector;
+
+ public GuiceJUnitRunner(Class<?> klass) throws InitializationError {
+ super(klass);
+ Class<?>[] classes = getModulesFor(klass);
+ injector = createInjectorFor(classes);
+ }
+
+
+ /**
+ * Returns a new fixture for running a test. Injects Guice members
+ */
+ @Override
+ public Object createTest() throws Exception {
+ Object obj = super.createTest();
+ injector.injectMembers(obj);
+ return obj;
+ }
+
+
+ /**
+ * Creates new Guice Injector and registers Guice test modules
+ *
+ * @param classes test module classes
+ * @return Guice injector with test modules
+ * @throws InitializationError
+ */
+ private Injector createInjectorFor(Class<?>[] classes) throws InitializationError {
+ Module[] modules = new Module[classes.length];
+ for (int i = 0; i < classes.length; i++) {
+ try {
+ modules[i] = (Module) classes[i].newInstance();
+ } catch (InstantiationException | IllegalAccessException e) {
+ throw new InitializationError(e);
+ }
+ }
+ LOG.debug("Creating Junit Test Runner with Guice Test Modules: {}", Arrays.toString(modules));
+ return Guice.createInjector(modules);
+ }
+
+ /**
+ * Extract user provide test modules from the {@link GuiceModules} annotation
+ *
+ * @param klass Target class which is running the test
+ * @return Guice modules contained passed in annotation of Guice Modules
+ * @throws InitializationError
+ */
+ private Class<?>[] getModulesFor(Class<?> klass) throws InitializationError {
+ GuiceModules annotation = klass.getAnnotation(GuiceModules.class);
+ if (annotation == null) {
+ throw new InitializationError(
+ "Missing @GuiceModules annotation for unit test '" + klass.getName()
+ + "'");
+ }
+ return annotation.value();
+ }
+
+}
|