diff options
author | Tibor Král <tibor.kral@pantheon.tech> | 2019-05-14 12:19:44 +0200 |
---|---|---|
committer | Michal Cmarada <mcmarada@cisco.com> | 2019-05-27 08:25:05 +0200 |
commit | 5c416ebacf4baad25de6213661c3cdfff31c0482 (patch) | |
tree | d2fe4889f01e4adbdeb50ea83b47aa44102a5f49 /v3po/v3po2vpp/src/test/java/io/fd/hc2vpp/v3po/interfaces/pbb | |
parent | 83206cb1b6b0a6a3bbe45d646ed69a5f2b587fed (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')
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(); + } +} |