Add test contracts for ValidatorExecutor and TopologyTemplateValidatorExecutor

Signed-off-by: Francis Toth <francis.toth@yoppworks.com>
Change-Id: I10f0de565588e0bc7cd0f47ba7f714eab3f1f7f7
Issue-ID: SDC-2499
diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/executor/ServiceValidatorExecutor.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/executor/ServiceValidatorExecutor.java
index ff27b66..27bcd1f 100644
--- a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/executor/ServiceValidatorExecutor.java
+++ b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/executor/ServiceValidatorExecutor.java
@@ -39,8 +39,7 @@
 
     @Autowired(required = false)
     public ServiceValidatorExecutor(JanusGraphDao janusGraphDao) {
-        super(janusGraphDao);
-        setName("SERVICE_VALIDATOR");
+        super(janusGraphDao, "SERVICE_VALIDATOR");
     }
 
     @Override
diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/executor/TopologyTemplateValidatorExecutor.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/executor/TopologyTemplateValidatorExecutor.java
index 9ba2f5a..95a9fce 100644
--- a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/executor/TopologyTemplateValidatorExecutor.java
+++ b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/executor/TopologyTemplateValidatorExecutor.java
@@ -27,6 +27,7 @@
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
+import lombok.Getter;
 import org.openecomp.sdc.asdctool.impl.validator.report.Report;
 import org.openecomp.sdc.asdctool.impl.validator.report.ReportFile.TXTFile;
 import org.openecomp.sdc.asdctool.impl.validator.tasks.TopologyTemplateValidationTask;
@@ -39,29 +40,21 @@
 import org.openecomp.sdc.be.datatypes.enums.GraphPropertyEnum;
 import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum;
 import org.openecomp.sdc.common.log.wrappers.Logger;
-import org.springframework.beans.factory.annotation.Autowired;
 
 public class TopologyTemplateValidatorExecutor {
 
     private static final Logger log = Logger.getLogger(VfValidatorExecutor.class);
 
-    protected JanusGraphDao janusGraphDao;
+    private final JanusGraphDao janusGraphDao;
 
-    protected String name;
+    @Getter
+    private final String name;
 
-    @Autowired
-    public TopologyTemplateValidatorExecutor(JanusGraphDao janusGraphDao) {
+    public TopologyTemplateValidatorExecutor(JanusGraphDao janusGraphDao, String name) {
         this.janusGraphDao = janusGraphDao;
-    }
-
-    public void setName(String name) {
         this.name = name;
     }
 
-    public String getName() {
-        return name;
-    }
-
     protected List<GraphVertex> getVerticesToValidate(ComponentTypeEnum type) {
         Map<GraphPropertyEnum, Object> props = new EnumMap<>(GraphPropertyEnum.class);
         props.put(GraphPropertyEnum.COMPONENT_TYPE, type.name());
diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/executor/VfValidatorExecutor.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/executor/VfValidatorExecutor.java
index 4729e63..f8aaf54 100644
--- a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/executor/VfValidatorExecutor.java
+++ b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/executor/VfValidatorExecutor.java
@@ -36,9 +36,8 @@
 
     @Autowired(required = false)
     public VfValidatorExecutor(List<VfValidationTask> tasks, JanusGraphDao janusGraphDao) {
-        super(janusGraphDao);
+        super(janusGraphDao, "BASIC_VF_VALIDATOR");
         this.tasks = tasks;
-        setName("BASIC_VF_VALIDATOR");
     }
 
     @Override
diff --git a/asdctool/src/test/java/org/openecomp/sdc/asdctool/impl/validator/executor/ServiceValidatorExecutorTest.java b/asdctool/src/test/java/org/openecomp/sdc/asdctool/impl/validator/executor/ServiceValidatorExecutorTest.java
index bc0eb25..4888f42 100644
--- a/asdctool/src/test/java/org/openecomp/sdc/asdctool/impl/validator/executor/ServiceValidatorExecutorTest.java
+++ b/asdctool/src/test/java/org/openecomp/sdc/asdctool/impl/validator/executor/ServiceValidatorExecutorTest.java
@@ -20,29 +20,13 @@
 
 package org.openecomp.sdc.asdctool.impl.validator.executor;
 
-import static org.mockito.Mockito.mock;
-import static org.openecomp.sdc.asdctool.impl.validator.report.ReportFile.makeTxtFile;
-import static org.openecomp.sdc.asdctool.impl.validator.report.ReportFileWriterTestFactory.makeConsoleWriter;
-
-import org.junit.Test;
-import org.openecomp.sdc.asdctool.impl.validator.report.Report;
 import org.openecomp.sdc.be.dao.jsongraph.JanusGraphDao;
 
-public class ServiceValidatorExecutorTest {
+public class ServiceValidatorExecutorTest
+    implements ValidatorExecutorContract, TopologyTemplateValidatorExecutorContract {
 
-    private ServiceValidatorExecutor createTestSubject() {
-        JanusGraphDao janusGraphDaoMock = mock(JanusGraphDao.class);
-        return new ServiceValidatorExecutor(janusGraphDaoMock);
-    }
-
-    @Test
-    public void testGetName() {
-        createTestSubject().getName();
-    }
-
-    @Test(expected = NullPointerException.class)
-    public void testExecuteValidations() {
-        Report report = Report.make();
-        createTestSubject().executeValidations(report, makeTxtFile(makeConsoleWriter()));
+    @Override
+    public ServiceValidatorExecutor createTestSubject(JanusGraphDao dao) {
+        return new ServiceValidatorExecutor(dao);
     }
 }
diff --git a/asdctool/src/test/java/org/openecomp/sdc/asdctool/impl/validator/executor/TopologyTemplateValidatorExecutorContract.java b/asdctool/src/test/java/org/openecomp/sdc/asdctool/impl/validator/executor/TopologyTemplateValidatorExecutorContract.java
new file mode 100644
index 0000000..8817826
--- /dev/null
+++ b/asdctool/src/test/java/org/openecomp/sdc/asdctool/impl/validator/executor/TopologyTemplateValidatorExecutorContract.java
@@ -0,0 +1,40 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2020 Bell 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.sdc.asdctool.impl.validator.executor;
+
+import static org.junit.jupiter.api.Assertions.assertThrows;
+import static org.mockito.Mockito.mock;
+import static org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum.PRODUCT;
+
+import org.junit.jupiter.api.Test;
+import org.openecomp.sdc.be.dao.jsongraph.JanusGraphDao;
+
+public interface TopologyTemplateValidatorExecutorContract {
+
+    TopologyTemplateValidatorExecutor createTestSubject(JanusGraphDao dao);
+
+    @Test
+    default void testGetVerticesToValidate() {
+        JanusGraphDao janusGraphDaoMock = mock(JanusGraphDao.class);
+        TopologyTemplateValidatorExecutor testSubject = createTestSubject(janusGraphDaoMock);
+        assertThrows(NullPointerException.class,
+            () -> testSubject.getVerticesToValidate(PRODUCT));
+    }
+}
diff --git a/asdctool/src/test/java/org/openecomp/sdc/asdctool/impl/validator/executor/TopologyTemplateValidatorExecutorTest.java b/asdctool/src/test/java/org/openecomp/sdc/asdctool/impl/validator/executor/TopologyTemplateValidatorExecutorTest.java
deleted file mode 100644
index 57e99c3..0000000
--- a/asdctool/src/test/java/org/openecomp/sdc/asdctool/impl/validator/executor/TopologyTemplateValidatorExecutorTest.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * SDC
- * ================================================================================
- * Copyright (C) 2019 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.sdc.asdctool.impl.validator.executor;
-
-import org.junit.jupiter.api.Assertions;
-import org.junit.jupiter.api.Test;
-import org.openecomp.sdc.be.dao.jsongraph.JanusGraphDao;
-import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum;
-
-import static org.mockito.Mockito.mock;
-
-public class TopologyTemplateValidatorExecutorTest {
-
-	private TopologyTemplateValidatorExecutor createTestSubject() {
-		JanusGraphDao janusGraphDaoMock = mock(JanusGraphDao.class);
-		return new TopologyTemplateValidatorExecutor(janusGraphDaoMock);
-	}
-
-	@Test
-	public void testSetName() {
-		TopologyTemplateValidatorExecutor testSubject;
-		String name = "";
-
-		// default test
-		testSubject = createTestSubject();
-		testSubject.setName(name);
-	}
-
-	@Test
-	public void testGetName() {
-		TopologyTemplateValidatorExecutor testSubject;
-		String result;
-
-		// default test
-		testSubject = createTestSubject();
-		result = testSubject.getName();
-	}
-
-	@Test
-	public void testGetVerticesToValidate() {
-		TopologyTemplateValidatorExecutor testSubject;
-
-		// default test
-		testSubject = createTestSubject();
-		Assertions.assertThrows(NullPointerException.class, () -> testSubject.getVerticesToValidate(ComponentTypeEnum.PRODUCT));
-	}
-}
diff --git a/asdctool/src/test/java/org/openecomp/sdc/asdctool/impl/validator/executor/ValidatorExecutorContract.java b/asdctool/src/test/java/org/openecomp/sdc/asdctool/impl/validator/executor/ValidatorExecutorContract.java
new file mode 100644
index 0000000..de1f049
--- /dev/null
+++ b/asdctool/src/test/java/org/openecomp/sdc/asdctool/impl/validator/executor/ValidatorExecutorContract.java
@@ -0,0 +1,43 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2020 Bell 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.sdc.asdctool.impl.validator.executor;
+
+import static org.junit.jupiter.api.Assertions.assertThrows;
+import static org.mockito.Mockito.mock;
+import static org.openecomp.sdc.asdctool.impl.validator.report.ReportFile.makeTxtFile;
+import static org.openecomp.sdc.asdctool.impl.validator.report.ReportFileWriterTestFactory.makeConsoleWriter;
+
+import org.junit.jupiter.api.Test;
+import org.openecomp.sdc.asdctool.impl.validator.report.Report;
+import org.openecomp.sdc.be.dao.jsongraph.JanusGraphDao;
+
+public interface ValidatorExecutorContract {
+
+    ValidatorExecutor createTestSubject(JanusGraphDao dao);
+
+    @Test
+    default void testExecuteValidations() {
+        Report report = Report.make();
+        JanusGraphDao janusGraphDaoMock = mock(JanusGraphDao.class);
+        assertThrows(NullPointerException.class, () ->
+            createTestSubject(janusGraphDaoMock).executeValidations(report, makeTxtFile(makeConsoleWriter()))
+        );
+    }
+}
diff --git a/asdctool/src/test/java/org/openecomp/sdc/asdctool/impl/validator/executor/VfValidatorExecutorTest.java b/asdctool/src/test/java/org/openecomp/sdc/asdctool/impl/validator/executor/VfValidatorExecutorTest.java
index c40f660..85bf4bc 100644
--- a/asdctool/src/test/java/org/openecomp/sdc/asdctool/impl/validator/executor/VfValidatorExecutorTest.java
+++ b/asdctool/src/test/java/org/openecomp/sdc/asdctool/impl/validator/executor/VfValidatorExecutorTest.java
@@ -20,34 +20,14 @@
 
 package org.openecomp.sdc.asdctool.impl.validator.executor;
 
-import static org.mockito.Mockito.mock;
-import static org.openecomp.sdc.asdctool.impl.validator.report.ReportFile.makeTxtFile;
-import static org.openecomp.sdc.asdctool.impl.validator.report.ReportFileWriterTestFactory.makeConsoleWriter;
-
 import java.util.ArrayList;
-import java.util.List;
-import org.junit.Test;
-import org.openecomp.sdc.asdctool.impl.validator.report.Report;
-import org.openecomp.sdc.asdctool.impl.validator.tasks.VfValidationTask;
 import org.openecomp.sdc.be.dao.jsongraph.JanusGraphDao;
 
-public class VfValidatorExecutorTest {
+public class VfValidatorExecutorTest
+    implements ValidatorExecutorContract, TopologyTemplateValidatorExecutorContract {
 
-    private VfValidatorExecutor createTestSubject() {
-        List<VfValidationTask> validationTasks = new ArrayList<>();
-        JanusGraphDao janusGraphDaoMock = mock(JanusGraphDao.class);
-
-        return new VfValidatorExecutor(validationTasks, janusGraphDaoMock);
-    }
-
-    @Test
-    public void testGetName() {
-        createTestSubject().getName();
-    }
-
-    @Test(expected = NullPointerException.class)
-    public void testExecuteValidations() {
-        Report report = Report.make();
-        createTestSubject().executeValidations(report, makeTxtFile(makeConsoleWriter()));
+    @Override
+    public VfValidatorExecutor createTestSubject(JanusGraphDao dao) {
+        return new VfValidatorExecutor(new ArrayList<>(), dao);
     }
 }