Allow handling of legact model artifacts
[aai/model-loader.git] / src / test / java / org / openecomp / modelloader / entity / model / ModelSorterTest.java
index 6a9cf88..fdc81da 100644 (file)
-/**\r
- * ============LICENSE_START=======================================================\r
- * Model Loader\r
- * ================================================================================\r
- * Copyright © 2017 AT&T Intellectual Property.\r
- * Copyright © 2017 Amdocs\r
- * All rights reserved.\r
- * ================================================================================\r
- * Licensed under the Apache License, Version 2.0 (the "License");\r
- * you may not use this file except in compliance with the License.\r
- * You may obtain a copy of the License at\r
- * http://www.apache.org/licenses/LICENSE-2.0\r
- * Unless required by applicable law or agreed to in writing, software\r
- * distributed under the License is distributed on an "AS IS" BASIS,\r
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
- * See the License for the specific language governing permissions and\r
- * limitations under the License.\r
- * ============LICENSE_END=========================================================\r
- *\r
- * ECOMP and OpenECOMP are trademarks\r
- * and service marks of AT&T Intellectual Property.\r
- */\r
-package org.openecomp.modelloader.entity.model;\r
-\r
-import static org.junit.Assert.assertEquals;\r
-import static org.junit.Assert.assertNotNull;\r
-\r
-import java.util.ArrayList;\r
-import java.util.Collections;\r
-import java.util.List;\r
-\r
-import org.junit.Test;\r
-import org.openecomp.modelloader.entity.Artifact;\r
-\r
-public class ModelSorterTest {\r
-\r
-  @Test\r
-  public void noModels() {\r
-\r
-    List<Artifact> emptyList = Collections.emptyList();\r
-\r
-    ModelSorter sorter = new ModelSorter();\r
-    sorter = new ModelSorter();\r
-\r
-    List<Artifact> sortedList = sorter.sort(emptyList);\r
-    assertNotNull(sortedList);\r
-    assertEquals(0, sortedList.size());\r
-\r
-  }\r
-\r
-  @Test\r
-  public void singleModel() {\r
-\r
-    List<Artifact> modelList = new ArrayList<Artifact>();\r
-\r
-    ModelArtifact model = new ModelArtifact();\r
-    model.setNameVersionId("aaaaa");\r
-    model.addDependentModelId("xyz");\r
-    modelList.add(model);\r
-\r
-    ModelSorter sorter = new ModelSorter();\r
-    sorter = new ModelSorter();\r
-\r
-    List<Artifact> sortedList = sorter.sort(modelList);\r
-    assertNotNull(sortedList);\r
-    assertEquals(1, sortedList.size());\r
-\r
-  }\r
-\r
-  /**\r
-   * \r
-   * depends on depends on B ------> A -------> C\r
-   *\r
-   *\r
-   * Input list = a, b, c Sorted list = c, a, b\r
-   *\r
-   */\r
-  @Test\r
-  public void multipleModels() {\r
-\r
-    List<Artifact> modelList = new ArrayList<Artifact>();\r
-\r
-    ModelArtifact aaaa = new ModelArtifact();\r
-    aaaa.setModelInvariantId("aaaa");\r
-       aaaa.setModelVerId("mvaaaa");\r
-       aaaa.addDependentModelId("cccc|mvcccc");\r
-\r
-    ModelArtifact bbbb = new ModelArtifact();\r
-    bbbb.setModelInvariantId("bbbb");\r
-       bbbb.setModelVerId("mvbbbb");\r
-       bbbb.addDependentModelId("aaaa|mvaaaa");\r
-\r
-    ModelArtifact cccc = new ModelArtifact();\r
-    cccc.setModelInvariantId("cccc");\r
-       cccc.setModelVerId("mvcccc");\r
-\r
-    modelList.add(aaaa);\r
-    modelList.add(bbbb);\r
-    modelList.add(cccc);\r
-\r
-    ModelSorter sorter = new ModelSorter();\r
-    sorter = new ModelSorter();\r
-\r
-    List<Artifact> sortedList = sorter.sort(modelList);\r
-    assertNotNull(sortedList);\r
-    assertEquals(3, sortedList.size());\r
-\r
-    assertEquals(cccc, sortedList.get(0));\r
-    assertEquals(aaaa, sortedList.get(1));\r
-    assertEquals(bbbb, sortedList.get(2));\r
-  }\r
-\r
-  @Test(expected = RuntimeException.class)\r
-  public void circularDependency() {\r
-\r
-    List<Artifact> modelList = new ArrayList<Artifact>();\r
-\r
-    ModelArtifact aaaa = new ModelArtifact();\r
-    aaaa.setNameVersionId("aaaa");\r
-    aaaa.addDependentModelId("bbbb");\r
-\r
-    ModelArtifact bbbb = new ModelArtifact();\r
-    bbbb.setNameVersionId("bbbb");\r
-    bbbb.addDependentModelId("aaaa");\r
-\r
-    modelList.add(aaaa);\r
-    modelList.add(bbbb);\r
-\r
-    ModelSorter sorter = new ModelSorter();\r
-    sorter = new ModelSorter();\r
-\r
-    List<Artifact> sortedList = sorter.sort(modelList);\r
-    assertNotNull(sortedList);\r
-    assertEquals(3, sortedList.size());\r
-\r
-  }\r
-\r
-}\r
+/**
+ * ============LICENSE_START=======================================================
+ * Model Loader
+ * ================================================================================
+ * Copyright © 2017 AT&T Intellectual Property.
+ * Copyright © 2017 Amdocs
+ * 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=========================================================
+ *
+ * ECOMP and OpenECOMP are trademarks
+ * and service marks of AT&T Intellectual Property.
+ */
+package org.openecomp.modelloader.entity.model;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+import org.junit.Test;
+import org.openecomp.modelloader.entity.Artifact;
+
+public class ModelSorterTest {
+
+  @Test
+  public void noModels() {
+
+    List<Artifact> emptyList = Collections.emptyList();
+
+    ModelSorter sorter = new ModelSorter();
+    sorter = new ModelSorter();
+
+    List<Artifact> sortedList = sorter.sort(emptyList);
+    assertNotNull(sortedList);
+    assertEquals(0, sortedList.size());
+
+  }
+
+  @Test
+  public void singleModel() {
+
+    List<Artifact> modelList = new ArrayList<Artifact>();
+
+    ModelArtifact model = new ModelArtifact();
+    model.setModelInvariantId("aaa");
+    model.setModelVerId("111");
+    model.addDependentModelId("xyz|123");
+    modelList.add(model);
+
+    ModelSorter sorter = new ModelSorter();
+    sorter = new ModelSorter();
+
+    List<Artifact> sortedList = sorter.sort(modelList);
+    assertNotNull(sortedList);
+    assertEquals(1, sortedList.size());
+
+  }
+
+  /**
+   * 
+   * depends on depends on B ------> A -------> C
+   *
+   *
+   * Input list = a, b, c Sorted list = c, a, b
+   *
+   */
+  @Test
+  public void multipleModels() {
+
+    List<Artifact> modelList = new ArrayList<Artifact>();
+
+    ModelArtifact aaaa = new ModelArtifact();
+    aaaa.setModelInvariantId("aaaa");
+    aaaa.setModelVerId("mvaaaa");
+    aaaa.addDependentModelId("cccc|mvcccc");
+
+    ModelArtifact bbbb = new ModelArtifact();
+    bbbb.setModelInvariantId("bbbb");
+    bbbb.setModelVerId("mvbbbb");
+    bbbb.addDependentModelId("aaaa|mvaaaa");
+
+    ModelArtifact cccc = new ModelArtifact();
+    cccc.setModelInvariantId("cccc");
+    cccc.setModelVerId("mvcccc");
+
+    modelList.add(aaaa);
+    modelList.add(bbbb);
+    modelList.add(cccc);
+
+    ModelSorter sorter = new ModelSorter();
+    sorter = new ModelSorter();
+
+    List<Artifact> sortedList = sorter.sort(modelList);
+    assertNotNull(sortedList);
+    assertEquals(3, sortedList.size());
+
+    assertEquals(cccc, sortedList.get(0));
+    assertEquals(aaaa, sortedList.get(1));
+    assertEquals(bbbb, sortedList.get(2));
+  }
+  
+  @Test
+  public void multipleModelsV8() {
+
+    List<Artifact> modelList = new ArrayList<Artifact>();
+
+    ModelV8Artifact aaaa = new ModelV8Artifact();
+    aaaa.setModelNameVersionId("aaaa");
+    aaaa.addDependentModelId("cccc");
+
+    ModelV8Artifact bbbb = new ModelV8Artifact();
+    bbbb.setModelNameVersionId("bbbb");
+    bbbb.addDependentModelId("aaaa");
+
+    ModelV8Artifact cccc = new ModelV8Artifact();
+    cccc.setModelNameVersionId("cccc");
+
+    modelList.add(aaaa);
+    modelList.add(bbbb);
+    modelList.add(cccc);
+
+    ModelSorter sorter = new ModelSorter();
+    sorter = new ModelSorter();
+
+    List<Artifact> sortedList = sorter.sort(modelList);
+    assertNotNull(sortedList);
+    assertEquals(3, sortedList.size());
+
+    assertEquals(cccc, sortedList.get(0));
+    assertEquals(aaaa, sortedList.get(1));
+    assertEquals(bbbb, sortedList.get(2));
+  }
+    
+  @Test
+  public void multipleModelsAndNamedQueries() {
+
+    List<Artifact> modelList = new ArrayList<Artifact>();
+
+    ModelArtifact aaaa = new ModelArtifact();
+    aaaa.setModelInvariantId("aaaa");
+    aaaa.setModelVerId("1111");
+    aaaa.addDependentModelId("cccc|2222");
+    
+    NamedQueryArtifact nq1 = new NamedQueryArtifact();
+    nq1.setNamedQueryUuid("nq1");
+    nq1.addDependentModelId("aaaa|1111");
+    
+    NamedQueryArtifact nq2 = new NamedQueryArtifact();
+    nq2.setNamedQueryUuid("nq2");
+    nq2.addDependentModelId("existing-model");
+    
+
+    modelList.add(nq1);
+    modelList.add(nq2);
+    modelList.add(aaaa);
+
+    ModelSorter sorter = new ModelSorter();
+    sorter = new ModelSorter();
+
+    List<Artifact> sortedList = sorter.sort(modelList);
+    assertNotNull(sortedList);
+    assertEquals(3, sortedList.size());
+
+    System.out.println(sortedList.get(0) + "-" + sortedList.get(1) + "-" + sortedList.get(2));
+    assertEquals(aaaa, sortedList.get(0));
+    assertEquals(nq2, sortedList.get(1));
+    assertEquals(nq1, sortedList.get(2));
+  }
+  
+  @Test(expected = RuntimeException.class)
+  public void circularDependency() {
+
+    List<Artifact> modelList = new ArrayList<Artifact>();
+
+    ModelArtifact aaaa = new ModelArtifact();
+    aaaa.setModelInvariantId("aaaa");
+    aaaa.setModelVerId("1111");
+    aaaa.addDependentModelId("bbbb|1111");
+
+    ModelArtifact bbbb = new ModelArtifact();
+    bbbb.setModelInvariantId("bbbb");
+    bbbb.setModelVerId("1111");
+    bbbb.addDependentModelId("aaaa|1111");
+
+    modelList.add(aaaa);
+    modelList.add(bbbb);
+
+    ModelSorter sorter = new ModelSorter();
+    sorter = new ModelSorter();
+
+    List<Artifact> sortedList = sorter.sort(modelList);
+    assertNotNull(sortedList);
+    assertEquals(2, sortedList.size());
+
+  }
+
+}