From 887fb8a181146390bccb6eaf5caeb0a84659c750 Mon Sep 17 00:00:00 2001 From: Michal Cmarada Date: Fri, 8 Jun 2018 11:54:53 +0200 Subject: HC2VPP-317 - Implement FIB table management support changes: - Added new custom model vpp-fib-table-management - allows management of IPv4 and IPv6 Fib tables for VPP Change-Id: I3647dd659dbefabab233eacef666c3835e69320d Signed-off-by: Michal Cmarada --- .../io/fd/hc2vpp/routing/RoutingModuleTest.java | 5 + .../routing/services/FibTableServiceImplTest.java | 110 --------------------- .../write/ControlPlaneProtocolCustomizerTest.java | 2 +- 3 files changed, 6 insertions(+), 111 deletions(-) delete mode 100644 routing/routing-impl/src/test/java/io/fd/hc2vpp/routing/services/FibTableServiceImplTest.java (limited to 'routing/routing-impl/src/test') diff --git a/routing/routing-impl/src/test/java/io/fd/hc2vpp/routing/RoutingModuleTest.java b/routing/routing-impl/src/test/java/io/fd/hc2vpp/routing/RoutingModuleTest.java index 679b90316..a12d0e0cc 100644 --- a/routing/routing-impl/src/test/java/io/fd/hc2vpp/routing/RoutingModuleTest.java +++ b/routing/routing-impl/src/test/java/io/fd/hc2vpp/routing/RoutingModuleTest.java @@ -31,6 +31,7 @@ import com.google.inject.name.Named; import com.google.inject.testing.fieldbinder.Bind; import com.google.inject.testing.fieldbinder.BoundFieldModule; import io.fd.hc2vpp.common.translate.util.NamingContext; +import io.fd.hc2vpp.fib.management.services.FibTableService; import io.fd.hc2vpp.routing.read.RoutingReaderFactory; import io.fd.hc2vpp.routing.write.RoutingWriterFactory; import io.fd.hc2vpp.vpp.classifier.context.VppClassifierContextManager; @@ -72,6 +73,10 @@ public class RoutingModuleTest { @Mock private FutureJVppCore futureJVppCore; + @Bind + @Mock + private FibTableService fibTableService; + @Inject private Set readerFactories = new HashSet<>(); diff --git a/routing/routing-impl/src/test/java/io/fd/hc2vpp/routing/services/FibTableServiceImplTest.java b/routing/routing-impl/src/test/java/io/fd/hc2vpp/routing/services/FibTableServiceImplTest.java deleted file mode 100644 index 988738aa6..000000000 --- a/routing/routing-impl/src/test/java/io/fd/hc2vpp/routing/services/FibTableServiceImplTest.java +++ /dev/null @@ -1,110 +0,0 @@ -/* - * Copyright (c) 2018 Bell Canada, Pantheon Technologies and/or its affiliates. - * - * 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.routing.services; - -import static io.fd.vpp.jvpp.Assertions.assertEquals; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.Mockito.times; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -import com.google.inject.Inject; -import io.fd.hc2vpp.common.translate.util.ByteDataTranslator; -import io.fd.hc2vpp.routing.RoutingIIds; -import io.fd.hc2vpp.routing.helpers.RoutingRequestTestHelper; -import io.fd.hc2vpp.routing.helpers.SchemaContextTestHelper; -import io.fd.honeycomb.translate.ModificationCache; -import io.fd.honeycomb.translate.read.ReadFailedException; -import io.fd.honeycomb.translate.write.WriteContext; -import io.fd.honeycomb.translate.write.WriteFailedException; -import io.fd.vpp.jvpp.core.dto.Ip6FibDetailsReplyDump; -import io.fd.vpp.jvpp.core.dto.IpFibDetailsReplyDump; -import io.fd.vpp.jvpp.core.dto.IpTableAddDel; -import io.fd.vpp.jvpp.core.dto.IpTableAddDelReply; -import io.fd.vpp.jvpp.core.future.FutureJVppCore; -import org.junit.Assert; -import org.junit.Before; -import org.junit.Test; -import org.mockito.ArgumentCaptor; -import org.mockito.Captor; -import org.mockito.Mock; -import org.mockito.MockitoAnnotations; - -public class FibTableServiceImplTest implements RoutingRequestTestHelper, SchemaContextTestHelper { - - private static final int FIB_TABLE_ID = 123456; - private static final String FIB_TABLE_NAME = "VRF123456"; - - @Inject - @Mock - private static FutureJVppCore api; - - @Mock - private static WriteContext ctx; - - @Mock - private ModificationCache modificationCache; - - @Captor - private ArgumentCaptor argumentCaptor; - - @Before - public void setup() { - MockitoAnnotations.initMocks(this); - when(api.ipTableAddDel(any())).thenReturn(future(new IpTableAddDelReply())); - when(api.ipFibDump(any())).thenReturn(future(new IpFibDetailsReplyDump())); - when(api.ip6FibDump(any())).thenReturn(future(new Ip6FibDetailsReplyDump())); - when(modificationCache.get(any())).thenReturn(null); - - } - - @Test(expected = FibTableService.FibTableDoesNotExistException.class) - public void checkTableExistTest() throws ReadFailedException, FibTableService.FibTableDoesNotExistException { - FibTableServiceImpl fibService = new FibTableServiceImpl(api, ctx.getModificationCache()); - - fibService.checkTableExist(FIB_TABLE_ID, modificationCache); - } - - @Test - public void writeIpv4Test() throws WriteFailedException { - FibTableServiceImpl fibTableService = new FibTableServiceImpl(api, ctx.getModificationCache()); - fibTableService.write(RoutingIIds.ROUTING, FIB_TABLE_ID, FIB_TABLE_NAME, false); - - verify(api, times(1)).ipTableAddDel(argumentCaptor.capture()); - - final IpTableAddDel jvppRequest = argumentCaptor.getValue(); - assertTableAddDelRequest(jvppRequest, true, false); - } - - @Test - public void writeIpv6Test() throws WriteFailedException { - FibTableServiceImpl fibTableService = new FibTableServiceImpl(api, ctx.getModificationCache()); - fibTableService.write(RoutingIIds.ROUTING, FIB_TABLE_ID, FIB_TABLE_NAME, true); - - verify(api, times(1)).ipTableAddDel(argumentCaptor.capture()); - - final IpTableAddDel jvppRequest = argumentCaptor.getValue(); - assertTableAddDelRequest(jvppRequest, true, true); - } - - private void assertTableAddDelRequest(IpTableAddDel jvppRequest, boolean isAdd, boolean isIpv6) { - assertEquals(ByteDataTranslator.INSTANCE.booleanToByte(isAdd), jvppRequest.isAdd); - assertEquals(ByteDataTranslator.INSTANCE.booleanToByte(isIpv6), jvppRequest.isIpv6); - assertEquals(FIB_TABLE_ID, jvppRequest.tableId); - Assert.assertArrayEquals(FIB_TABLE_NAME.getBytes(), jvppRequest.name); - } -} diff --git a/routing/routing-impl/src/test/java/io/fd/hc2vpp/routing/write/ControlPlaneProtocolCustomizerTest.java b/routing/routing-impl/src/test/java/io/fd/hc2vpp/routing/write/ControlPlaneProtocolCustomizerTest.java index b4cf64ead..c96e31373 100644 --- a/routing/routing-impl/src/test/java/io/fd/hc2vpp/routing/write/ControlPlaneProtocolCustomizerTest.java +++ b/routing/routing-impl/src/test/java/io/fd/hc2vpp/routing/write/ControlPlaneProtocolCustomizerTest.java @@ -23,7 +23,7 @@ import static org.junit.Assert.fail; import io.fd.hc2vpp.common.test.write.WriterCustomizerTest; import io.fd.hc2vpp.common.translate.util.NamingContext; -import io.fd.hc2vpp.routing.services.FibTableService; +import io.fd.hc2vpp.fib.management.services.FibTableService; import io.fd.honeycomb.translate.write.WriteFailedException; import org.junit.Before; import org.junit.Test; -- cgit 1.2.3-korg