From e7a0775b21c2ea6b7bb8efb63b5384df26e27fbb Mon Sep 17 00:00:00 2001 From: Marek Gradzki Date: Fri, 23 Sep 2016 07:21:11 +0200 Subject: HONEYCOMB-116: utility for stubbing jvpp methods - introduces FutureProducer (inspired by https://gerrit.fd.io/r/#/c/2650/) - updates unit tests for v3po and lisp Change-Id: I56488bb1dcd6fcaf6821a58f99b528677e095662 Signed-off-by: Marek Gradzki --- .../vppclassifier/ClassifySessionReaderTest.java | 6 +-- .../vppclassifier/ClassifySessionWriterTest.java | 48 ++++---------------- .../vppclassifier/ClassifyTableReaderTest.java | 9 +--- .../vppclassifier/ClassifyTableWriterTest.java | 51 +++++----------------- 4 files changed, 23 insertions(+), 91 deletions(-) (limited to 'v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/vppclassifier') diff --git a/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/vppclassifier/ClassifySessionReaderTest.java b/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/vppclassifier/ClassifySessionReaderTest.java index ee05d284f..f45367098 100644 --- a/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/vppclassifier/ClassifySessionReaderTest.java +++ b/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/vppclassifier/ClassifySessionReaderTest.java @@ -30,7 +30,6 @@ import io.fd.honeycomb.vpp.test.read.ListReaderCustomizerTest; import java.util.Arrays; import java.util.Collections; import java.util.List; -import java.util.concurrent.CompletableFuture; import org.junit.Test; import org.mockito.Mock; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.HexString; @@ -112,10 +111,7 @@ public class ClassifySessionReaderTest extends new byte[] {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, (byte) 0x01, (byte) 0x02, (byte) 0x03, (byte) 0x04, (byte) 0x05, (byte) 0x07, 0x00, 0x00, 0x00, 0x00}; dump.classifySessionDetails = Arrays.asList(details1, details2); - - final CompletableFuture replyFuture = new CompletableFuture<>(); - replyFuture.complete(dump); - doReturn(replyFuture).when(api).classifySessionDump(any(ClassifySessionDump.class)); + doReturn(future(dump)).when(api).classifySessionDump(any(ClassifySessionDump.class)); when(classifierContext.containsTable(TABLE_NAME, mappingContext)).thenReturn(true); when(classifierContext.getTableIndex(TABLE_NAME, mappingContext)).thenReturn(TABLE_INDEX); diff --git a/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/vppclassifier/ClassifySessionWriterTest.java b/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/vppclassifier/ClassifySessionWriterTest.java index b24d93662..bba040651 100644 --- a/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/vppclassifier/ClassifySessionWriterTest.java +++ b/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/vppclassifier/ClassifySessionWriterTest.java @@ -16,8 +16,6 @@ package io.fd.honeycomb.translate.v3po.vppclassifier; -import static org.junit.Assert.assertArrayEquals; -import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; import static org.mockito.Matchers.any; @@ -27,13 +25,9 @@ import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import com.google.common.base.Optional; -import io.fd.honeycomb.translate.v3po.test.TestHelperUtils; -import io.fd.honeycomb.vpp.test.write.WriterCustomizerTest; import io.fd.honeycomb.translate.write.WriteFailedException; -import java.util.concurrent.CompletableFuture; -import java.util.concurrent.ExecutionException; +import io.fd.honeycomb.vpp.test.write.WriterCustomizerTest; import org.junit.Test; -import org.mockito.ArgumentCaptor; import org.mockito.Mock; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.HexString; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.classifier.rev150603.OpaqueIndex; @@ -50,7 +44,6 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.openvpp.jvpp.VppBaseCallException; import org.openvpp.jvpp.core.dto.ClassifyAddDelSession; import org.openvpp.jvpp.core.dto.ClassifyAddDelSessionReply; -import org.openvpp.jvpp.core.dto.L2InterfaceVlanTagRewriteReply; public class ClassifySessionWriterTest extends WriterCustomizerTest { @@ -92,36 +85,13 @@ public class ClassifySessionWriterTest extends WriterCustomizerTest { .child(ClassifySession.class, new ClassifySessionKey(new HexString(match))); } - private void whenClassifyAddDelSessionThenSuccess() throws ExecutionException, InterruptedException { - final CompletableFuture replyFuture = new CompletableFuture<>(); - replyFuture.complete(new ClassifyAddDelSessionReply()); - doReturn(replyFuture).when(api).classifyAddDelSession(any(ClassifyAddDelSession.class)); - } - - private void whenClassifyAddDelSessionThenFailure() throws ExecutionException, InterruptedException { - doReturn(TestHelperUtils.createFutureException()).when(api) + private void whenClassifyAddDelSessionThenSuccess() { + doReturn(future(new ClassifyAddDelSessionReply())).when(api) .classifyAddDelSession(any(ClassifyAddDelSession.class)); } - private void verifyClassifyAddDelSessionWasInvoked(final ClassifyAddDelSession expected) { - ArgumentCaptor argumentCaptor = ArgumentCaptor.forClass(ClassifyAddDelSession.class); - verify(api).classifyAddDelSession(argumentCaptor.capture()); - final ClassifyAddDelSession actual = argumentCaptor.getValue(); - assertEquals(expected.opaqueIndex, actual.opaqueIndex); - assertEquals(expected.isAdd, actual.isAdd); - assertEquals(expected.tableIndex, actual.tableIndex); - assertEquals(expected.hitNextIndex, actual.hitNextIndex); - assertArrayEquals(expected.match, actual.match); - assertEquals(expected.advance, actual.advance); - } - - private void verifyClassifyAddDelSessionDeleteWasInvoked(final ClassifyAddDelSession expected) { - ArgumentCaptor argumentCaptor = ArgumentCaptor.forClass(ClassifyAddDelSession.class); - verify(api).classifyAddDelSession(argumentCaptor.capture()); - final ClassifyAddDelSession actual = argumentCaptor.getValue(); - assertEquals(expected.opaqueIndex, actual.opaqueIndex); - assertEquals(expected.isAdd, actual.isAdd); - assertEquals(expected.tableIndex, actual.tableIndex); + private void whenClassifyAddDelSessionThenFailure() { + doReturn(failedFuture()).when(api).classifyAddDelSession(any(ClassifyAddDelSession.class)); } private static ClassifyAddDelSession generateClassifyAddDelSession(final byte isAdd, final int tableIndex, @@ -148,7 +118,7 @@ public class ClassifySessionWriterTest extends WriterCustomizerTest { customizer.writeCurrentAttributes(id, classifySession, writeContext); - verifyClassifyAddDelSessionWasInvoked(generateClassifyAddDelSession((byte) 1, TABLE_INDEX, SESSION_INDEX)); + verify(api).classifyAddDelSession(generateClassifyAddDelSession((byte) 1, TABLE_INDEX, SESSION_INDEX)); } @Test @@ -163,7 +133,7 @@ public class ClassifySessionWriterTest extends WriterCustomizerTest { customizer.writeCurrentAttributes(id, classifySession, writeContext); } catch (WriteFailedException.CreateFailedException e) { assertTrue(e.getCause() instanceof VppBaseCallException); - verifyClassifyAddDelSessionWasInvoked(generateClassifyAddDelSession((byte) 1, TABLE_INDEX, SESSION_INDEX)); + verify(api).classifyAddDelSession(generateClassifyAddDelSession((byte) 1, TABLE_INDEX, SESSION_INDEX)); return; } fail("WriteFailedException.CreateFailedException was expected"); @@ -184,7 +154,7 @@ public class ClassifySessionWriterTest extends WriterCustomizerTest { customizer.deleteCurrentAttributes(id, classifySession, writeContext); - verifyClassifyAddDelSessionDeleteWasInvoked( + verify(api).classifyAddDelSession( generateClassifyAddDelSession((byte) 0, TABLE_INDEX, SESSION_INDEX)); } @@ -200,7 +170,7 @@ public class ClassifySessionWriterTest extends WriterCustomizerTest { customizer.deleteCurrentAttributes(id, classifySession, writeContext); } catch (WriteFailedException.DeleteFailedException e) { assertTrue(e.getCause() instanceof VppBaseCallException); - verifyClassifyAddDelSessionDeleteWasInvoked( + verify(api).classifyAddDelSession( generateClassifyAddDelSession((byte) 0, TABLE_INDEX, SESSION_INDEX)); return; } diff --git a/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/vppclassifier/ClassifyTableReaderTest.java b/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/vppclassifier/ClassifyTableReaderTest.java index 198cfbee9..95864ce6e 100644 --- a/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/vppclassifier/ClassifyTableReaderTest.java +++ b/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/vppclassifier/ClassifyTableReaderTest.java @@ -30,7 +30,6 @@ import io.fd.honeycomb.translate.read.ReadFailedException; import io.fd.honeycomb.translate.spi.read.ReaderCustomizer; import io.fd.honeycomb.vpp.test.read.ListReaderCustomizerTest; import java.util.List; -import java.util.concurrent.CompletableFuture; import org.junit.Test; import org.mockito.Mock; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.HexString; @@ -105,9 +104,7 @@ public class ClassifyTableReaderTest extends @Test public void testRead() throws ReadFailedException { - final CompletableFuture replyFuture = new CompletableFuture<>(); - replyFuture.complete(generateClassifyTableInfoReply()); - doReturn(replyFuture).when(api).classifyTableInfo(any(ClassifyTableInfo.class)); + doReturn(future(generateClassifyTableInfoReply())).when(api).classifyTableInfo(any(ClassifyTableInfo.class)); when(classifierContext.containsTable(TABLE_NAME_1, mappingContext)).thenReturn(true); when(classifierContext.getTableIndex(TABLE_NAME_1, mappingContext)).thenReturn(TABLE_INDEX_1); @@ -121,11 +118,9 @@ public class ClassifyTableReaderTest extends @Test public void testGetAllIds() throws ReadFailedException { - final CompletableFuture replyFuture = new CompletableFuture<>(); final ClassifyTableIdsReply reply = new ClassifyTableIdsReply(); reply.ids = new int[] {1, 2}; - replyFuture.complete(reply); - doReturn(replyFuture).when(api).classifyTableIds(any(ClassifyTableIds.class)); + doReturn(future(reply)).when(api).classifyTableIds(any(ClassifyTableIds.class)); when(classifierContext.getTableName(TABLE_INDEX_1, mappingContext)).thenReturn(TABLE_NAME_1); when(classifierContext.getTableName(TABLE_INDEX_2, mappingContext)).thenReturn(TABLE_NAME_2); diff --git a/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/vppclassifier/ClassifyTableWriterTest.java b/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/vppclassifier/ClassifyTableWriterTest.java index c49767d90..ede423a4f 100644 --- a/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/vppclassifier/ClassifyTableWriterTest.java +++ b/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/vppclassifier/ClassifyTableWriterTest.java @@ -16,8 +16,6 @@ package io.fd.honeycomb.translate.v3po.vppclassifier; -import static org.junit.Assert.assertArrayEquals; -import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; import static org.mockito.Matchers.any; @@ -26,13 +24,9 @@ import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; -import io.fd.honeycomb.translate.v3po.test.TestHelperUtils; -import io.fd.honeycomb.vpp.test.write.WriterCustomizerTest; import io.fd.honeycomb.translate.write.WriteFailedException; -import java.util.concurrent.CompletableFuture; -import java.util.concurrent.ExecutionException; +import io.fd.honeycomb.vpp.test.write.WriterCustomizerTest; import org.junit.Test; -import org.mockito.ArgumentCaptor; import org.mockito.Mock; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.HexString; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.classifier.rev150603.PacketHandlingAction; @@ -46,7 +40,6 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.openvpp.jvpp.VppBaseCallException; import org.openvpp.jvpp.core.dto.ClassifyAddDelTable; import org.openvpp.jvpp.core.dto.ClassifyAddDelTableReply; -import org.openvpp.jvpp.core.dto.L2InterfaceVlanTagRewriteReply; public class ClassifyTableWriterTest extends WriterCustomizerTest { @@ -81,40 +74,18 @@ public class ClassifyTableWriterTest extends WriterCustomizerTest { .child(ClassifyTable.class, new ClassifyTableKey(name)); } - private void whenClassifyAddDelTableThenSuccess() throws ExecutionException, InterruptedException { - final CompletableFuture replyFuture = new CompletableFuture<>(); + private void whenClassifyAddDelTableThenSuccess() { final ClassifyAddDelTableReply reply = new ClassifyAddDelTableReply(); reply.newTableIndex = TABLE_INDEX; - replyFuture.complete(reply); - doReturn(replyFuture).when(api).classifyAddDelTable(any(ClassifyAddDelTable.class)); - } - - private void whenClassifyAddDelTableThenFailure() throws ExecutionException, InterruptedException { - doReturn(TestHelperUtils.createFutureException()).when(api) - .classifyAddDelTable(any(ClassifyAddDelTable.class)); + doReturn(future(reply)).when(api).classifyAddDelTable(any(ClassifyAddDelTable.class)); } - private void verifyClassifyAddDelTableAddWasInvoked(final ClassifyAddDelTable expected) { - ArgumentCaptor argumentCaptor = ArgumentCaptor.forClass(ClassifyAddDelTable.class); - verify(api).classifyAddDelTable(argumentCaptor.capture()); - final ClassifyAddDelTable actual = argumentCaptor.getValue(); - assertEquals(expected.isAdd, actual.isAdd); - assertEquals(~0, actual.tableIndex); - assertEquals(expected.nbuckets, actual.nbuckets); - assertEquals(expected.memorySize, actual.memorySize); - assertEquals(expected.skipNVectors, actual.skipNVectors); - assertEquals(expected.matchNVectors, actual.matchNVectors); - assertEquals(expected.nextTableIndex, actual.nextTableIndex); - assertEquals(expected.missNextIndex, actual.missNextIndex); - assertArrayEquals(expected.mask, actual.mask); + private void whenClassifyAddDelTableThenFailure() { + doReturn(failedFuture()).when(api).classifyAddDelTable(any(ClassifyAddDelTable.class)); } - private void verifyClassifyAddDelTableDeleteWasInvoked(final ClassifyAddDelTable expected) { - ArgumentCaptor argumentCaptor = ArgumentCaptor.forClass(ClassifyAddDelTable.class); - verify(api).classifyAddDelTable(argumentCaptor.capture()); - final ClassifyAddDelTable actual = argumentCaptor.getValue(); - assertEquals(expected.isAdd, actual.isAdd); - assertEquals(expected.tableIndex, actual.tableIndex); + private static ClassifyAddDelTable generateClassifyAddDelTable(final byte isAdd) { + return generateClassifyAddDelTable(isAdd, -1); } private static ClassifyAddDelTable generateClassifyAddDelTable(final byte isAdd, final int tableIndex) { @@ -142,7 +113,7 @@ public class ClassifyTableWriterTest extends WriterCustomizerTest { customizer.writeCurrentAttributes(id, classifyTable, writeContext); - verifyClassifyAddDelTableAddWasInvoked(generateClassifyAddDelTable((byte) 1, TABLE_INDEX)); + verify(api).classifyAddDelTable(generateClassifyAddDelTable((byte) 1)); verify(classifierContext) .addTable(TABLE_INDEX, classifyTable.getName(), classifyTable.getClassifierNode(), mappingContext); } @@ -158,7 +129,7 @@ public class ClassifyTableWriterTest extends WriterCustomizerTest { customizer.writeCurrentAttributes(id, classifyTable, writeContext); } catch (WriteFailedException.CreateFailedException e) { assertTrue(e.getCause() instanceof VppBaseCallException); - verifyClassifyAddDelTableAddWasInvoked(generateClassifyAddDelTable((byte) 1, TABLE_INDEX)); + verify(api).classifyAddDelTable(generateClassifyAddDelTable((byte) 1)); verify(classifierContext, times(0)) .addTable(TABLE_INDEX, classifyTable.getName(), classifyTable.getClassifierNode(), mappingContext); return; @@ -177,7 +148,7 @@ public class ClassifyTableWriterTest extends WriterCustomizerTest { customizer.deleteCurrentAttributes(id, classifyTable, writeContext); - verifyClassifyAddDelTableDeleteWasInvoked(generateClassifyAddDelTable((byte) 0, TABLE_INDEX)); + verify(api).classifyAddDelTable(generateClassifyAddDelTable((byte) 0, TABLE_INDEX)); } @Test @@ -193,7 +164,7 @@ public class ClassifyTableWriterTest extends WriterCustomizerTest { customizer.deleteCurrentAttributes(id, classifyTable, writeContext); } catch (WriteFailedException.DeleteFailedException e) { assertTrue(e.getCause() instanceof VppBaseCallException); - verifyClassifyAddDelTableDeleteWasInvoked(generateClassifyAddDelTable((byte) 0, TABLE_INDEX)); + verify(api).classifyAddDelTable(generateClassifyAddDelTable((byte) 0, TABLE_INDEX)); return; } fail("WriteFailedException.DeleteFailedException was expected"); -- cgit 1.2.3-korg