summaryrefslogtreecommitdiffstats
path: root/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/vppclassifier
diff options
context:
space:
mode:
Diffstat (limited to 'v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/vppclassifier')
-rw-r--r--v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/vppclassifier/ClassifySessionReaderTest.java116
-rw-r--r--v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/vppclassifier/ClassifySessionWriterTest.java179
-rw-r--r--v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/vppclassifier/ClassifyTableReaderTest.java126
-rw-r--r--v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/vppclassifier/ClassifyTableWriterTest.java181
-rw-r--r--v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/vppclassifier/VppClassifierContextManagerImplTest.java163
5 files changed, 0 insertions, 765 deletions
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
deleted file mode 100644
index 3b93389e4..000000000
--- a/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/vppclassifier/ClassifySessionReaderTest.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco 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.honeycomb.translate.v3po.vppclassifier;
-
-import static org.junit.Assert.assertEquals;
-import static org.mockito.Matchers.any;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
-
-import io.fd.honeycomb.translate.ModificationCache;
-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.Arrays;
-import java.util.Collections;
-import java.util.List;
-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;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.classifier.rev161214.VppClassifierState;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.classifier.rev161214.classify.table.base.attributes.ClassifySession;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.classifier.rev161214.classify.table.base.attributes.ClassifySessionBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.classifier.rev161214.classify.table.base.attributes.ClassifySessionKey;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.classifier.rev161214.vpp.classifier.state.ClassifyTable;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.classifier.rev161214.vpp.classifier.state.ClassifyTableBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.classifier.rev161214.vpp.classifier.state.ClassifyTableKey;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-import io.fd.vpp.jvpp.core.dto.ClassifySessionDetails;
-import io.fd.vpp.jvpp.core.dto.ClassifySessionDetailsReplyDump;
-import io.fd.vpp.jvpp.core.dto.ClassifySessionDump;
-
-public class ClassifySessionReaderTest extends
- ListReaderCustomizerTest<ClassifySession, ClassifySessionKey, ClassifySessionBuilder> {
-
- private static final String MATCH_1 = "00:00:00:00:00:00:01:02:03:04:05:06:00:00:00:00";
- private static final String MATCH_2 = "00:00:00:00:00:00:01:02:03:04:05:07:00:00:00:00";
-
- private static final int TABLE_INDEX = 1;
- private static final String TABLE_NAME = "table1";
-
- @Mock
- private VppClassifierContextManager classifierContext;
-
- public ClassifySessionReaderTest() {
- super(ClassifySession.class, ClassifyTableBuilder.class);
- }
-
- @Override
- protected ReaderCustomizer<ClassifySession, ClassifySessionBuilder> initCustomizer() {
- return new ClassifySessionReader(api, classifierContext);
- }
-
- private static InstanceIdentifier<ClassifySession> getClassifySessionId(final String tableName,
- final String match) {
- return InstanceIdentifier.create(VppClassifierState.class)
- .child(ClassifyTable.class, new ClassifyTableKey(tableName))
- .child(ClassifySession.class, new ClassifySessionKey(new HexString(match)));
- }
-
- @Test
- public void testReadWithCache() throws ReadFailedException {
- final InstanceIdentifier<ClassifySession> id = getClassifySessionId(TABLE_NAME, MATCH_1);
- final ClassifySessionBuilder builder = mock(ClassifySessionBuilder.class);
- final ModificationCache cache = new ModificationCache();
- final ClassifySessionDetailsReplyDump dump = new ClassifySessionDetailsReplyDump();
- final ClassifySessionDetails details = new ClassifySessionDetails();
- details.match =
- new byte[] {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, (byte) 0x01, (byte) 0x02, (byte) 0x03, (byte) 0x04,
- (byte) 0x05, (byte) 0x06, 0x00, 0x00, 0x00, 0x00};
- dump.classifySessionDetails = Collections.singletonList(details);
- cache.put(ClassifySessionReader.CACHE_KEY + id.firstKeyOf(ClassifyTable.class), dump);
- when(ctx.getModificationCache()).thenReturn(cache);
-
- getCustomizer().readCurrentAttributes(id, builder, ctx);
- }
-
- @Test
- public void testGetAllIds() throws ReadFailedException {
- final InstanceIdentifier<ClassifySession> id = getClassifySessionId(TABLE_NAME, MATCH_1);
- final ClassifySessionDetailsReplyDump dump = new ClassifySessionDetailsReplyDump();
- final ClassifySessionDetails details1 = new ClassifySessionDetails();
- details1.match =
- new byte[] {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, (byte) 0x01, (byte) 0x02, (byte) 0x03, (byte) 0x04,
- (byte) 0x05, (byte) 0x06, 0x00, 0x00, 0x00, 0x00};
- final ClassifySessionDetails details2 = new ClassifySessionDetails();
- details2.match =
- 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);
- 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);
-
- final List<ClassifySessionKey> allIds = getCustomizer().getAllIds(id, ctx);
- assertEquals(2, allIds.size());
- assertEquals(MATCH_1, allIds.get(0).getMatch().getValue());
- assertEquals(MATCH_2, allIds.get(1).getMatch().getValue());
- }
-
-} \ No newline at end of file
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
deleted file mode 100644
index 5aeab587c..000000000
--- a/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/vppclassifier/ClassifySessionWriterTest.java
+++ /dev/null
@@ -1,179 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco 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.honeycomb.translate.v3po.vppclassifier;
-
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
-import static org.mockito.Matchers.any;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-import com.google.common.base.Optional;
-import io.fd.honeycomb.translate.write.WriteFailedException;
-import io.fd.honeycomb.vpp.test.write.WriterCustomizerTest;
-import io.fd.vpp.jvpp.VppBaseCallException;
-import io.fd.vpp.jvpp.core.dto.ClassifyAddDelSession;
-import io.fd.vpp.jvpp.core.dto.ClassifyAddDelSessionReply;
-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;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.classifier.rev161214.OpaqueIndex;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.classifier.rev161214.PacketHandlingAction;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.classifier.rev161214.VppClassifier;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.classifier.rev161214.VppNode;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.classifier.rev161214.VppNodeName;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.classifier.rev161214.classify.table.base.attributes.ClassifySession;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.classifier.rev161214.classify.table.base.attributes.ClassifySessionBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.classifier.rev161214.classify.table.base.attributes.ClassifySessionKey;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.classifier.rev161214.vpp.classifier.ClassifyTable;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.classifier.rev161214.vpp.classifier.ClassifyTableKey;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-
-public class ClassifySessionWriterTest extends WriterCustomizerTest {
-
- private static final int TABLE_INDEX = 123;
- private static final String TABLE_NAME = "table123";
-
- @Mock
- private VppClassifierContextManager classfierContext;
-
- private ClassifySessionWriter customizer;
- private static final int SESSION_INDEX = 456;
-
- @Override
- public void setUp() throws Exception {
- customizer = new ClassifySessionWriter(api, classfierContext);
-
- when(classfierContext.containsTable(TABLE_NAME, mappingContext)).thenReturn(true);
- when(classfierContext.getTableIndex(TABLE_NAME, mappingContext)).thenReturn(TABLE_INDEX);
-
- final ClassifyTable table = mock(ClassifyTable.class);
- when(table.getClassifierNode()).thenReturn(new VppNodeName("ip4-classifier"));
- when(writeContext.readAfter(any())).thenReturn(Optional.of(table));
- when(writeContext.readBefore(any())).thenReturn(Optional.of(table));
- }
-
- private static ClassifySession generateClassifySession(final long opaqueIndex, final String match) {
- final ClassifySessionBuilder builder = new ClassifySessionBuilder();
- builder.setOpaqueIndex(new OpaqueIndex(opaqueIndex));
- builder.setHitNext(new VppNode(PacketHandlingAction.Deny));
- builder.setAdvance(123);
- builder.setMatch(new HexString(match));
- return builder.build();
- }
-
- private static InstanceIdentifier<ClassifySession> getClassifySessionId(final String tableName,
- final String match) {
- return InstanceIdentifier.create(VppClassifier.class)
- .child(ClassifyTable.class, new ClassifyTableKey(tableName))
- .child(ClassifySession.class, new ClassifySessionKey(new HexString(match)));
- }
-
- private void whenClassifyAddDelSessionThenSuccess() {
- doReturn(future(new ClassifyAddDelSessionReply())).when(api)
- .classifyAddDelSession(any(ClassifyAddDelSession.class));
- }
-
- private void whenClassifyAddDelSessionThenFailure() {
- doReturn(failedFuture()).when(api).classifyAddDelSession(any(ClassifyAddDelSession.class));
- }
-
- private static ClassifyAddDelSession generateClassifyAddDelSession(final byte isAdd, final int tableIndex,
- final int sessionIndex) {
- final ClassifyAddDelSession request = new ClassifyAddDelSession();
- request.isAdd = isAdd;
- request.tableIndex = tableIndex;
- request.opaqueIndex = sessionIndex;
- request.hitNextIndex = 0;
- request.advance = 123;
- request.match =
- new byte[]{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, (byte) 0x01, (byte) 0x02, (byte) 0x03, (byte) 0x04,
- (byte) 0x05, (byte) 0x06, 0x00, 0x00, 0x00, 0x00};
- return request;
- }
-
- @Test
- public void testCreate() throws Exception {
- final String match = "00:00:00:00:00:00:01:02:03:04:05:06:00:00:00:00";
- final ClassifySession classifySession = generateClassifySession(SESSION_INDEX, match);
- final InstanceIdentifier<ClassifySession> id = getClassifySessionId(TABLE_NAME, match);
-
- whenClassifyAddDelSessionThenSuccess();
-
- customizer.writeCurrentAttributes(id, classifySession, writeContext);
-
- verify(api).classifyAddDelSession(generateClassifyAddDelSession((byte) 1, TABLE_INDEX, SESSION_INDEX));
- }
-
- @Test
- public void testCreateFailed() throws Exception {
- final String match = "00:00:00:00:00:00:01:02:03:04:05:06:00:00:00:00";
- final ClassifySession classifySession = generateClassifySession(SESSION_INDEX, match);
- final InstanceIdentifier<ClassifySession> id = getClassifySessionId(TABLE_NAME, match);
-
- whenClassifyAddDelSessionThenFailure();
-
- try {
- customizer.writeCurrentAttributes(id, classifySession, writeContext);
- } catch (WriteFailedException e) {
- assertTrue(e.getCause() instanceof VppBaseCallException);
- verify(api).classifyAddDelSession(generateClassifyAddDelSession((byte) 1, TABLE_INDEX, SESSION_INDEX));
- return;
- }
- fail("WriteFailedException.CreateFailedException was expected");
- }
-
- @Test(expected = UnsupportedOperationException.class)
- public void testUpdate() throws Exception {
- customizer.updateCurrentAttributes(null, null, null, writeContext);
- }
-
- @Test
- public void testDelete() throws Exception {
- final String match = "00:00:00:00:00:00:01:02:03:04:05:06:00:00:00:00";
- final ClassifySession classifySession = generateClassifySession(SESSION_INDEX, match);
- final InstanceIdentifier<ClassifySession> id = getClassifySessionId(TABLE_NAME, match);
-
- whenClassifyAddDelSessionThenSuccess();
-
- customizer.deleteCurrentAttributes(id, classifySession, writeContext);
-
- verify(api).classifyAddDelSession(generateClassifyAddDelSession((byte) 0, TABLE_INDEX, SESSION_INDEX));
- }
-
- @Test
- public void testDeleteFailed() throws Exception {
- final String match = "00:00:00:00:00:00:01:02:03:04:05:06:00:00:00:00";
- final ClassifySession classifySession = generateClassifySession(SESSION_INDEX, match);
- final InstanceIdentifier<ClassifySession> id = getClassifySessionId(TABLE_NAME, match);
-
- whenClassifyAddDelSessionThenFailure();
-
- try {
- customizer.deleteCurrentAttributes(id, classifySession, writeContext);
- } catch (WriteFailedException e) {
- assertTrue(e.getCause() instanceof VppBaseCallException);
- verify(api).classifyAddDelSession(generateClassifyAddDelSession((byte) 0, TABLE_INDEX, SESSION_INDEX));
- return;
- }
- fail("WriteFailedException.DeleteFailedException was expected");
-
- customizer.deleteCurrentAttributes(id, classifySession, writeContext);
- }
-} \ No newline at end of file
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
deleted file mode 100644
index c6085cc92..000000000
--- a/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/vppclassifier/ClassifyTableReaderTest.java
+++ /dev/null
@@ -1,126 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco 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.honeycomb.translate.v3po.vppclassifier;
-
-import static org.junit.Assert.assertEquals;
-import static org.mockito.Matchers.any;
-import static org.mockito.Matchers.anyString;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-import com.google.common.base.Optional;
-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 org.junit.Test;
-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.rev161214.PacketHandlingAction;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.classifier.rev161214.VppClassifierState;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.classifier.rev161214.VppClassifierStateBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.classifier.rev161214.VppNode;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.classifier.rev161214.vpp.classifier.state.ClassifyTable;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.classifier.rev161214.vpp.classifier.state.ClassifyTableBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.classifier.rev161214.vpp.classifier.state.ClassifyTableKey;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-import io.fd.vpp.jvpp.core.dto.ClassifyTableIds;
-import io.fd.vpp.jvpp.core.dto.ClassifyTableIdsReply;
-import io.fd.vpp.jvpp.core.dto.ClassifyTableInfo;
-import io.fd.vpp.jvpp.core.dto.ClassifyTableInfoReply;
-
-public class ClassifyTableReaderTest extends
- ListReaderCustomizerTest<ClassifyTable, ClassifyTableKey, ClassifyTableBuilder> {
-
- private static final int TABLE_INDEX_1 = 1;
- private static final String TABLE_NAME_1 = "table1";
- private static final int TABLE_INDEX_2 = 2;
- private static final String TABLE_NAME_2 = "table2";
-
- @Mock
- private VppClassifierContextManager classifierContext;
-
- public ClassifyTableReaderTest() {
- super(ClassifyTable.class, VppClassifierStateBuilder.class);
- }
-
- @Override
- protected ReaderCustomizer<ClassifyTable, ClassifyTableBuilder> initCustomizer() {
- return new ClassifyTableReader(api, classifierContext);
- }
-
- private static InstanceIdentifier<ClassifyTable> getClassifyTableId(final String name) {
- return InstanceIdentifier.create(VppClassifierState.class)
- .child(ClassifyTable.class, new ClassifyTableKey(name));
- }
-
- private static ClassifyTableInfoReply generateClassifyTableInfoReply() {
- final ClassifyTableInfoReply reply = new ClassifyTableInfoReply();
- reply.tableId = TABLE_INDEX_1;
- reply.nbuckets = 2;
- reply.skipNVectors = 0;
- reply.matchNVectors = 1;
- reply.nextTableIndex = ~0;
- reply.missNextIndex = ~0;
- reply.mask =
- new byte[] {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, (byte) 0x01, (byte) 0x02, (byte) 0x03, (byte) 0x04,
- (byte) 0x05, (byte) 0x06, 0x00, 0x00, 0x00, 0x00};
- return reply;
- }
-
- private void verifyClasifyTableRead(final ClassifyTableBuilder builder) {
- verify(builder).setName(TABLE_NAME_1);
- verify(builder).setNbuckets(2L);
- verify(builder, times(0)).setNextTable(anyString());
- verify(builder).setMissNext(new VppNode(PacketHandlingAction.Permit));
- verify(builder).setMask(new HexString("00:00:00:00:00:00:01:02:03:04:05:06:00:00:00:00"));
- verify(builder).setActiveSessions(0L);
- }
-
- @Test
- public void testRead() throws ReadFailedException {
- 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);
- when(classifierContext.getTableBaseNode(TABLE_NAME_1, mappingContext)).thenReturn(Optional.absent());
-
- final ClassifyTableBuilder builder = mock(ClassifyTableBuilder.class);
- getCustomizer().readCurrentAttributes(getClassifyTableId(TABLE_NAME_1), builder, ctx);
-
- verifyClasifyTableRead(builder);
- }
-
- @Test
- public void testGetAllIds() throws ReadFailedException {
- final ClassifyTableIdsReply reply = new ClassifyTableIdsReply();
- reply.ids = new int[] {1, 2};
- 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);
-
- final List<ClassifyTableKey> allIds = getCustomizer().getAllIds(getClassifyTableId(TABLE_NAME_1), ctx);
-
- assertEquals(reply.ids.length, allIds.size());
- assertEquals(TABLE_NAME_1, allIds.get(0).getName());
- assertEquals(TABLE_NAME_2, allIds.get(1).getName());
- }
-} \ No newline at end of file
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
deleted file mode 100644
index 0869986ee..000000000
--- a/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/vppclassifier/ClassifyTableWriterTest.java
+++ /dev/null
@@ -1,181 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco 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.honeycomb.translate.v3po.vppclassifier;
-
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
-import static org.mockito.Matchers.any;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-import io.fd.honeycomb.translate.write.WriteFailedException;
-import io.fd.honeycomb.vpp.test.write.WriterCustomizerTest;
-import io.fd.vpp.jvpp.VppBaseCallException;
-import io.fd.vpp.jvpp.core.dto.ClassifyAddDelTable;
-import io.fd.vpp.jvpp.core.dto.ClassifyAddDelTableReply;
-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;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.classifier.rev161214.PacketHandlingAction;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.classifier.rev161214.VppClassifier;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.classifier.rev161214.VppNode;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.classifier.rev161214.VppNodeName;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.classifier.rev161214.vpp.classifier.ClassifyTable;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.classifier.rev161214.vpp.classifier.ClassifyTableBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.classifier.rev161214.vpp.classifier.ClassifyTableKey;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-
-public class ClassifyTableWriterTest extends WriterCustomizerTest {
-
- private static final int TABLE_INDEX = 123;
- private static final String TABLE_NAME = "table123";
-
- @Mock
- private VppClassifierContextManager classifierContext;
-
- private ClassifyTableWriter customizer;
-
- @Override
- public void setUp() throws Exception {
- customizer = new ClassifyTableWriter(api, classifierContext);
- }
-
- private static ClassifyTable generateClassifyTable(final String name) {
- final ClassifyTableBuilder builder = new ClassifyTableBuilder();
- builder.setName(name);
- builder.setClassifierNode(new VppNodeName("ip4-classifier"));
- builder.setKey(new ClassifyTableKey(name));
- builder.setSkipNVectors(0L);
- builder.setNbuckets(2L);
- builder.setMemorySize(2L << 20);
- builder.setMissNext(new VppNode(PacketHandlingAction.Permit));
- builder.setMask(new HexString("00:00:00:00:00:00:01:02:03:04:05:06:00:00:00:00"));
- return builder.build();
- }
-
- private static InstanceIdentifier<ClassifyTable> getClassifyTableId(final String name) {
- return InstanceIdentifier.create(VppClassifier.class)
- .child(ClassifyTable.class, new ClassifyTableKey(name));
- }
-
- private void whenClassifyAddDelTableThenSuccess() {
- final ClassifyAddDelTableReply reply = new ClassifyAddDelTableReply();
- reply.newTableIndex = TABLE_INDEX;
- doReturn(future(reply)).when(api).classifyAddDelTable(any(ClassifyAddDelTable.class));
- }
-
- private void whenClassifyAddDelTableThenFailure() {
- doReturn(failedFuture()).when(api).classifyAddDelTable(any(ClassifyAddDelTable.class));
- }
-
- private static ClassifyAddDelTable generateClassifyAddDelTable(final byte isAdd) {
- return generateClassifyAddDelTable(isAdd, -1);
- }
-
- private static ClassifyAddDelTable generateClassifyAddDelTable(final byte isAdd, final int tableIndex) {
- final ClassifyAddDelTable request = new ClassifyAddDelTable();
- request.isAdd = isAdd;
- request.tableIndex = tableIndex;
- request.nbuckets = 2;
- request.memorySize = 2 << 20;
- request.skipNVectors = 0;
- request.matchNVectors = 1;
- request.nextTableIndex = ~0;
- request.missNextIndex = ~0;
- request.mask =
- new byte[]{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, (byte) 0x01, (byte) 0x02, (byte) 0x03, (byte) 0x04,
- (byte) 0x05, (byte) 0x06, 0x00, 0x00, 0x00, 0x00};
- return request;
- }
-
- @Test
- public void testCreate() throws Exception {
- final ClassifyTable classifyTable = generateClassifyTable(TABLE_NAME);
- final InstanceIdentifier<ClassifyTable> id = getClassifyTableId(TABLE_NAME);
-
- whenClassifyAddDelTableThenSuccess();
-
- customizer.writeCurrentAttributes(id, classifyTable, writeContext);
-
- verify(api).classifyAddDelTable(generateClassifyAddDelTable((byte) 1));
- verify(classifierContext)
- .addTable(TABLE_INDEX, classifyTable.getName(), classifyTable.getClassifierNode(), mappingContext);
- }
-
- @Test
- public void testCreateFailed() throws Exception {
- final ClassifyTable classifyTable = generateClassifyTable(TABLE_NAME);
- final InstanceIdentifier<ClassifyTable> id = getClassifyTableId(TABLE_NAME);
-
- whenClassifyAddDelTableThenFailure();
-
- try {
- customizer.writeCurrentAttributes(id, classifyTable, writeContext);
- } catch (WriteFailedException e) {
- assertTrue(e.getCause() instanceof VppBaseCallException);
- verify(api).classifyAddDelTable(generateClassifyAddDelTable((byte) 1));
- verify(classifierContext, times(0))
- .addTable(TABLE_INDEX, classifyTable.getName(), classifyTable.getClassifierNode(), mappingContext);
- return;
- }
- fail("WriteFailedException.CreateFailedException was expected");
- }
-
- @Test
- public void testDelete() throws Exception {
- final ClassifyTable classifyTable = generateClassifyTable(TABLE_NAME);
- final InstanceIdentifier<ClassifyTable> id = getClassifyTableId(TABLE_NAME);
-
- when(classifierContext.containsTable(TABLE_NAME, mappingContext)).thenReturn(true);
- when(classifierContext.getTableIndex(TABLE_NAME, mappingContext)).thenReturn(TABLE_INDEX);
- whenClassifyAddDelTableThenSuccess();
-
- customizer.deleteCurrentAttributes(id, classifyTable, writeContext);
-
- verify(api).classifyAddDelTable(generateClassifyAddDelTable((byte) 0, TABLE_INDEX));
- }
-
- @Test
- public void testDeleteFailed() throws Exception {
- final ClassifyTable classifyTable = generateClassifyTable(TABLE_NAME);
- final InstanceIdentifier<ClassifyTable> id = getClassifyTableId(TABLE_NAME);
-
- when(classifierContext.containsTable(TABLE_NAME, mappingContext)).thenReturn(true);
- when(classifierContext.getTableIndex(TABLE_NAME, mappingContext)).thenReturn(TABLE_INDEX);
- whenClassifyAddDelTableThenFailure();
-
- try {
- customizer.deleteCurrentAttributes(id, classifyTable, writeContext);
- } catch (WriteFailedException e) {
- assertTrue(e.getCause() instanceof VppBaseCallException);
- verify(api).classifyAddDelTable(generateClassifyAddDelTable((byte) 0, TABLE_INDEX));
- return;
- }
- fail("WriteFailedException.DeleteFailedException was expected");
-
- customizer.deleteCurrentAttributes(id, classifyTable, writeContext);
- }
-
- @Test(expected = UnsupportedOperationException.class)
- public void testUpdate() throws Exception {
- final ClassifyTable classifyTableBefore = generateClassifyTable(TABLE_NAME);
- final InstanceIdentifier<ClassifyTable> id = getClassifyTableId(TABLE_NAME);
- customizer.updateCurrentAttributes(id, classifyTableBefore, new ClassifyTableBuilder().build(), writeContext);
- }
-} \ No newline at end of file
diff --git a/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/vppclassifier/VppClassifierContextManagerImplTest.java b/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/vppclassifier/VppClassifierContextManagerImplTest.java
deleted file mode 100644
index 667d06b6c..000000000
--- a/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/vppclassifier/VppClassifierContextManagerImplTest.java
+++ /dev/null
@@ -1,163 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco 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.honeycomb.translate.v3po.vppclassifier;
-
-import static io.fd.honeycomb.translate.v3po.vppclassifier.VppClassifierContextManagerImpl.VPP_CLASSIFIER_CONTEXT_IID;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-import static org.mockito.MockitoAnnotations.initMocks;
-
-import com.google.common.base.Optional;
-import io.fd.honeycomb.translate.MappingContext;
-import java.util.Arrays;
-import org.junit.Before;
-import org.junit.Test;
-import org.mockito.Mock;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.classifier.rev161214.VppNodeName;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.classifier.rev160909.VppClassifierContext;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.classifier.rev160909.VppClassifierContextBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.classifier.rev160909.vpp.classifier.context.ClassifyTableContext;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.classifier.rev160909.vpp.classifier.context.ClassifyTableContextBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.classifier.rev160909.vpp.classifier.context.ClassifyTableContextKey;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.classifier.rev160909.vpp.classifier.context.classify.table.context.NodeContext;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.classifier.rev160909.vpp.classifier.context.classify.table.context.NodeContextBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.classifier.rev160909.vpp.classifier.context.classify.table.context.NodeContextKey;
-import org.opendaylight.yangtools.yang.binding.KeyedInstanceIdentifier;
-
-public class VppClassifierContextManagerImplTest {
-
- private static final int TABLE_ID_0 = 0;
- private static final String TABLE_NAME_0 = "table0";
- private static final KeyedInstanceIdentifier<ClassifyTableContext, ClassifyTableContextKey> TABLE_IID_0 =
- VPP_CLASSIFIER_CONTEXT_IID.child(ClassifyTableContext.class, new ClassifyTableContextKey(TABLE_NAME_0));
-
- private static final int TABLE_ID_1 = 1;
- private static final String TABLE_NAME_1 = "table1";
-
- private VppClassifierContextManagerImpl vppClassfierContext;
-
- @Mock
- private MappingContext ctx;
-
- @Before
- public void setUp() throws Exception {
- initMocks(this);
- vppClassfierContext = new VppClassifierContextManagerImpl("classify-table-");
- }
-
- @Test
- public void testAddTable() throws Exception {
- final String classfierNodeName = "node123";
- vppClassfierContext.addTable(TABLE_ID_0, TABLE_NAME_0, new VppNodeName(classfierNodeName), ctx);
- verify(ctx).put(TABLE_IID_0, table(TABLE_ID_0, TABLE_NAME_0, classfierNodeName));
- }
-
- @Test
- public void testContainsTable() throws Exception {
- when(ctx.read(TABLE_IID_0)).thenReturn(Optional.absent());
- assertFalse(vppClassfierContext.containsTable(TABLE_NAME_0, ctx));
- }
-
- @Test
- public void testGetTableIndex() throws Exception {
- when(ctx.read(TABLE_IID_0)).thenReturn(Optional.of(table(TABLE_ID_0, TABLE_NAME_0)));
- assertEquals(TABLE_ID_0, vppClassfierContext.getTableIndex(TABLE_NAME_0, ctx));
- }
-
- @Test
- public void testGetTableName() throws Exception {
- when(ctx.read(VPP_CLASSIFIER_CONTEXT_IID))
- .thenReturn(Optional.of(context(table(TABLE_ID_0, TABLE_NAME_0), table(TABLE_ID_1, TABLE_NAME_1))));
- assertEquals(TABLE_NAME_0, (vppClassfierContext.getTableName(TABLE_ID_0, ctx)));
- }
-
- @Test
- public void testGetTableBaseNode() throws Exception {
- final String classfierNodeName = "node123";
- when(ctx.read(TABLE_IID_0)).thenReturn(Optional.of(table(TABLE_ID_0, TABLE_NAME_0, classfierNodeName)));
- vppClassfierContext.getTableBaseNode(TABLE_NAME_0, ctx);
- assertEquals(Optional.of(classfierNodeName), (vppClassfierContext.getTableBaseNode(TABLE_NAME_0, ctx)));
- }
-
- @Test
- public void testRemoveTable() throws Exception {
- vppClassfierContext.removeTable(TABLE_NAME_0, ctx);
- verify(ctx).delete(TABLE_IID_0);
- }
-
- @Test
- public void testAddNodeName() throws Exception {
- final String nodeName = "node123";
- final int nodeIndex = 1;
-
- vppClassfierContext.addNodeName(TABLE_NAME_0, nodeIndex, nodeName, ctx);
- verify(ctx).put(
- TABLE_IID_0.child(NodeContext.class, new NodeContextKey(nodeName)),
- node(nodeName, nodeIndex)
- );
- }
-
- @Test
- public void testGetNonExistingNodeName() throws Exception {
- when(ctx.read(VPP_CLASSIFIER_CONTEXT_IID)).thenReturn(Optional.of(context(table(TABLE_ID_1, TABLE_NAME_1))));
- assertFalse(vppClassfierContext.getNodeName(TABLE_ID_0, 123, ctx).isPresent());
- }
-
- @Test
- public void testGetNodeNameMissingNodeCtx() throws Exception {
- final ClassifyTableContext tableCtx = table(TABLE_ID_0, TABLE_NAME_0, "aa");
- when(ctx.read(VPP_CLASSIFIER_CONTEXT_IID)).thenReturn(Optional.of(context(tableCtx)));
- when(ctx.read(TABLE_IID_0)).thenReturn(Optional.of(tableCtx));
- assertEquals(Optional.absent(), vppClassfierContext.getNodeName(TABLE_ID_0, 123, ctx));
- }
-
- @Test
- public void testGetNodeName() throws Exception {
- final ClassifyTableContext tableCtx = table(TABLE_ID_0, TABLE_NAME_0, "aa", node("node123", 123));
- when(ctx.read(VPP_CLASSIFIER_CONTEXT_IID)).thenReturn(Optional.of(context(tableCtx)));
- when(ctx.read(TABLE_IID_0)).thenReturn(Optional.of(tableCtx));
- assertEquals(Optional.of("node123"), vppClassfierContext.getNodeName(TABLE_ID_0, 123, ctx));
- }
-
- private VppClassifierContext context(ClassifyTableContext... tables) {
- VppClassifierContextBuilder context = new VppClassifierContextBuilder();
- context.setClassifyTableContext(Arrays.asList(tables));
- return context.build();
- }
-
- private static ClassifyTableContext table(final Integer id, final String name) {
- return table(id, name, null);
- }
-
- private static ClassifyTableContext table(final Integer id, final String name, final String classfierNodeName,
- final NodeContext... nodeContexts) {
- final ClassifyTableContextBuilder builder =
- new ClassifyTableContextBuilder().setIndex(id).setName(name).setClassifierNodeName(classfierNodeName);
-
- if (nodeContexts.length > 0) {
- builder.setNodeContext(Arrays.asList(nodeContexts));
- }
-
- return builder.build();
- }
-
- private NodeContext node(final String nodeName, final int nodeIndex) {
- return new NodeContextBuilder().setName(nodeName).setIndex(nodeIndex).build();
- }
-} \ No newline at end of file