2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017 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 * ECOMP is a trademark and service mark of AT&T Intellectual Property.
22 * ============LICENSE_END=========================================================
25 import org.onap.appc.exceptions.APPCException;
26 import org.junit.Test;
27 import org.onap.appc.adapter.netconf.OperationalStateValidator;
28 import org.onap.appc.adapter.netconf.OperationalStateValidatorFactory;
29 import org.onap.appc.adapter.netconf.VnfType;
31 import static org.junit.Assert.assertNotNull;
32 import static org.junit.Assert.fail;
35 public class OperationalStateValidatorTest {
38 public void testVNFValidResponse() {
39 String validResponse = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
40 "<rpc-reply xmlns=\"urn:ietf:params:xml:ns:netconf:base:1.0\" message-id=\"101\">\n" +
42 " <ManagedElement xmlns=\"urn:org:onap:appc:Test\">\n" +
43 " <managedElementId>1</managedElementId>\n" +
44 " <VnfFunction xmlns=\"urn:org:onap:appc:Test\">\n" +
46 " <ProcessorManagement>\n" +
50 " <operationalState>ENABLED</operationalState>\n" +
51 " <PayloadProcessor>\n" +
52 " <id>processor_0_5</id>\n" +
53 " <operationalState>ENABLED</operationalState>\n" +
54 " </PayloadProcessor>\n" +
55 " <PayloadProcessor>\n" +
56 " <id>processor_0_7</id>\n" +
57 " <operationalState>ENABLED</operationalState>\n" +
58 " </PayloadProcessor>\n" +
60 " <SystemController>\n" +
62 " <operationalState>ENABLED</operationalState>\n" +
63 " </SystemController>\n" +
64 " <SystemController>\n" +
66 " <operationalState>ENABLED</operationalState>\n" +
67 " </SystemController>\n" +
68 " </ProcessorManagement>\n" +
70 " </ManagedElement>\n" +
73 OperationalStateValidator operationalStateValidator = OperationalStateValidatorFactory.getOperationalStateValidator(VnfType.VNF);
74 assertValidResponse(validResponse, operationalStateValidator);
77 void assertInvalidResponse(String response, OperationalStateValidator operationalStateValidator) {
79 operationalStateValidator.validateResponse(response);
80 fail("invalid resposne passed without exception!!!");
81 } catch (APPCException e) {
82 assertNotNull(e.getMessage());
87 public void testVNFInvalidResponses() {
89 OperationalStateValidator operationalStateValidator = OperationalStateValidatorFactory.getOperationalStateValidator(VnfType.VNF);
90 assertInvalidResponse(null, operationalStateValidator);
92 assertInvalidResponse("", operationalStateValidator);
94 String response = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>";
95 assertInvalidResponse(response, operationalStateValidator);
97 response = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
98 "<rpc-reply xmlns=\"urn:ietf:params:xml:ns:netconf:base:1.0\" message-id=\"101\">\n" +
100 assertInvalidResponse(response, operationalStateValidator);
102 response = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
103 "<rpc-reply xmlns=\"urn:ietf:params:xml:ns:netconf:base:1.0\" message-id=\"101\">\n" +
105 " <ManagedElement xmlns=\"urn:org:onap:appc:Test\">\n" +
106 " <managedElementId>1</managedElementId>\n" +
107 " <VnfFunction xmlns=\"urn:org:onap:appc:Test\">\n" +
109 " <ProcessorManagement>\n" +
113 " <operationalState>ENABLED</operationalState>\n" +
114 " <PayloadProcessor>\n" +
115 " <id>processor_0_5</id>\n" +
116 " <operationalState>ENABLED</operationalState>\n" +
117 " </PayloadProcessor>\n" +
118 " <PayloadProcessor>\n" +
119 " <id>processor_0_7</id>\n" +
120 " <operationalState>ENABLED</operationalState>\n" +
121 " </PayloadProcessor>\n" +
123 " <SystemController>\n" +
125 " <operationalState>ENABLED</operationalState>\n" +
126 " </SystemController>\n" +
127 " <SystemController>\n" +
129 " <operationalState></operationalState>\n" +
130 " </SystemController>\n" +
131 " </ProcessorManagement>\n" +
132 " </VnfFunction>\n" +
133 " </ManagedElement>\n" +
136 assertInvalidResponse(response, operationalStateValidator);
139 void assertValidResponse(String response, OperationalStateValidator operationalStateValidator) {
141 operationalStateValidator.validateResponse(response);
142 } catch (APPCException e) {
143 fail("Got unexpected exception. Validation failed. " + e.getMessage());
148 public void testMockValidResponse() {
149 String response = "valid";
150 OperationalStateValidator operationalStateValidator = OperationalStateValidatorFactory.getOperationalStateValidator("mock");
151 assertValidResponse(response, operationalStateValidator);
154 assertValidResponse(response, operationalStateValidator);
157 assertValidResponse(response, operationalStateValidator);
161 public void testMockInValidResponse() {
162 String response = "anything InValid anything.. ";
163 OperationalStateValidator operationalStateValidator = OperationalStateValidatorFactory.getOperationalStateValidator(VnfType.MOCK);
164 assertInvalidResponse(response, operationalStateValidator);
168 public void testGetOperationalStateValidatorForInValidVnfType() {
170 OperationalStateValidatorFactory.getOperationalStateValidator("wrongVnfType");
171 fail("invalid vnfType without exception!!!");
172 } catch (Exception e) {
173 assertNotNull(e.getMessage());
178 public void testGetOperationalStateValidatorForValidVnfType() {
179 String vnfType = VnfType.VNF.name().toLowerCase();
180 assertGettingValidatorForValidVnf(vnfType);
182 vnfType = VnfType.VNF.name().toUpperCase();
183 assertGettingValidatorForValidVnf(vnfType);
185 vnfType = VnfType.MOCK.name().toLowerCase();
186 assertGettingValidatorForValidVnf(vnfType);
188 vnfType = VnfType.MOCK.name().toUpperCase();
189 assertGettingValidatorForValidVnf(vnfType);
192 void assertGettingValidatorForValidVnf(String vnfType) {
194 OperationalStateValidator operationalStateValidator = OperationalStateValidatorFactory.getOperationalStateValidator(vnfType);
195 assertNotNull(operationalStateValidator);
196 } catch (Exception e) {
197 fail("valid vnfType throw exception!!!");