IDs for MatchAction objects using block allocation
Modified MatchActionId and MatchActionOperationsId to
use longs as IDs and to use ID block allocation to
create them.
Change-Id: I757b353a94a498f624df345cbc16975714db15b3
diff --git a/src/test/java/net/onrc/onos/core/matchaction/MatchActionIdGeneratorTest.java b/src/test/java/net/onrc/onos/core/matchaction/MatchActionIdGeneratorTest.java
new file mode 100644
index 0000000..cb4ed35
--- /dev/null
+++ b/src/test/java/net/onrc/onos/core/matchaction/MatchActionIdGeneratorTest.java
@@ -0,0 +1,47 @@
+package net.onrc.onos.core.matchaction;
+
+import net.onrc.onos.core.util.IdBlock;
+import net.onrc.onos.core.util.IdBlockAllocator;
+import org.junit.Before;
+import org.junit.Test;
+
+import static org.easymock.EasyMock.createMock;
+import static org.easymock.EasyMock.expect;
+import static org.easymock.EasyMock.replay;
+import static org.hamcrest.Matchers.is;
+import static org.junit.Assert.assertThat;
+
+/**
+ * Tests MatchActionIdGeneratorWithIdBlockAllocator.
+ */
+public class MatchActionIdGeneratorTest {
+ private IdBlockAllocator allocator;
+
+ @Before
+ public void setUp() {
+ allocator = createMock(IdBlockAllocator.class);
+
+ }
+
+ /**
+ * Tests generated MatchActionId sequences using two {@link net.onrc.onos.core.util.IdBlock blocks}.
+ */
+ @Test
+ public void testIds() {
+ expect(allocator.allocateUniqueIdBlock())
+ .andReturn(new IdBlock(0, 3))
+ .andReturn(new IdBlock(4, 3));
+
+ replay(allocator);
+ final MatchActionIdGeneratorWithIdBlockAllocator matchActionIdGenerator =
+ new MatchActionIdGeneratorWithIdBlockAllocator(allocator);
+
+ assertThat(matchActionIdGenerator.getNewId(), is(new MatchActionId(0L)));
+ assertThat(matchActionIdGenerator.getNewId(), is(new MatchActionId(1L)));
+ assertThat(matchActionIdGenerator.getNewId(), is(new MatchActionId(2L)));
+
+ assertThat(matchActionIdGenerator.getNewId(), is(new MatchActionId(4L)));
+ assertThat(matchActionIdGenerator.getNewId(), is(new MatchActionId(5L)));
+ assertThat(matchActionIdGenerator.getNewId(), is(new MatchActionId(6L)));
+ }
+}
diff --git a/src/test/java/net/onrc/onos/core/matchaction/MatchActionModuleTest.java b/src/test/java/net/onrc/onos/core/matchaction/MatchActionModuleTest.java
index 0a4e8d3..37fb579 100644
--- a/src/test/java/net/onrc/onos/core/matchaction/MatchActionModuleTest.java
+++ b/src/test/java/net/onrc/onos/core/matchaction/MatchActionModuleTest.java
@@ -33,19 +33,20 @@
operationsIteration <= iterations;
operationsIteration++) {
final MatchActionOperationsId id =
- MatchActionOperationsId.createNewOperationsId();
+ new MatchActionOperationsId(1L);
assertThat(id, is(notNullValue()));
final MatchActionOperations operations =
- MatchActionOperations.createMatchActionsOperations(id);
+ new MatchActionOperations(id);
assertThat(operations, is(notNullValue()));
for (int entriesIteration = 1;
entriesIteration <= iterations;
entriesIteration++) {
- final String entryId = "MA" +
- Integer.toString(operationsIteration) +
- Integer.toString(entriesIteration);
+ final MatchActionId entryId =
+ new MatchActionId(
+ (operationsIteration * 10) +
+ entriesIteration);
final MatchAction matchAction =
new MatchAction(entryId, null, null, null);
final MatchActionOperationEntry entry =
@@ -74,7 +75,7 @@
// Make sure that the returned list cannot be modified
Throwable errorThrown = null;
try {
- matchActions.add(new MatchAction("", null, null, null));
+ matchActions.add(new MatchAction(new MatchActionId(1L), null, null, null));
} catch (UnsupportedOperationException e) {
errorThrown = e;
}
@@ -90,9 +91,9 @@
// Create two MatchAction objects using the same ID
final MatchAction matchAction =
- new MatchAction("ID", null, null, null);
+ new MatchAction(new MatchActionId(111L), null, null, null);
final MatchAction duplicateMatchAction =
- new MatchAction("ID", null, null, null);
+ new MatchAction(new MatchActionId(111L), null, null, null);
// create Operation Entries for the two MatchAction objects
final MatchActionOperationEntry entry =
@@ -104,10 +105,10 @@
// Create an Operations object to execute the first MatchAction
final MatchActionOperationsId id =
- MatchActionOperationsId.createNewOperationsId();
+ new MatchActionOperationsId(11L);
assertThat(id, is(notNullValue()));
final MatchActionOperations operations =
- MatchActionOperations.createMatchActionsOperations(id);
+ new MatchActionOperations(id);
operations.addOperation(entry);
// Create a module to use to execute the Operations.
@@ -120,10 +121,10 @@
// Now add the duplicate entry. This should fail.
final MatchActionOperationsId idForDuplicate =
- MatchActionOperationsId.createNewOperationsId();
+ new MatchActionOperationsId(22L);
assertThat(idForDuplicate, is(notNullValue()));
final MatchActionOperations operationsForDuplicate =
- MatchActionOperations.createMatchActionsOperations(idForDuplicate);
+ new MatchActionOperations(idForDuplicate);
operationsForDuplicate.addOperation(duplicateEntry);
final boolean resultForDuplicate =
diff --git a/src/test/java/net/onrc/onos/core/matchaction/MatchActionOperationsIdGeneratorTest.java b/src/test/java/net/onrc/onos/core/matchaction/MatchActionOperationsIdGeneratorTest.java
new file mode 100644
index 0000000..e95f1df
--- /dev/null
+++ b/src/test/java/net/onrc/onos/core/matchaction/MatchActionOperationsIdGeneratorTest.java
@@ -0,0 +1,49 @@
+package net.onrc.onos.core.matchaction;
+
+import net.onrc.onos.core.util.IdBlock;
+import net.onrc.onos.core.util.IdBlockAllocator;
+import org.junit.Before;
+import org.junit.Test;
+
+import static org.easymock.EasyMock.createMock;
+import static org.easymock.EasyMock.expect;
+import static org.easymock.EasyMock.replay;
+import static org.hamcrest.Matchers.is;
+import static org.junit.Assert.assertThat;
+
+/**
+ * Tests MatchActionOperationsIdGeneratorWithIdBlockAllocator.
+ */
+public class MatchActionOperationsIdGeneratorTest {
+
+ private IdBlockAllocator allocator;
+
+ @Before
+ public void setUp() {
+ allocator = createMock(IdBlockAllocator.class);
+
+ }
+
+ /**
+ * Tests generated MatchActionOperationsId sequences using two {@link net.onrc.onos.core.util.IdBlock blocks}.
+ */
+ @Test
+ public void testIds() {
+ expect(allocator.allocateUniqueIdBlock())
+ .andReturn(new IdBlock(0, 3))
+ .andReturn(new IdBlock(4, 3));
+
+ replay(allocator);
+ final MatchActionOperationsIdGeneratorWithIdBlockAllocator generator =
+ new MatchActionOperationsIdGeneratorWithIdBlockAllocator(allocator);
+
+ assertThat(generator.getNewId(), is(new MatchActionOperationsId(0L)));
+ assertThat(generator.getNewId(), is(new MatchActionOperationsId(1L)));
+ assertThat(generator.getNewId(), is(new MatchActionOperationsId(2L)));
+
+ assertThat(generator.getNewId(), is(new MatchActionOperationsId(4L)));
+ assertThat(generator.getNewId(), is(new MatchActionOperationsId(5L)));
+ assertThat(generator.getNewId(), is(new MatchActionOperationsId(6L)));
+ }
+}
+
diff --git a/src/test/java/net/onrc/onos/core/matchaction/MatchActionOperationsTest.java b/src/test/java/net/onrc/onos/core/matchaction/MatchActionOperationsTest.java
index fd96de4..b01f1c8 100644
--- a/src/test/java/net/onrc/onos/core/matchaction/MatchActionOperationsTest.java
+++ b/src/test/java/net/onrc/onos/core/matchaction/MatchActionOperationsTest.java
@@ -21,16 +21,16 @@
@Test
public void testMatchActionoperationsCreate() {
final MatchActionOperationsId id1 =
- MatchActionOperationsId.createNewOperationsId();
+ new MatchActionOperationsId(1L);
final MatchActionOperations operations1 =
- MatchActionOperations.createMatchActionsOperations(id1);
+ new MatchActionOperations(id1);
assertThat(id1, is(notNullValue()));
assertThat(id1, is(equalTo(operations1.getOperationsId())));
final MatchActionOperationsId id2 =
- MatchActionOperationsId.createNewOperationsId();
+ new MatchActionOperationsId(2L);
final MatchActionOperations operations2 =
- MatchActionOperations.createMatchActionsOperations(id2);
+ new MatchActionOperations(id2);
assertThat(id2, is(notNullValue()));
assertThat(id2, is(equalTo(operations2.getOperationsId())));
@@ -45,11 +45,11 @@
@Test
public void testMatchActionOperationsIdEquals() {
final MatchActionOperationsId id1 =
- MatchActionOperationsId.createNewOperationsId();
+ new MatchActionOperationsId(1L);
final MatchActionOperationsId id2 =
- MatchActionOperationsId.createNewOperationsId();
+ new MatchActionOperationsId(2L);
final MatchActionOperationsId id1Copy =
- MatchActionOperationsId.createNewOperationsId();
+ new MatchActionOperationsId(1L);
// Check that null does not match
@@ -73,7 +73,7 @@
@Test
public void testMatchActionOperationsIdHashCode() {
final MatchActionOperationsId id1 =
- MatchActionOperationsId.createNewOperationsId();
- assertThat(id1.hashCode(), is(equalTo(id1.getId().hashCode())));
+ new MatchActionOperationsId(22L);
+ assertThat(id1.hashCode(), is(equalTo(22)));
}
}
diff --git a/src/test/java/net/onrc/onos/core/matchaction/MatchActionTest.java b/src/test/java/net/onrc/onos/core/matchaction/MatchActionTest.java
index cb32096..2684f19 100644
--- a/src/test/java/net/onrc/onos/core/matchaction/MatchActionTest.java
+++ b/src/test/java/net/onrc/onos/core/matchaction/MatchActionTest.java
@@ -22,7 +22,7 @@
builder.setDstTcpPort((short) 80);
List<Action> actions = new LinkedList<Action>();
actions.add(new ModifyDstMacAction(MACAddress.valueOf("00:01:02:03:04:05")));
- MatchAction ma = new MatchAction("1", port, builder.build(), actions);
+ MatchAction ma = new MatchAction(new MatchActionId(1L), port, builder.build(), actions);
assertEquals(actions, ma.getActions());
assertEquals("1", ma.getId().toString());
diff --git a/src/test/java/net/onrc/onos/core/matchaction/TestOperationsCreation.java b/src/test/java/net/onrc/onos/core/matchaction/TestOperationsCreation.java
index fc33f14..2278949 100644
--- a/src/test/java/net/onrc/onos/core/matchaction/TestOperationsCreation.java
+++ b/src/test/java/net/onrc/onos/core/matchaction/TestOperationsCreation.java
@@ -23,12 +23,13 @@
public void testOperationsCreation() {
// Create the MatchActionOperations
final MatchActionOperationsId operationsId =
- MatchActionOperationsId.createNewOperationsId();
+ new MatchActionOperationsId(1L);
final MatchActionOperations operations =
- MatchActionOperations.createMatchActionsOperations(operationsId);
+ new MatchActionOperations(operationsId);
// Create one MatchActionEntry and add it to the Operations
- final String matchActionId1 = "MA1";
+
+ final MatchActionId matchActionId1 = new MatchActionId(1L);
final MatchAction action1 = new MatchAction(matchActionId1, null, null, null);
final MatchActionOperationEntry entry1 =
@@ -47,7 +48,8 @@
assertThat(loadedEntry1, is(notNullValue()));
final MatchAction loadedAction1 = loadedEntry1.getTarget();
- assertThat(loadedAction1.getId().toString(), is(equalTo(matchActionId1)));
+ assertThat(loadedAction1.getId().toString(),
+ is(equalTo(matchActionId1.toString())));
final MatchActionOperations.Operator loadedOperator1 = loadedEntry1.getOperator();
assertThat(loadedOperator1, is(equalTo(MatchActionOperations.Operator.ADD)));