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!!!");