2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6 * Copyright (C) 2017 Amdocs
7 * ================================================================================
8 * Licensed under the Apache License, Version 2.0 (the "License");
9 * you may not use this file except in compliance with the License.
10 * You may obtain a copy of the License at
12 * http://www.apache.org/licenses/LICENSE-2.0
14 * Unless required by applicable law or agreed to in writing, software
15 * distributed under the License is distributed on an "AS IS" BASIS,
16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 * See the License for the specific language governing permissions and
18 * limitations under the License.
19 * ============LICENSE_END=========================================================
20 * ECOMP is a trademark and service mark of AT&T Intellectual Property.
23 import org.openecomp.appc.exceptions.APPCException;
24 import org.junit.Test;
25 import org.openecomp.appc.adapter.netconf.OperationalStateValidator;
26 import org.openecomp.appc.adapter.netconf.OperationalStateValidatorFactory;
27 import org.openecomp.appc.adapter.netconf.VnfType;
29 import static org.junit.Assert.assertNotNull;
30 import static org.junit.Assert.fail;
33 public class OperationalStateValidatorTest {
36 public void testVNFValidResponse() {
37 String validResponse = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
38 "<rpc-reply xmlns=\"urn:ietf:params:xml:ns:netconf:base:1.0\" message-id=\"101\">\n" +
40 " <ManagedElement xmlns=\"urn:org:openecomp:appc:Test\">\n" +
41 " <managedElementId>1</managedElementId>\n" +
42 " <VnfFunction xmlns=\"urn:org:openecomp:appc:Test\">\n" +
44 " <ProcessorManagement>\n" +
48 " <operationalState>ENABLED</operationalState>\n" +
49 " <PayloadProcessor>\n" +
50 " <id>processor_0_5</id>\n" +
51 " <operationalState>ENABLED</operationalState>\n" +
52 " </PayloadProcessor>\n" +
53 " <PayloadProcessor>\n" +
54 " <id>processor_0_7</id>\n" +
55 " <operationalState>ENABLED</operationalState>\n" +
56 " </PayloadProcessor>\n" +
58 " <SystemController>\n" +
60 " <operationalState>ENABLED</operationalState>\n" +
61 " </SystemController>\n" +
62 " <SystemController>\n" +
64 " <operationalState>ENABLED</operationalState>\n" +
65 " </SystemController>\n" +
66 " </ProcessorManagement>\n" +
68 " </ManagedElement>\n" +
71 OperationalStateValidator operationalStateValidator = OperationalStateValidatorFactory.getOperationalStateValidator(VnfType.VNF);
72 assertValidResponse(validResponse, operationalStateValidator);
75 void assertInvalidResponse(String response, OperationalStateValidator operationalStateValidator) {
77 operationalStateValidator.validateResponse(response);
78 fail("invalid resposne passed without exception!!!");
79 } catch (APPCException e) {
80 assertNotNull(e.getMessage());
85 public void testVNFInvalidResponses() {
87 OperationalStateValidator operationalStateValidator = OperationalStateValidatorFactory.getOperationalStateValidator(VnfType.VNF);
88 assertInvalidResponse(null, operationalStateValidator);
90 assertInvalidResponse("", operationalStateValidator);
92 String response = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>";
93 assertInvalidResponse(response, operationalStateValidator);
95 response = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
96 "<rpc-reply xmlns=\"urn:ietf:params:xml:ns:netconf:base:1.0\" message-id=\"101\">\n" +
98 assertInvalidResponse(response, operationalStateValidator);
100 response = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
101 "<rpc-reply xmlns=\"urn:ietf:params:xml:ns:netconf:base:1.0\" message-id=\"101\">\n" +
103 " <ManagedElement xmlns=\"urn:org:openecomp:appc:Test\">\n" +
104 " <managedElementId>1</managedElementId>\n" +
105 " <VnfFunction xmlns=\"urn:org:openecomp:appc:Test\">\n" +
107 " <ProcessorManagement>\n" +
111 " <operationalState>ENABLED</operationalState>\n" +
112 " <PayloadProcessor>\n" +
113 " <id>processor_0_5</id>\n" +
114 " <operationalState>ENABLED</operationalState>\n" +
115 " </PayloadProcessor>\n" +
116 " <PayloadProcessor>\n" +
117 " <id>processor_0_7</id>\n" +
118 " <operationalState>ENABLED</operationalState>\n" +
119 " </PayloadProcessor>\n" +
121 " <SystemController>\n" +
123 " <operationalState>ENABLED</operationalState>\n" +
124 " </SystemController>\n" +
125 " <SystemController>\n" +
127 " <operationalState></operationalState>\n" +
128 " </SystemController>\n" +
129 " </ProcessorManagement>\n" +
130 " </VnfFunction>\n" +
131 " </ManagedElement>\n" +
134 assertInvalidResponse(response, operationalStateValidator);
137 void assertValidResponse(String response, OperationalStateValidator operationalStateValidator) {
139 operationalStateValidator.validateResponse(response);
140 } catch (APPCException e) {
141 fail("Got unexpected exception. Validation failed. " + e.getMessage());
146 public void testMockValidResponse() {
147 String response = "valid";
148 OperationalStateValidator operationalStateValidator = OperationalStateValidatorFactory.getOperationalStateValidator("mock");
149 assertValidResponse(response, operationalStateValidator);
152 assertValidResponse(response, operationalStateValidator);
155 assertValidResponse(response, operationalStateValidator);
159 public void testMockInValidResponse() {
160 String response = "anything InValid anything.. ";
161 OperationalStateValidator operationalStateValidator = OperationalStateValidatorFactory.getOperationalStateValidator(VnfType.MOCK);
162 assertInvalidResponse(response, operationalStateValidator);
166 public void testGetOperationalStateValidatorForInValidVnfType() {
168 OperationalStateValidatorFactory.getOperationalStateValidator("wrongVnfType");
169 fail("invalid vnfType without exception!!!");
170 } catch (Exception e) {
171 assertNotNull(e.getMessage());
176 public void testGetOperationalStateValidatorForValidVnfType() {
177 String vnfType = VnfType.VNF.name().toLowerCase();
178 assertGettingValidatorForValidVnf(vnfType);
180 vnfType = VnfType.VNF.name().toUpperCase();
181 assertGettingValidatorForValidVnf(vnfType);
183 vnfType = VnfType.MOCK.name().toLowerCase();
184 assertGettingValidatorForValidVnf(vnfType);
186 vnfType = VnfType.MOCK.name().toUpperCase();
187 assertGettingValidatorForValidVnf(vnfType);
190 void assertGettingValidatorForValidVnf(String vnfType) {
192 OperationalStateValidator operationalStateValidator = OperationalStateValidatorFactory.getOperationalStateValidator(vnfType);
193 assertNotNull(operationalStateValidator);
194 } catch (Exception e) {
195 fail("valid vnfType throw exception!!!");