Add collaboration feature
[sdc.git] / openecomp-be / lib / openecomp-sdc-translator-lib / openecomp-sdc-translator-core / src / test / java / org / openecomp / sdc / translator / services / heattotosca / impl / resourcetranslation / DependsOnResourceBaseTranslationlTest.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * SDC
4  * ================================================================================
5  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6  * ================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  * 
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  * 
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ============LICENSE_END=========================================================
19  */
20
21 package org.openecomp.sdc.translator.services.heattotosca.impl.resourcetranslation;
22
23 import org.junit.Before;
24 import org.junit.Test;
25 import org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.ConsolidationDataValidationType;
26
27 import java.io.IOException;
28
29 import static org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.TestConstants.TEST_DEPENDS_ON_INVALID_DEPENDENCY_CANDIDATE;
30 import static org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.TestConstants.TEST_DEPENDS_ON_MULTIPLE_COMPUTE;
31 import static org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.TestConstants.TEST_DEPENDS_ON_NODES_CONNECTED_IN;
32 import static org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.TestConstants.TEST_DEPENDS_ON_NODES_CONNECTED_IN_AND_OUT;
33 import static org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.TestConstants.TEST_DEPENDS_ON_NODES_CONNECTED_OUT;
34 import static org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.TestConstants.TEST_DEPENDS_ON_NODE_TEMPLATE_TRANSLATION_ORDER_INVARIANCE;
35 import static org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.TestConstants.TEST_DEPENDS_ON_NO_DEPENDENCY;
36
37
38 public class DependsOnResourceBaseTranslationlTest extends BaseResourceTranslationTest {
39   @Override
40   @Before
41   public void setUp() throws IOException {
42     // do not delete this function. it prevents the superclass setup from running
43   }
44
45   @Test
46   public void testTranslate() throws Exception {
47     inputFilesPath = "/mock/services/heattotosca/baseResourceTranslation/inputfiles";
48     outputFilesPath = "/mock/services/heattotosca/baseResourceTranslation/expectedoutputfiles";
49     initTranslatorAndTranslate();
50     testTranslation();
51   }
52
53   @Test
54   public void testDependsOnConsolidationNodesConnectedOut() throws Exception {
55     inputFilesPath = "/mock/services/heattotosca/buildconsolidationdata/dependsonresource" +
56         "/nodesConnectedOut/inputfiles";
57     outputFilesPath = "/mock/services/heattotosca/buildconsolidationdata/dependsonresource" +
58         "/nodesConnectedOut/expectedoutputfiles";
59     initTranslatorAndTranslate();
60     testTranslation();
61     validateComputeTemplateConsolidationData(ConsolidationDataValidationType.VALIDATE_DEPENDS_ON,
62         TEST_DEPENDS_ON_NODES_CONNECTED_OUT);
63   }
64
65   @Test
66   public void testDependsOnConsolidationNodesConnectedIn() throws Exception {
67     inputFilesPath = "/mock/services/heattotosca/buildconsolidationdata/dependsonresource" +
68         "/nodesConnectedIn/inputfiles";
69     outputFilesPath = "/mock/services/heattotosca/buildconsolidationdata/dependsonresource" +
70         "/nodesConnectedIn/expectedoutputfiles";
71     initTranslatorAndTranslate();
72     testTranslation();
73     validateComputeTemplateConsolidationData(ConsolidationDataValidationType.VALIDATE_DEPENDS_ON,
74         TEST_DEPENDS_ON_NODES_CONNECTED_IN);
75   }
76
77   @Test
78   public void testDependsOnConsolidationNodesConnectedInAndOut() throws Exception {
79     inputFilesPath = "/mock/services/heattotosca/buildconsolidationdata/dependsonresource" +
80         "/nodesConnectedInOut/inputfiles";
81     outputFilesPath = "/mock/services/heattotosca/buildconsolidationdata/dependsonresource" +
82         "/nodesConnectedInOut/expectedoutputfiles";
83     initTranslatorAndTranslate();
84     testTranslation();
85     validateComputeTemplateConsolidationData(ConsolidationDataValidationType.VALIDATE_DEPENDS_ON,
86         TEST_DEPENDS_ON_NODES_CONNECTED_IN_AND_OUT);
87   }
88
89   @Test
90   public void testDependsOnConsolidationNoDependency() throws Exception {
91     inputFilesPath = "/mock/services/heattotosca/buildconsolidationdata/dependsonresource" +
92         "/noDependency/inputfiles";
93     outputFilesPath = "/mock/services/heattotosca/buildconsolidationdata/dependsonresource" +
94         "/noDependency/expectedoutputfiles";
95     initTranslatorAndTranslate();
96     testTranslation();
97     validateComputeTemplateConsolidationData(ConsolidationDataValidationType.VALIDATE_DEPENDS_ON,
98         TEST_DEPENDS_ON_NO_DEPENDENCY);
99   }
100
101   @Test
102   public void testDependsOnConsolidationInvalidDependencyCandidate() throws Exception {
103     inputFilesPath = "/mock/services/heattotosca/buildconsolidationdata/dependsonresource" +
104         "/noDependency/inputfiles";
105     outputFilesPath = "/mock/services/heattotosca/buildconsolidationdata/dependsonresource" +
106         "/noDependency/expectedoutputfiles";
107     initTranslatorAndTranslate();
108     testTranslation();
109     validateComputeTemplateConsolidationData(ConsolidationDataValidationType.VALIDATE_DEPENDS_ON,
110         TEST_DEPENDS_ON_INVALID_DEPENDENCY_CANDIDATE);
111   }
112
113   @Test
114   public void testDependsOnConsolidationMultipleCompute() throws Exception {
115     inputFilesPath = "/mock/services/heattotosca/buildconsolidationdata/dependsonresource" +
116         "/multiplecompute/inputfiles";
117     outputFilesPath = "/mock/services/heattotosca/buildconsolidationdata/dependsonresource/multiplecompute/expectedoutputfiles";
118     initTranslatorAndTranslate();
119     testTranslation();
120     validateComputeTemplateConsolidationData(ConsolidationDataValidationType.VALIDATE_DEPENDS_ON,
121         TEST_DEPENDS_ON_MULTIPLE_COMPUTE);
122   }
123
124   @Test
125   public void testDependsOnNodeTemplateTranslationOrderInvariance() throws Exception {
126     //Tests that the resource dependency is independent of the order of resource translation
127     inputFilesPath = "/mock/services/heattotosca/buildconsolidationdata/dependsonresource" +
128         "/translationorderinvariance/inputfiles";
129     outputFilesPath = "/mock/services/heattotosca/buildconsolidationdata/dependsonresource" +
130         "/translationorderinvariance/expectedoutputfiles";
131     initTranslatorAndTranslate();
132     testTranslation();
133     validateComputeTemplateConsolidationData(ConsolidationDataValidationType.VALIDATE_DEPENDS_ON,
134         TEST_DEPENDS_ON_NODE_TEMPLATE_TRANSLATION_ORDER_INVARIANCE);
135   }
136
137   @Test
138   public void testDependsOnRemoveDependencyForInvalidCandidates() throws Exception {
139     //Tests the deletion of dependencies of Compute->Compute, Compute->Port, Port->Port,
140     // Port->Compute from the original tosca data model
141     inputFilesPath = "/mock/services/heattotosca/buildconsolidationdata/dependsonresource" +
142         "/removeInvalidDependencyFromTosca/inputfiles";
143     outputFilesPath = "/mock/services/heattotosca/buildconsolidationdata/dependsonresource" +
144         "/removeInvalidDependencyFromTosca/expectedoutputfiles";
145     initTranslatorAndTranslate();
146     testTranslation();
147   }
148 }