Add nemo-impl partical test files 49/31049/1
authorsaomenmen <zhangmroy@163.com>
Wed, 9 Dec 2015 08:19:32 +0000 (16:19 +0800)
committersaomenmen <zhangmroy@163.com>
Wed, 9 Dec 2015 08:20:19 +0000 (16:20 +0800)
Change-Id: Ic92f3e34151893bc2553aae19f7c560a272aa050
Signed-off-by: saomenmen <zhangmroy@163.com>
nemo-impl/src/test/java/org/opendaylight/nemo/intent/condition/ConditionDeterminerTest.java [new file with mode: 0644]
nemo-impl/src/test/java/org/opendaylight/nemo/intent/condition/ConditionHandlerImplTest.java [new file with mode: 0644]
nemo-impl/src/test/java/org/opendaylight/nemo/intent/condition/ConditionManagerTest.java [new file with mode: 0644]
nemo-impl/src/test/java/org/opendaylight/nemo/intent/condition/ConditionMonitorTest.java [new file with mode: 0644]

diff --git a/nemo-impl/src/test/java/org/opendaylight/nemo/intent/condition/ConditionDeterminerTest.java b/nemo-impl/src/test/java/org/opendaylight/nemo/intent/condition/ConditionDeterminerTest.java
new file mode 100644 (file)
index 0000000..110dff7
--- /dev/null
@@ -0,0 +1,118 @@
+/*
+ * Copyright (c) 2015 Huawei, 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
+ */
+package org.opendaylight.nemo.intent.condition;
+
+import junit.framework.TestCase;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.operation.rev151010.condition.instance.ConditionSegment;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.operation.rev151010.condition.instance.ConditionSegment.ConditionParameterMatchPattern;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.operation.rev151010.condition.instance.ConditionSegment.PrecursorRelationOperator;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.operation.rev151010.condition.instance.condition.segment.ConditionParameterTargetValue;
+import static org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.operation.rev151010.condition.instance.ConditionSegment.PrecursorRelationOperator.*;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.ConditionParameterName;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.*;
+import static org.mockito.Mockito.*;
+/**
+ * Created by zhangmeng on 2015/12/9.
+ */
+public class ConditionDeterminerTest extends TestCase {
+    private ConditionDeterminer conditionDeterminer;
+    @Before
+    public void setUp() throws Exception {
+        conditionDeterminer = new ConditionDeterminer();
+    }
+
+    @Test
+    public void testIsConditionMet1() throws Exception {
+        boolean result;
+        List<ConditionSegment> conditionSegments = new ArrayList<ConditionSegment>();
+        ConditionSegment conditionSegment = mock(ConditionSegment.class);
+        ConditionSegment conditionSegment1 = mock(ConditionSegment.class);
+        ConditionParameterTargetValue conditionParameterTargetValue = mock(ConditionParameterTargetValue.class);
+        ConditionParameterTargetValue conditionParameterTargetValue1 = mock(ConditionParameterTargetValue.class);
+        ConditionParameterName conditionParameterName = mock(ConditionParameterName.class);
+        ConditionParameterName conditionParameterName1 = mock(ConditionParameterName.class);
+
+        // branch length = 0
+        Assert.assertTrue(conditionSegments.size() == 0);
+        result = ConditionDeterminer.isConditionMet(conditionSegments);
+        Assert.assertEquals(true, result);
+        // branch not 0
+        conditionSegments.add(conditionSegment);
+        conditionSegments.add(conditionSegment1);
+        when(conditionSegment.getPrecursorRelationOperator()).thenReturn(Not);
+        when(conditionSegment1.getPrecursorRelationOperator()).thenReturn(Or);
+        when(conditionSegment.getConditionParameterName()).thenReturn(conditionParameterName);
+        when(conditionSegment1.getConditionParameterName()).thenReturn(conditionParameterName1);
+        when(conditionParameterName.getValue())
+                .thenReturn(new String("test"))//do not get into method "isTimeConditionMet" and return false
+                .thenReturn(new String("time"));//get into method "isTimeConditionMet"
+        when(conditionParameterName1.getValue())
+                .thenReturn(new String("test"))//do not get into method "isTimeConditionMet" and return false
+                .thenReturn(new String("time"));//get into method "isTimeConditionMet"
+
+        result = ConditionDeterminer.isConditionMet(conditionSegments);
+        Assert.assertTrue(result == false);
+        Assert.assertTrue(conditionSegments.get(0) == conditionSegment && conditionSegments.get(1) == conditionSegment1);
+        verify(conditionSegment, times(2)).getPrecursorRelationOperator();
+        verify(conditionSegment1, times(2)).getPrecursorRelationOperator();
+
+        // test time
+        when(conditionSegment.getConditionParameterMatchPattern())
+                .thenReturn(ConditionSegment.ConditionParameterMatchPattern.GreaterThan
+                )//case GreaterThan  return false
+                .thenReturn(ConditionSegment.ConditionParameterMatchPattern.NotGreaterThan
+                )//case NotGreaterThan return false
+                .thenReturn(ConditionSegment.ConditionParameterMatchPattern.LessThan
+                );//case LessThan: return false
+        when(conditionSegment.getConditionParameterTargetValue()).thenReturn(conditionParameterTargetValue);
+        when(conditionParameterTargetValue.getStringValue())
+                .thenReturn(new String(""))
+                .thenReturn(new String(""))
+                .thenReturn(new String(""));
+        when(conditionSegment1.getConditionParameterMatchPattern())
+                .thenReturn(ConditionSegment.ConditionParameterMatchPattern.NotLessThan
+                )//case NotLessThan  return can be not true
+                .thenReturn(ConditionSegment.ConditionParameterMatchPattern.Between
+                )//case Between return can be not true
+                .thenReturn(ConditionSegment.ConditionParameterMatchPattern.GreaterThan
+                );//case GreaterThan  return false
+        when(conditionSegment1.getConditionParameterTargetValue()).thenReturn(conditionParameterTargetValue1);
+        when(conditionParameterTargetValue1.getStringValue())
+                .thenReturn(new String("2011-11-11 11:11:11"))
+                .thenReturn(new String("1991-01-31 11:11:11"))
+                .thenReturn(new String(""));
+
+        result = ConditionDeterminer.isConditionMet(conditionSegments);
+        Assert.assertTrue(result == true);
+        result = ConditionDeterminer.isConditionMet(conditionSegments);
+        Assert.assertTrue(result == false);
+        result = ConditionDeterminer.isConditionMet(conditionSegments);
+        Assert.assertTrue(result == false);
+        verify(conditionSegment, times(5)).getPrecursorRelationOperator();
+        verify(conditionSegment1, times(5)).getPrecursorRelationOperator();
+    }
+
+    @Test
+    public void testMain() throws Exception {
+        ConditionDeterminer.main(new String[]{"1","2"});
+    }
+
+    @Test
+    public void testSortSegments() throws Exception {
+        final List<ConditionSegment> conditionSegments;
+    }
+}
\ No newline at end of file
diff --git a/nemo-impl/src/test/java/org/opendaylight/nemo/intent/condition/ConditionHandlerImplTest.java b/nemo-impl/src/test/java/org/opendaylight/nemo/intent/condition/ConditionHandlerImplTest.java
new file mode 100644 (file)
index 0000000..938705f
--- /dev/null
@@ -0,0 +1,66 @@
+/*
+ * Copyright (c) 2015 Huawei, 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
+ */
+package org.opendaylight.nemo.intent.condition;
+
+import junit.framework.TestCase;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+import org.opendaylight.nemo.intent.IntentResolver;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.UserId;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.operations.Operation;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.OperationId;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.operation.rev151010.condition.instance.ConditionSegment;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Timer;
+import java.util.concurrent.ConcurrentHashMap;
+
+import static org.junit.Assert.*;
+import static org.mockito.Mockito.*;
+/**
+ * Created by zhangmeng on 2015/12/9.
+ */
+public class ConditionHandlerImplTest extends TestCase {
+    private ConditionHandlerImpl conditionHandler;
+    private IntentResolver intentResolver;
+    private UserId userId;
+    @Before
+    public void setUp() throws Exception {
+        userId = mock(UserId.class);
+        intentResolver = mock(IntentResolver.class);
+
+        conditionHandler = new ConditionHandlerImpl(intentResolver,userId);
+    }
+
+    @Test
+    public void testHandleCondition() throws Exception {
+        Operation operation = mock(Operation.class);
+        OperationId operationId = mock(OperationId.class);
+         List<ConditionSegment> conditionSegments = new ArrayList<ConditionSegment>();
+
+        when(operation.getOperationId()).thenReturn(operationId);
+        when(operationId.getValue()).thenReturn(new String("test"));
+        when(operation.getConditionSegment()).thenReturn(conditionSegments);
+
+        conditionHandler.handleCondition(operation);
+    }
+
+    @Test
+    public void testClearCondition() throws Exception {
+        conditionHandler.clearCondition();
+    }
+
+    @Test
+    public void testToString() throws Exception {
+        String test = conditionHandler.toString();
+        Assert.assertTrue(! test.equals(null));
+    }
+}
\ No newline at end of file
diff --git a/nemo-impl/src/test/java/org/opendaylight/nemo/intent/condition/ConditionManagerTest.java b/nemo-impl/src/test/java/org/opendaylight/nemo/intent/condition/ConditionManagerTest.java
new file mode 100644 (file)
index 0000000..e8e5b9b
--- /dev/null
@@ -0,0 +1,55 @@
+/*
+ * Copyright (c) 2015 Huawei, 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
+ */
+package org.opendaylight.nemo.intent.condition;
+
+import junit.framework.TestCase;
+import org.junit.Before;
+import org.junit.Test;
+import org.opendaylight.nemo.intent.IntentResolver;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.UserId;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.operations.Operation;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.OperationId;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.operation.rev151010.condition.instance.ConditionSegment;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+import static org.junit.Assert.*;
+import static org.mockito.Mockito.*;
+/**
+ * Created by zhangmeng on 2015/12/9.
+ */
+public class ConditionManagerTest extends TestCase {
+    private IntentResolver intentResolver;
+    private ConditionManager conditionManager;
+    @Before
+    public void setUp() throws Exception {
+        intentResolver = mock(IntentResolver.class);
+
+        conditionManager = new ConditionManager(intentResolver);
+    }
+
+    @Test
+    public void testHandleOperation() throws Exception {
+        UserId userId = mock(UserId.class);
+        Operation operation = mock(Operation.class);
+        OperationId operationId = mock(OperationId.class);
+        List<ConditionSegment> conditionSegments = new ArrayList<ConditionSegment>();
+
+        when(operation.getOperationId()).thenReturn(operationId);
+        when(operationId.getValue()).thenReturn(new String("test"));
+        when(operation.getConditionSegment()).thenReturn(conditionSegments);
+        conditionManager.handleOperation(userId,operation);
+    }
+
+    @Test
+    public void testClear() throws Exception {
+        UserId userId = mock(UserId.class);
+        conditionManager.clear(userId);
+    }
+}
\ No newline at end of file
diff --git a/nemo-impl/src/test/java/org/opendaylight/nemo/intent/condition/ConditionMonitorTest.java b/nemo-impl/src/test/java/org/opendaylight/nemo/intent/condition/ConditionMonitorTest.java
new file mode 100644 (file)
index 0000000..7fcf7b0
--- /dev/null
@@ -0,0 +1,71 @@
+/*
+ * Copyright (c) 2015 Huawei, 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
+ */
+package org.opendaylight.nemo.intent.condition;
+
+import junit.framework.TestCase;
+import org.junit.Before;
+import org.junit.Test;
+import org.opendaylight.nemo.intent.IntentResolver;
+
+import java.lang.reflect.Field;
+import java.util.ArrayList;
+import java.util.List;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.ConditionParameterName;
+
+import static org.junit.Assert.*;
+import org.opendaylight.nemo.intent.IntentResolver;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.UserId;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.operation.rev151010.condition.instance.ConditionSegment;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.operation.rev151010.condition.instance.ConditionSegment.ConditionParameterMatchPattern;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.operation.rev151010.condition.instance.ConditionSegment.PrecursorRelationOperator;
+
+import java.util.List;
+import java.util.TimerTask;
+import static org.mockito.Mockito.*;
+/**
+ * Created by zhangmeng on 2015/12/9.
+ */
+public class ConditionMonitorTest extends TestCase {
+    private IntentResolver intentResolver;
+    private UserId userId;
+    private List<ConditionSegment> conditionSegments;
+    private ConditionMonitor conditionMonitor;
+    @Before
+    public void setUp() throws Exception {
+        intentResolver = mock(IntentResolver.class);
+        userId = mock(UserId.class);
+        conditionSegments = new ArrayList<ConditionSegment>();
+
+        conditionMonitor = new ConditionMonitor(intentResolver,userId,conditionSegments);
+    }
+
+    @Test
+    public void testRun() throws Exception {
+        Class<ConditionMonitor> class1 = ConditionMonitor.class;
+        Field field = class1.getDeclaredField("conditionSegments");
+        field.setAccessible(true);
+        ConditionSegment conditionSegment = mock(ConditionSegment.class);
+        ConditionParameterName conditionParameterName = mock(ConditionParameterName.class);
+        //init
+        conditionMonitor.run();
+        System.out.println(field.get(conditionMonitor));
+
+        //change data
+        conditionSegments.add(conditionSegment);
+        field.set(conditionMonitor, conditionSegments);
+
+        // create conditions
+        when(conditionSegment.getPrecursorRelationOperator()).thenReturn(ConditionSegment.PrecursorRelationOperator.Not);
+        when(conditionSegment.getConditionParameterName()).thenReturn(conditionParameterName);
+        when(conditionParameterName.getValue()).thenReturn(new String("test"));//do not get into method "isTimeConditionMet" and return false
+        // test changed
+        conditionMonitor.run();
+        System.out.println(field.get(conditionMonitor));
+
+    }
+}
\ No newline at end of file