2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017 AT&T Intellectual Property. All rights
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=========================================================
22 import org.openecomp.appc.exceptions.APPCException;
23 import org.junit.Test;
24 import org.openecomp.appc.adapter.netconf.OperationalStateValidator;
25 import org.openecomp.appc.adapter.netconf.OperationalStateValidatorFactory;
26 import org.openecomp.appc.adapter.netconf.VnfType;
28 import static org.junit.Assert.assertNotNull;
29 import static org.junit.Assert.fail;
32 public class OperationalStateValidatorTest {
35 public void testVNFValidResponse() {
36 String validResponse = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
37 "<rpc-reply xmlns=\"urn:ietf:params:xml:ns:netconf:base:1.0\" message-id=\"101\">\n" +
39 " <ManagedElement xmlns=\"urn:org:openecomp:appc:Test\">\n" +
40 " <managedElementId>1</managedElementId>\n" +
41 " <VnfFunction xmlns=\"urn:org:openecomp:appc:Test\">\n" +
43 " <ProcessorManagement>\n" +
47 " <operationalState>ENABLED</operationalState>\n" +
48 " <PayloadProcessor>\n" +
49 " <id>processor_0_5</id>\n" +
50 " <operationalState>ENABLED</operationalState>\n" +
51 " </PayloadProcessor>\n" +
52 " <PayloadProcessor>\n" +
53 " <id>processor_0_7</id>\n" +
54 " <operationalState>ENABLED</operationalState>\n" +
55 " </PayloadProcessor>\n" +
57 " <SystemController>\n" +
59 " <operationalState>ENABLED</operationalState>\n" +
60 " </SystemController>\n" +
61 " <SystemController>\n" +
63 " <operationalState>ENABLED</operationalState>\n" +
64 " </SystemController>\n" +
65 " </ProcessorManagement>\n" +
67 " </ManagedElement>\n" +
70 OperationalStateValidator operationalStateValidator = OperationalStateValidatorFactory.getOperationalStateValidator(VnfType.VNF);
71 assertValidResponse(validResponse, operationalStateValidator);
74 void assertInvalidResponse(String response, OperationalStateValidator operationalStateValidator) {
76 operationalStateValidator.validateResponse(response);
77 fail("invalid resposne passed without exception!!!");
78 } catch (APPCException e) {
79 assertNotNull(e.getMessage());
84 public void testVNFInvalidResponses() {
86 OperationalStateValidator operationalStateValidator = OperationalStateValidatorFactory.getOperationalStateValidator(VnfType.VNF);
87 assertInvalidResponse(null, operationalStateValidator);
89 assertInvalidResponse("", operationalStateValidator);
91 String response = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>";
92 assertInvalidResponse(response, operationalStateValidator);
94 response = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
95 "<rpc-reply xmlns=\"urn:ietf:params:xml:ns:netconf:base:1.0\" message-id=\"101\">\n" +
97 assertInvalidResponse(response, operationalStateValidator);
99 response = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
100 "<rpc-reply xmlns=\"urn:ietf:params:xml:ns:netconf:base:1.0\" message-id=\"101\">\n" +
102 " <ManagedElement xmlns=\"urn:org:openecomp:appc:Test\">\n" +
103 " <managedElementId>1</managedElementId>\n" +
104 " <VnfFunction xmlns=\"urn:org:openecomp:appc:Test\">\n" +
106 " <ProcessorManagement>\n" +
110 " <operationalState>ENABLED</operationalState>\n" +
111 " <PayloadProcessor>\n" +
112 " <id>processor_0_5</id>\n" +
113 " <operationalState>ENABLED</operationalState>\n" +
114 " </PayloadProcessor>\n" +
115 " <PayloadProcessor>\n" +
116 " <id>processor_0_7</id>\n" +
117 " <operationalState>ENABLED</operationalState>\n" +
118 " </PayloadProcessor>\n" +
120 " <SystemController>\n" +
122 " <operationalState>ENABLED</operationalState>\n" +
123 " </SystemController>\n" +
124 " <SystemController>\n" +
126 " <operationalState></operationalState>\n" +
127 " </SystemController>\n" +
128 " </ProcessorManagement>\n" +
129 " </VnfFunction>\n" +
130 " </ManagedElement>\n" +
133 assertInvalidResponse(response, operationalStateValidator);
136 void assertValidResponse(String response, OperationalStateValidator operationalStateValidator) {
138 operationalStateValidator.validateResponse(response);
139 } catch (APPCException e) {
140 fail("Got unexpected exception. Validation failed. " + e.getMessage());
145 public void testMockValidResponse() {
146 String response = "valid";
147 OperationalStateValidator operationalStateValidator = OperationalStateValidatorFactory.getOperationalStateValidator("mock");
148 assertValidResponse(response, operationalStateValidator);
151 assertValidResponse(response, operationalStateValidator);
154 assertValidResponse(response, operationalStateValidator);
158 public void testMockInValidResponse() {
159 String response = "anything InValid anything.. ";
160 OperationalStateValidator operationalStateValidator = OperationalStateValidatorFactory.getOperationalStateValidator(VnfType.MOCK);
161 assertInvalidResponse(response, operationalStateValidator);
165 public void testGetOperationalStateValidatorForInValidVnfType() {
167 OperationalStateValidatorFactory.getOperationalStateValidator("wrongVnfType");
168 fail("invalid vnfType without exception!!!");
169 } catch (Exception e) {
170 assertNotNull(e.getMessage());
175 public void testGetOperationalStateValidatorForValidVnfType() {
176 String vnfType = VnfType.VNF.name().toLowerCase();
177 assertGettingValidatorForValidVnf(vnfType);
179 vnfType = VnfType.VNF.name().toUpperCase();
180 assertGettingValidatorForValidVnf(vnfType);
182 vnfType = VnfType.MOCK.name().toLowerCase();
183 assertGettingValidatorForValidVnf(vnfType);
185 vnfType = VnfType.MOCK.name().toUpperCase();
186 assertGettingValidatorForValidVnf(vnfType);
189 void assertGettingValidatorForValidVnf(String vnfType) {
191 OperationalStateValidator operationalStateValidator = OperationalStateValidatorFactory.getOperationalStateValidator(vnfType);
192 assertNotNull(operationalStateValidator);
193 } catch (Exception e) {
194 fail("valid vnfType throw exception!!!");