summaryrefslogtreecommitdiffstats
path: root/v3po/v3po2vpp/src/test/java/io/fd/hc2vpp/v3po/interfaces/pbb
diff options
context:
space:
mode:
authorTibor Král <tibor.kral@pantheon.tech>2019-05-14 12:19:44 +0200
committerMichal Cmarada <mcmarada@cisco.com>2019-05-27 08:25:05 +0200
commit5c416ebacf4baad25de6213661c3cdfff31c0482 (patch)
treed2fe4889f01e4adbdeb50ea83b47aa44102a5f49 /v3po/v3po2vpp/src/test/java/io/fd/hc2vpp/v3po/interfaces/pbb
parent83206cb1b6b0a6a3bbe45d646ed69a5f2b587fed (diff)
HC2VPP-381: Validation support for V3PO module
Change-Id: If288d97dce15bcc6924d4dd65c640a20920f094d Signed-off-by: Tibor Král <tibor.kral@pantheon.tech>
Diffstat (limited to 'v3po/v3po2vpp/src/test/java/io/fd/hc2vpp/v3po/interfaces/pbb')
-rw-r--r--v3po/v3po2vpp/src/test/java/io/fd/hc2vpp/v3po/interfaces/pbb/PbbRewriteCustomizerTest.java133
-rw-r--r--v3po/v3po2vpp/src/test/java/io/fd/hc2vpp/v3po/interfaces/pbb/PbbRewriteValidatorTest.java189
2 files changed, 196 insertions, 126 deletions
diff --git a/v3po/v3po2vpp/src/test/java/io/fd/hc2vpp/v3po/interfaces/pbb/PbbRewriteCustomizerTest.java b/v3po/v3po2vpp/src/test/java/io/fd/hc2vpp/v3po/interfaces/pbb/PbbRewriteCustomizerTest.java
index d2c9ed3a8..206a5a086 100644
--- a/v3po/v3po2vpp/src/test/java/io/fd/hc2vpp/v3po/interfaces/pbb/PbbRewriteCustomizerTest.java
+++ b/v3po/v3po2vpp/src/test/java/io/fd/hc2vpp/v3po/interfaces/pbb/PbbRewriteCustomizerTest.java
@@ -38,11 +38,9 @@ import org.mockito.Captor;
import org.opendaylight.yang.gen.v1.http.fd.io.hc2vpp.yang.pbb.types.rev161214.Operation;
import org.opendaylight.yang.gen.v1.http.fd.io.hc2vpp.yang.vpp.pbb.rev161214.PbbRewriteInterfaceAugmentation;
import org.opendaylight.yang.gen.v1.http.fd.io.hc2vpp.yang.vpp.pbb.rev161214.interfaces._interface.PbbRewrite;
-import org.opendaylight.yang.gen.v1.http.fd.io.hc2vpp.yang.vpp.pbb.rev161214.interfaces._interface.PbbRewriteBuilder;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev180220.Interfaces;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev180220.interfaces.Interface;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev180220.interfaces.InterfaceKey;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.MacAddress;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
public class PbbRewriteCustomizerTest extends WriterCustomizerTest {
@@ -72,14 +70,14 @@ public class PbbRewriteCustomizerTest extends WriterCustomizerTest {
@Test
public void testWrite() throws WriteFailedException {
whenRewriteThenSuccess();
- customizer.writeCurrentAttributes(validId, validData(), writeContext);
+ customizer.writeCurrentAttributes(validId, PbbRewriteValidatorTest.validData(), writeContext);
verifyRewriteRequest(desiredSetResult());
}
@Test
public void testWriteFailedCallFailed() {
whenRewriteThenFail();
- final PbbRewrite validData = validData();
+ final PbbRewrite validData = PbbRewriteValidatorTest.validData();
try {
customizer.writeCurrentAttributes(validId, validData, writeContext);
} catch (Exception e) {
@@ -96,18 +94,9 @@ public class PbbRewriteCustomizerTest extends WriterCustomizerTest {
}
@Test
- public void testWriteFailedInvalidData() {
- verifyInvalidWriteDataCombination(invalidDataNoDestination());
- verifyInvalidWriteDataCombination(invalidDataNoSource());
- verifyInvalidWriteDataCombination(invalidDataNoItag());
- verifyInvalidWriteDataCombination(invalidDataNoOperation());
- verifyInvalidWriteDataCombination(invalidDataNoVlan());
- }
-
- @Test
public void testUpdate() throws WriteFailedException {
whenRewriteThenSuccess();
- final PbbRewrite rewrite = validData();
+ final PbbRewrite rewrite = PbbRewriteValidatorTest.validData();
customizer.updateCurrentAttributes(validId, rewrite, rewrite, writeContext);
verifyRewriteRequest(desiredSetResult());
}
@@ -115,8 +104,8 @@ public class PbbRewriteCustomizerTest extends WriterCustomizerTest {
@Test
public void testUpdateFailedCallFailed() {
whenRewriteThenFail();
- final PbbRewrite invalidData = invalidDataNoVlan();
- final PbbRewrite validData = validData();
+ final PbbRewrite invalidData = PbbRewriteValidatorTest.invalidDataNoVlan();
+ final PbbRewrite validData = PbbRewriteValidatorTest.validData();
try {
customizer.updateCurrentAttributes(validId, invalidData, validData, writeContext);
} catch (Exception e) {
@@ -134,25 +123,16 @@ public class PbbRewriteCustomizerTest extends WriterCustomizerTest {
}
@Test
- public void testUpdateFailedInvalidData() {
- verifyInvalidUpdateDataCombination(invalidDataNoDestination());
- verifyInvalidUpdateDataCombination(invalidDataNoSource());
- verifyInvalidUpdateDataCombination(invalidDataNoItag());
- verifyInvalidUpdateDataCombination(invalidDataNoOperation());
- verifyInvalidUpdateDataCombination(invalidDataNoVlan());
- }
-
- @Test
public void testDelete() throws WriteFailedException {
whenRewriteThenSuccess();
- customizer.deleteCurrentAttributes(validId, validData(), writeContext);
+ customizer.deleteCurrentAttributes(validId, PbbRewriteValidatorTest.validData(), writeContext);
verifyRewriteRequest(desiredDisableResult());
}
@Test
public void testDeleteFailedCallFailed() {
whenRewriteThenFail();
- final PbbRewrite validData = validData();
+ final PbbRewrite validData = PbbRewriteValidatorTest.validData();
try {
customizer.deleteCurrentAttributes(validId, validData, writeContext);
} catch (Exception e) {
@@ -165,15 +145,6 @@ public class PbbRewriteCustomizerTest extends WriterCustomizerTest {
fail("Test should have failed");
}
- @Test
- public void testDeleteFailedInvalidData() {
- verifyInvalidDeleteDataCombination(invalidDataNoDestination());
- verifyInvalidDeleteDataCombination(invalidDataNoSource());
- verifyInvalidDeleteDataCombination(invalidDataNoItag());
- verifyInvalidDeleteDataCombination(invalidDataNoOperation());
- verifyInvalidDeleteDataCombination(invalidDataNoVlan());
- }
-
private void whenRewriteThenSuccess() {
when(api.l2InterfacePbbTagRewrite(any())).thenReturn(future(new L2InterfacePbbTagRewriteReply()));
}
@@ -182,41 +153,6 @@ public class PbbRewriteCustomizerTest extends WriterCustomizerTest {
when(api.l2InterfacePbbTagRewrite(any())).thenReturn(failedFuture());
}
- private void verifyInvalidWriteDataCombination(final PbbRewrite invalidData) {
- try {
- customizer.writeCurrentAttributes(validId, invalidData, writeContext);
- } catch (Exception e) {
- assertTrue(e instanceof NullPointerException);
- return;
- }
-
- fail("Verifying of invalid combination failed");
- }
-
- private void verifyInvalidUpdateDataCombination(final PbbRewrite invalidData) {
- try {
- customizer.updateCurrentAttributes(validId, validData(), invalidData, writeContext);
- } catch (Exception e) {
- assertTrue(e instanceof NullPointerException);
- return;
- }
-
- fail("Verifying of invalid combination failed");
- }
-
-
- private void verifyInvalidDeleteDataCombination(final PbbRewrite invalidData) {
- try {
- customizer.deleteCurrentAttributes(validId, invalidData, writeContext);
- } catch (Exception e) {
- assertTrue(e instanceof NullPointerException);
- return;
- }
-
- fail("Verifying of invalid combination failed");
- }
-
-
private L2InterfacePbbTagRewrite desiredSetResult() {
final L2InterfacePbbTagRewrite desiredResult = new L2InterfacePbbTagRewrite();
desiredResult.swIfIndex = 1;
@@ -254,59 +190,4 @@ public class PbbRewriteCustomizerTest extends WriterCustomizerTest {
assertArrayEquals(actualRequest.bDmac, desiredResult.bDmac);
assertArrayEquals(actualRequest.bSmac, desiredResult.bSmac);
}
-
- private PbbRewrite invalidDataNoDestination() {
- return new PbbRewriteBuilder()
- .setBVlanTagVlanId(1234)
- .setITagIsid(2L)
- .setSourceAddress(new MacAddress("aa:aa:aa:aa:aa:aa"))
- .setInterfaceOperation(Operation.Pop2)
- .build();
- }
-
- private PbbRewrite invalidDataNoSource() {
- return new PbbRewriteBuilder()
- .setBVlanTagVlanId(1234)
- .setITagIsid(2L)
- .setDestinationAddress(new MacAddress("bb:bb:bb:bb:bb:bb"))
- .setInterfaceOperation(Operation.Pop2)
- .build();
- }
-
- private PbbRewrite invalidDataNoItag() {
- return new PbbRewriteBuilder()
- .setBVlanTagVlanId(1234)
- .setSourceAddress(new MacAddress("aa:aa:aa:aa:aa:aa"))
- .setDestinationAddress(new MacAddress("bb:bb:bb:bb:bb:bb"))
- .setInterfaceOperation(Operation.Pop2)
- .build();
- }
-
- private PbbRewrite invalidDataNoVlan() {
- return new PbbRewriteBuilder()
- .setITagIsid(2L)
- .setSourceAddress(new MacAddress("aa:aa:aa:aa:aa:aa"))
- .setDestinationAddress(new MacAddress("bb:bb:bb:bb:bb:bb"))
- .setInterfaceOperation(Operation.Pop2)
- .build();
- }
-
- private PbbRewrite invalidDataNoOperation() {
- return new PbbRewriteBuilder()
- .setITagIsid(2L)
- .setSourceAddress(new MacAddress("aa:aa:aa:aa:aa:aa"))
- .setDestinationAddress(new MacAddress("bb:bb:bb:bb:bb:bb"))
- .setInterfaceOperation(Operation.Pop2)
- .build();
- }
-
- private PbbRewrite validData() {
- return new PbbRewriteBuilder()
- .setBVlanTagVlanId(1234)
- .setITagIsid(2L)
- .setSourceAddress(new MacAddress("aa:aa:aa:aa:aa:aa"))
- .setDestinationAddress(new MacAddress("bb:bb:bb:bb:bb:bb"))
- .setInterfaceOperation(Operation.Pop2)
- .build();
- }
}
diff --git a/v3po/v3po2vpp/src/test/java/io/fd/hc2vpp/v3po/interfaces/pbb/PbbRewriteValidatorTest.java b/v3po/v3po2vpp/src/test/java/io/fd/hc2vpp/v3po/interfaces/pbb/PbbRewriteValidatorTest.java
new file mode 100644
index 000000000..114a1bc19
--- /dev/null
+++ b/v3po/v3po2vpp/src/test/java/io/fd/hc2vpp/v3po/interfaces/pbb/PbbRewriteValidatorTest.java
@@ -0,0 +1,189 @@
+/*
+ * Copyright (c) 2019 PANTHEON.tech.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at:
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package io.fd.hc2vpp.v3po.interfaces.pbb;
+
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+import static org.mockito.MockitoAnnotations.initMocks;
+
+import io.fd.hc2vpp.common.translate.util.NamingContext;
+import io.fd.honeycomb.translate.write.DataValidationFailedException.CreateValidationFailedException;
+import io.fd.honeycomb.translate.write.DataValidationFailedException.DeleteValidationFailedException;
+import io.fd.honeycomb.translate.write.DataValidationFailedException.UpdateValidationFailedException;
+import io.fd.honeycomb.translate.write.WriteContext;
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.Mock;
+import org.opendaylight.yang.gen.v1.http.fd.io.hc2vpp.yang.pbb.types.rev161214.Operation;
+import org.opendaylight.yang.gen.v1.http.fd.io.hc2vpp.yang.vpp.pbb.rev161214.PbbRewriteInterfaceAugmentation;
+import org.opendaylight.yang.gen.v1.http.fd.io.hc2vpp.yang.vpp.pbb.rev161214.interfaces._interface.PbbRewrite;
+import org.opendaylight.yang.gen.v1.http.fd.io.hc2vpp.yang.vpp.pbb.rev161214.interfaces._interface.PbbRewriteBuilder;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev180220.Interfaces;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev180220.interfaces.Interface;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev180220.interfaces.InterfaceKey;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.MacAddress;
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+
+public class PbbRewriteValidatorTest {
+
+ private PbbRewriteValidator validator;
+ private InstanceIdentifier<PbbRewrite> validId;
+ private InstanceIdentifier<PbbRewrite> invalidId;
+
+ @Mock
+ private WriteContext writeContext;
+
+ @Before
+ public void setUp() {
+ initMocks(this);
+ NamingContext ifcContext = new NamingContext("testInterfaceContext", "testInterfaceContext");
+ validator = new PbbRewriteValidator(ifcContext);
+ validId = InstanceIdentifier.create(Interfaces.class)
+ .child(Interface.class, new InterfaceKey("pbb-interface"))
+ .augmentation(PbbRewriteInterfaceAugmentation.class)
+ .child(PbbRewrite.class);
+
+ invalidId = InstanceIdentifier.create(PbbRewrite.class);
+ }
+
+ @Test
+ public void testWriteSuccessful()
+ throws CreateValidationFailedException {
+ validator.validateWrite(validId, validData(), writeContext);
+ }
+
+ @Test(expected = CreateValidationFailedException.class)
+ public void testWriteFailedInvalidIID()
+ throws CreateValidationFailedException {
+ validator.validateWrite(invalidId, validData(), writeContext);
+ }
+
+ @Test
+ public void testWriteFailedInvalidData() {
+ verifyInvalidWriteDataCombination(invalidDataNoDestination());
+ verifyInvalidWriteDataCombination(invalidDataNoSource());
+ verifyInvalidWriteDataCombination(invalidDataNoItag());
+ verifyInvalidWriteDataCombination(invalidDataNoOperation());
+ verifyInvalidWriteDataCombination(invalidDataNoVlan());
+ }
+
+ @Test
+ public void testUpdateFailedInvalidData() {
+ verifyInvalidUpdateDataCombination(invalidDataNoDestination());
+ verifyInvalidUpdateDataCombination(invalidDataNoSource());
+ verifyInvalidUpdateDataCombination(invalidDataNoItag());
+ verifyInvalidUpdateDataCombination(invalidDataNoOperation());
+ verifyInvalidUpdateDataCombination(invalidDataNoVlan());
+ }
+
+ @Test
+ public void testDeleteFailedInvalidData() {
+ verifyInvalidDeleteDataCombination(invalidDataNoDestination());
+ verifyInvalidDeleteDataCombination(invalidDataNoSource());
+ verifyInvalidDeleteDataCombination(invalidDataNoItag());
+ verifyInvalidDeleteDataCombination(invalidDataNoOperation());
+ verifyInvalidDeleteDataCombination(invalidDataNoVlan());
+ }
+
+ private void verifyInvalidWriteDataCombination(final PbbRewrite invalidData) {
+ try {
+ validator.validateWrite(validId, invalidData, writeContext);
+ } catch (Exception e) {
+ assertTrue(e instanceof CreateValidationFailedException);
+ return;
+ }
+
+ fail("Verifying of invalid combination failed");
+ }
+
+ private void verifyInvalidUpdateDataCombination(final PbbRewrite invalidData) {
+ try {
+ validator.validateUpdate(validId, validData(), invalidData, writeContext);
+ } catch (Exception e) {
+ assertTrue(e instanceof UpdateValidationFailedException);
+ return;
+ }
+
+ fail("Verifying of invalid combination failed");
+ }
+
+ private void verifyInvalidDeleteDataCombination(final PbbRewrite invalidData) {
+ try {
+ validator.validateDelete(validId, invalidData, writeContext);
+ } catch (Exception e) {
+ assertTrue(e instanceof DeleteValidationFailedException);
+ return;
+ }
+
+ fail("Verifying of invalid combination failed");
+ }
+
+ static PbbRewrite invalidDataNoDestination() {
+ return new PbbRewriteBuilder()
+ .setBVlanTagVlanId(1234)
+ .setITagIsid(2L)
+ .setSourceAddress(new MacAddress("aa:aa:aa:aa:aa:aa"))
+ .setInterfaceOperation(Operation.Pop2)
+ .build();
+ }
+
+ static PbbRewrite invalidDataNoSource() {
+ return new PbbRewriteBuilder()
+ .setBVlanTagVlanId(1234)
+ .setITagIsid(2L)
+ .setDestinationAddress(new MacAddress("bb:bb:bb:bb:bb:bb"))
+ .setInterfaceOperation(Operation.Pop2)
+ .build();
+ }
+
+ static PbbRewrite invalidDataNoItag() {
+ return new PbbRewriteBuilder()
+ .setBVlanTagVlanId(1234)
+ .setSourceAddress(new MacAddress("aa:aa:aa:aa:aa:aa"))
+ .setDestinationAddress(new MacAddress("bb:bb:bb:bb:bb:bb"))
+ .setInterfaceOperation(Operation.Pop2)
+ .build();
+ }
+
+ static PbbRewrite invalidDataNoVlan() {
+ return new PbbRewriteBuilder()
+ .setITagIsid(2L)
+ .setSourceAddress(new MacAddress("aa:aa:aa:aa:aa:aa"))
+ .setDestinationAddress(new MacAddress("bb:bb:bb:bb:bb:bb"))
+ .setInterfaceOperation(Operation.Pop2)
+ .build();
+ }
+
+ static PbbRewrite invalidDataNoOperation() {
+ return new PbbRewriteBuilder()
+ .setITagIsid(2L)
+ .setSourceAddress(new MacAddress("aa:aa:aa:aa:aa:aa"))
+ .setDestinationAddress(new MacAddress("bb:bb:bb:bb:bb:bb"))
+ .setInterfaceOperation(Operation.Pop2)
+ .build();
+ }
+
+ static PbbRewrite validData() {
+ return new PbbRewriteBuilder()
+ .setBVlanTagVlanId(1234)
+ .setITagIsid(2L)
+ .setSourceAddress(new MacAddress("aa:aa:aa:aa:aa:aa"))
+ .setDestinationAddress(new MacAddress("bb:bb:bb:bb:bb:bb"))
+ .setInterfaceOperation(Operation.Pop2)
+ .build();
+ }
+}