Merge "Cleanup use of Guava Function"
[openflowplugin.git] / openflowplugin-impl / src / test / java / org / opendaylight / openflowplugin / impl / util / FlowUtilTest.java
index 2c3feb93db9ca46c9d623411dedabe8b6f5b1b88..2c6a45b14b59be41974e5b00de6427dee863a8b5 100644 (file)
@@ -1,25 +1,17 @@
 /*
+ * Copyright (c) 2015 Cisco Systems, Inc. and others.  All rights reserved.
  *
- *  * Copyright (c) 2015 Cisco Systems, Inc. and others.  All rights reserved.
- *  *
- *  * This program and the accompanying materials are made available under the
- *  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- *  * and is available at http://www.eclipse.org/legal/epl-v10.html
- *
- *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
 
 package org.opendaylight.openflowplugin.impl.util;
 
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-
-import com.google.common.base.Function;
 import com.google.common.collect.Lists;
 import java.util.Collections;
 import java.util.List;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
+import java.util.function.Function;
 import org.apache.commons.lang3.tuple.Pair;
 import org.junit.Assert;
 import org.junit.Test;
@@ -27,6 +19,7 @@ import org.mockito.Mockito;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowId;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.Table;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.table.Flow;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.transaction.rev150304.SendBarrierOutput;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.FlowRef;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flows.service.rev160314.AddFlowsBatchOutput;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flows.service.rev160314.AddFlowsBatchOutputBuilder;
@@ -44,35 +37,13 @@ import org.opendaylight.yangtools.yang.common.RpcResult;
 import org.opendaylight.yangtools.yang.common.RpcResultBuilder;
 
 public class FlowUtilTest {
-
-    public static final Pattern INDEX_PATTERN = Pattern.compile("^#UF\\$TABLE\\*1-([0-9]+)$");
     public static final NodeId DUMMY_NODE_ID = new NodeId("dummyNodeId");
     public static final FlowId DUMMY_FLOW_ID = new FlowId("dummyFlowId");
     public static final FlowId DUMMY_FLOW_ID_2 = new FlowId("dummyFlowId_2");
     public static final Short DUMMY_TABLE_ID = 1;
 
     @Test
-    public void createAlienFlowIdTest() {
-        final String alienFlowId1 = FlowUtil.createAlienFlowId(DUMMY_TABLE_ID).getValue();
-        final Integer index1 = parseIndex(alienFlowId1);
-        final String alienFlowId2 = FlowUtil.createAlienFlowId(DUMMY_TABLE_ID).getValue();
-        final Integer index2 = parseIndex(alienFlowId2);
-
-        assertNotNull("index1 parsing failed: " + alienFlowId1, index1);
-        assertNotNull("index2 parsing failed: " + alienFlowId2, index2);
-        assertTrue(index1 < index2);
-    }
-
-    private static Integer parseIndex(String alienFlowIdValue) {
-        final Matcher mach = INDEX_PATTERN.matcher(alienFlowIdValue);
-        if (mach.find()) {
-            return Integer.valueOf(mach.group(1));
-        }
-        return null;
-    }
-
-    @Test
-    public void testBuildFlowPath() throws Exception {
+    public void testBuildFlowPath() {
         final InstanceIdentifier<Node> nodePath = InstanceIdentifier
                 .create(Nodes.class)
                 .child(Node.class, new NodeKey(DUMMY_NODE_ID));
@@ -85,7 +56,7 @@ public class FlowUtilTest {
     }
 
     @Test
-    public void testCreateCumulatingFunction() throws Exception {
+    public void testCreateCumulatingFunction() {
         final Function<List<RpcResult<String>>, RpcResult<List<BatchFailedFlowsOutput>>> function =
                 FlowUtil.createCumulatingFunction(Lists.newArrayList(createBatchFlowIdGrouping(DUMMY_FLOW_ID),
                         createBatchFlowIdGrouping(DUMMY_FLOW_ID_2)));
@@ -110,42 +81,43 @@ public class FlowUtilTest {
     }
 
     @Test
-    public void testFLOW_ADD_TRANSFORM__failure() throws Exception {
+    public void testFlowAddTransformFailure() {
         final RpcResult<List<BatchFailedFlowsOutput>> input = createBatchOutcomeWithError();
         checkBatchErrorOutcomeTransformation(FlowUtil.FLOW_ADD_TRANSFORM.apply(input));
     }
 
     @Test
-    public void testFLOW_ADD_TRANSFORM__success() throws Exception {
+    public void testFlowAddTransformSuccess() {
         final RpcResult<List<BatchFailedFlowsOutput>> input = createEmptyBatchOutcome();
         checkBatchSuccessOutcomeTransformation(FlowUtil.FLOW_ADD_TRANSFORM.apply(input));
     }
 
     @Test
-    public void testFLOW_REMOVE_TRANSFORM__failure() throws Exception {
+    public void testFlowRemoveTransformFailure() {
         final RpcResult<List<BatchFailedFlowsOutput>> input = createBatchOutcomeWithError();
         checkBatchErrorOutcomeTransformation(FlowUtil.FLOW_REMOVE_TRANSFORM.apply(input));
     }
 
     @Test
-    public void testFLOW_REMOVE_TRANSFORM__success() throws Exception {
+    public void testFlowRemoveTransformSuccess() {
         final RpcResult<List<BatchFailedFlowsOutput>> input = createEmptyBatchOutcome();
         checkBatchSuccessOutcomeTransformation(FlowUtil.FLOW_REMOVE_TRANSFORM.apply(input));
     }
 
     @Test
-    public void testFLOW_UPDATE_TRANSFORM__failure() throws Exception {
+    public void testFlowUpdateTransformFailure() {
         final RpcResult<List<BatchFailedFlowsOutput>> input = createBatchOutcomeWithError();
         checkBatchErrorOutcomeTransformation(FlowUtil.FLOW_UPDATE_TRANSFORM.apply(input));
     }
 
     @Test
-    public void testFLOW_UPDATE_TRANSFORM__success() throws Exception {
+    public void testFlowUpdateTransformSuccess() {
         final RpcResult<List<BatchFailedFlowsOutput>> input = createEmptyBatchOutcome();
         checkBatchSuccessOutcomeTransformation(FlowUtil.FLOW_UPDATE_TRANSFORM.apply(input));
     }
 
-    private <T extends BatchFlowOutputListGrouping> void checkBatchSuccessOutcomeTransformation(final RpcResult<T> output) {
+    private <T extends BatchFlowOutputListGrouping> void checkBatchSuccessOutcomeTransformation(
+            final RpcResult<T> output) {
         Assert.assertTrue(output.isSuccessful());
         Assert.assertEquals(0, output.getResult().getBatchFailedFlowsOutput().size());
         Assert.assertEquals(0, output.getErrors().size());
@@ -153,7 +125,7 @@ public class FlowUtilTest {
 
     private RpcResult<List<BatchFailedFlowsOutput>> createEmptyBatchOutcome() {
         return RpcResultBuilder
-                .<List<BatchFailedFlowsOutput>>success(Collections.<BatchFailedFlowsOutput>emptyList())
+                .success(Collections.<BatchFailedFlowsOutput>emptyList())
                 .build();
     }
 
@@ -166,7 +138,8 @@ public class FlowUtilTest {
                 .build();
     }
 
-    private <T extends BatchFlowOutputListGrouping> void checkBatchErrorOutcomeTransformation(final RpcResult<T> output) {
+    private <T extends BatchFlowOutputListGrouping> void checkBatchErrorOutcomeTransformation(
+            final RpcResult<T> output) {
         Assert.assertFalse(output.isSuccessful());
         Assert.assertEquals(1, output.getResult().getBatchFailedFlowsOutput().size());
         Assert.assertEquals(DUMMY_FLOW_ID, output.getResult().getBatchFailedFlowsOutput().get(0).getFlowId());
@@ -175,13 +148,14 @@ public class FlowUtilTest {
     }
 
     @Test
-    public void testCreateComposingFunction_success_success() throws Exception {
-        final Function<Pair<RpcResult<AddFlowsBatchOutput>, RpcResult<Void>>, RpcResult<AddFlowsBatchOutput>> compositeFunction =
-                FlowUtil.createComposingFunction();
+    public void testCreateComposingFunction_success_success() {
+        final Function<Pair<RpcResult<AddFlowsBatchOutput>, RpcResult<SendBarrierOutput>>,
+                RpcResult<AddFlowsBatchOutput>> compositeFunction = FlowUtil.createComposingFunction();
 
         final RpcResult<AddFlowsBatchOutput> addFlowBatchOutput = createAddFlowsBatchSuccessOutput();
-        final RpcResult<Void> barrierOutput = RpcResultBuilder.<Void>success().build();
-        final Pair<RpcResult<AddFlowsBatchOutput>, RpcResult<Void>> input = Pair.of(addFlowBatchOutput, barrierOutput);
+        final RpcResult<SendBarrierOutput> barrierOutput = RpcResultBuilder.<SendBarrierOutput>success().build();
+        final Pair<RpcResult<AddFlowsBatchOutput>, RpcResult<SendBarrierOutput>> input
+                = Pair.of(addFlowBatchOutput, barrierOutput);
         final RpcResult<AddFlowsBatchOutput> composite = compositeFunction.apply(input);
 
         Assert.assertTrue(composite.isSuccessful());
@@ -190,13 +164,14 @@ public class FlowUtilTest {
     }
 
     @Test
-    public void testCreateComposingFunction_failure_success() throws Exception {
-        final Function<Pair<RpcResult<AddFlowsBatchOutput>, RpcResult<Void>>, RpcResult<AddFlowsBatchOutput>> compositeFunction =
-                FlowUtil.createComposingFunction();
+    public void testCreateComposingFunction_failure_success() {
+        final Function<Pair<RpcResult<AddFlowsBatchOutput>, RpcResult<SendBarrierOutput>>,
+                RpcResult<AddFlowsBatchOutput>> compositeFunction = FlowUtil.createComposingFunction();
 
         final RpcResult<AddFlowsBatchOutput> addFlowBatchOutput = createAddFlowsBatchFailureOutcome();
-        final RpcResult<Void> barrierOutput = RpcResultBuilder.<Void>success().build();
-        final Pair<RpcResult<AddFlowsBatchOutput>, RpcResult<Void>> input = Pair.of(addFlowBatchOutput, barrierOutput);
+        final RpcResult<SendBarrierOutput> barrierOutput = RpcResultBuilder.<SendBarrierOutput>success().build();
+        final Pair<RpcResult<AddFlowsBatchOutput>, RpcResult<SendBarrierOutput>> input
+                = Pair.of(addFlowBatchOutput, barrierOutput);
         final RpcResult<AddFlowsBatchOutput> composite = compositeFunction.apply(input);
 
         Assert.assertFalse(composite.isSuccessful());
@@ -205,13 +180,14 @@ public class FlowUtilTest {
     }
 
     @Test
-    public void testCreateComposingFunction_success_failure() throws Exception {
-        final Function<Pair<RpcResult<AddFlowsBatchOutput>, RpcResult<Void>>, RpcResult<AddFlowsBatchOutput>> compositeFunction =
-                FlowUtil.createComposingFunction();
+    public void testCreateComposingFunction_success_failure() {
+        final Function<Pair<RpcResult<AddFlowsBatchOutput>, RpcResult<SendBarrierOutput>>,
+                RpcResult<AddFlowsBatchOutput>> compositeFunction = FlowUtil.createComposingFunction();
 
         final RpcResult<AddFlowsBatchOutput> addFlowBatchOutput = createAddFlowsBatchSuccessOutput();
-        final RpcResult<Void> barrierOutput = createBarrierFailureOutcome();
-        final Pair<RpcResult<AddFlowsBatchOutput>, RpcResult<Void>> input = Pair.of(addFlowBatchOutput, barrierOutput);
+        final RpcResult<SendBarrierOutput> barrierOutput = createBarrierFailureOutcome();
+        final Pair<RpcResult<AddFlowsBatchOutput>, RpcResult<SendBarrierOutput>> input
+                = Pair.of(addFlowBatchOutput, barrierOutput);
         final RpcResult<AddFlowsBatchOutput> composite = compositeFunction.apply(input);
 
         Assert.assertFalse(composite.isSuccessful());
@@ -220,13 +196,14 @@ public class FlowUtilTest {
     }
 
     @Test
-    public void testCreateComposingFunction_failure_failure() throws Exception {
-        final Function<Pair<RpcResult<AddFlowsBatchOutput>, RpcResult<Void>>, RpcResult<AddFlowsBatchOutput>> compositeFunction =
-                FlowUtil.createComposingFunction();
+    public void testCreateComposingFunction_failure_failure() {
+        final Function<Pair<RpcResult<AddFlowsBatchOutput>, RpcResult<SendBarrierOutput>>,
+                RpcResult<AddFlowsBatchOutput>> compositeFunction = FlowUtil.createComposingFunction();
 
         final RpcResult<AddFlowsBatchOutput> addFlowBatchOutput = createAddFlowsBatchFailureOutcome();
-        final RpcResult<Void> barrierOutput = createBarrierFailureOutcome();
-        final Pair<RpcResult<AddFlowsBatchOutput>, RpcResult<Void>> input = Pair.of(addFlowBatchOutput, barrierOutput);
+        final RpcResult<SendBarrierOutput> barrierOutput = createBarrierFailureOutcome();
+        final Pair<RpcResult<AddFlowsBatchOutput>, RpcResult<SendBarrierOutput>> input
+                = Pair.of(addFlowBatchOutput, barrierOutput);
         final RpcResult<AddFlowsBatchOutput> composite = compositeFunction.apply(input);
 
         Assert.assertFalse(composite.isSuccessful());
@@ -234,8 +211,8 @@ public class FlowUtilTest {
         Assert.assertEquals(1, composite.getResult().getBatchFailedFlowsOutput().size());
     }
 
-    private RpcResult<Void> createBarrierFailureOutcome() {
-        return RpcResultBuilder.<Void>failed()
+    private RpcResult<SendBarrierOutput> createBarrierFailureOutcome() {
+        return RpcResultBuilder.<SendBarrierOutput>failed()
                 .withError(RpcError.ErrorType.APPLICATION, "ut-barrier-error")
                 .build();
     }
@@ -243,7 +220,7 @@ public class FlowUtilTest {
     private RpcResult<AddFlowsBatchOutput> createAddFlowsBatchSuccessOutput() {
         return RpcResultBuilder
                 .success(new AddFlowsBatchOutputBuilder()
-                        .setBatchFailedFlowsOutput(Collections.<BatchFailedFlowsOutput>emptyList())
+                        .setBatchFailedFlowsOutput(Collections.emptyList())
                         .build())
                 .build();
     }