2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved.
6 * ================================================================================
7 * Copyright (C) 2017 Amdocs
8 * =============================================================================
9 * Licensed under the Apache License, Version 2.0 (the "License");
10 * you may not use this file except in compliance with the License.
11 * You may obtain a copy of the License at
13 * http://www.apache.org/licenses/LICENSE-2.0
15 * Unless required by applicable law or agreed to in writing, software
16 * distributed under the License is distributed on an "AS IS" BASIS,
17 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18 * See the License for the specific language governing permissions and
19 * limitations under the License.
21 * ============LICENSE_END=========================================================
24 import org.onap.appc.exceptions.APPCException;
25 import org.junit.Test;
26 import org.onap.appc.adapter.netconf.OperationalStateValidator;
27 import org.onap.appc.adapter.netconf.OperationalStateValidatorFactory;
28 import org.onap.appc.adapter.netconf.VnfType;
30 import static org.junit.Assert.assertNotNull;
31 import static org.junit.Assert.fail;
34 public class OperationalStateValidatorTest {
37 public void testVNFValidResponse() {
38 String validResponse = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
39 "<rpc-reply xmlns=\"urn:ietf:params:xml:ns:netconf:base:1.0\" message-id=\"101\">\n" +
41 " <ManagedElement xmlns=\"urn:org:onap:appc:Test\">\n" +
42 " <managedElementId>1</managedElementId>\n" +
43 " <VnfFunction xmlns=\"urn:org:onap:appc:Test\">\n" +
45 " <ProcessorManagement>\n" +
49 " <operationalState>ENABLED</operationalState>\n" +
50 " <PayloadProcessor>\n" +
51 " <id>processor_0_5</id>\n" +
52 " <operationalState>ENABLED</operationalState>\n" +
53 " </PayloadProcessor>\n" +
54 " <PayloadProcessor>\n" +
55 " <id>processor_0_7</id>\n" +
56 " <operationalState>ENABLED</operationalState>\n" +
57 " </PayloadProcessor>\n" +
59 " <SystemController>\n" +
61 " <operationalState>ENABLED</operationalState>\n" +
62 " </SystemController>\n" +
63 " <SystemController>\n" +
65 " <operationalState>ENABLED</operationalState>\n" +
66 " </SystemController>\n" +
67 " </ProcessorManagement>\n" +
69 " </ManagedElement>\n" +
72 OperationalStateValidator operationalStateValidator = OperationalStateValidatorFactory.getOperationalStateValidator(VnfType.VNF);
73 assertValidResponse(validResponse, operationalStateValidator);
76 void assertInvalidResponse(String response, OperationalStateValidator operationalStateValidator) {
78 operationalStateValidator.validateResponse(response);
79 fail("invalid resposne passed without exception!!!");
80 } catch (APPCException e) {
81 assertNotNull(e.getMessage());
86 public void testVNFInvalidResponses() {
88 OperationalStateValidator operationalStateValidator = OperationalStateValidatorFactory.getOperationalStateValidator(VnfType.VNF);
89 assertInvalidResponse(null, operationalStateValidator);
91 assertInvalidResponse("", operationalStateValidator);
93 String response = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>";
94 assertInvalidResponse(response, operationalStateValidator);
96 response = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
97 "<rpc-reply xmlns=\"urn:ietf:params:xml:ns:netconf:base:1.0\" message-id=\"101\">\n" +
99 assertInvalidResponse(response, operationalStateValidator);
101 response = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
102 "<rpc-reply xmlns=\"urn:ietf:params:xml:ns:netconf:base:1.0\" message-id=\"101\">\n" +
104 " <ManagedElement xmlns=\"urn:org:onap:appc:Test\">\n" +
105 " <managedElementId>1</managedElementId>\n" +
106 " <VnfFunction xmlns=\"urn:org:onap:appc:Test\">\n" +
108 " <ProcessorManagement>\n" +
112 " <operationalState>ENABLED</operationalState>\n" +
113 " <PayloadProcessor>\n" +
114 " <id>processor_0_5</id>\n" +
115 " <operationalState>ENABLED</operationalState>\n" +
116 " </PayloadProcessor>\n" +
117 " <PayloadProcessor>\n" +
118 " <id>processor_0_7</id>\n" +
119 " <operationalState>ENABLED</operationalState>\n" +
120 " </PayloadProcessor>\n" +
122 " <SystemController>\n" +
124 " <operationalState>ENABLED</operationalState>\n" +
125 " </SystemController>\n" +
126 " <SystemController>\n" +
128 " <operationalState></operationalState>\n" +
129 " </SystemController>\n" +
130 " </ProcessorManagement>\n" +
131 " </VnfFunction>\n" +
132 " </ManagedElement>\n" +
135 assertInvalidResponse(response, operationalStateValidator);
138 void assertValidResponse(String response, OperationalStateValidator operationalStateValidator) {
140 operationalStateValidator.validateResponse(response);
141 } catch (APPCException e) {
142 fail("Got unexpected exception. Validation failed. " + e.getMessage());
147 public void testMockValidResponse() {
148 String response = "valid";
149 OperationalStateValidator operationalStateValidator = OperationalStateValidatorFactory.getOperationalStateValidator("mock");
150 assertValidResponse(response, operationalStateValidator);
153 assertValidResponse(response, operationalStateValidator);
156 assertValidResponse(response, operationalStateValidator);
160 public void testMockInValidResponse() {
161 String response = "anything InValid anything.. ";
162 OperationalStateValidator operationalStateValidator = OperationalStateValidatorFactory.getOperationalStateValidator(VnfType.MOCK);
163 assertInvalidResponse(response, operationalStateValidator);
167 public void testGetOperationalStateValidatorForInValidVnfType() {
169 OperationalStateValidatorFactory.getOperationalStateValidator("wrongVnfType");
170 fail("invalid vnfType without exception!!!");
171 } catch (Exception e) {
172 assertNotNull(e.getMessage());
177 public void testGetOperationalStateValidatorForValidVnfType() {
178 String vnfType = VnfType.VNF.name().toLowerCase();
179 assertGettingValidatorForValidVnf(vnfType);
181 vnfType = VnfType.VNF.name().toUpperCase();
182 assertGettingValidatorForValidVnf(vnfType);
184 vnfType = VnfType.MOCK.name().toLowerCase();
185 assertGettingValidatorForValidVnf(vnfType);
187 vnfType = VnfType.MOCK.name().toUpperCase();
188 assertGettingValidatorForValidVnf(vnfType);
191 void assertGettingValidatorForValidVnf(String vnfType) {
193 OperationalStateValidator operationalStateValidator = OperationalStateValidatorFactory.getOperationalStateValidator(vnfType);
194 assertNotNull(operationalStateValidator);
195 } catch (Exception e) {
196 fail("valid vnfType throw exception!!!");