<jacoco.version>0.7.2.201409121644</jacoco.version>
<sonar.jacoco.reportPath>target/code-coverage/jacoco.exec</sonar.jacoco.reportPath>
<sonar.jacoco.itReportPath>target/code-coverage/jacoco-it.exec</sonar.jacoco.itReportPath>
+ <powermock.version>1.4.10</powermock.version>
</properties>
<dependencies>
<artifactId>junit</artifactId>
</dependency>
<dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-simple</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.jettison</groupId>
+ <artifactId>jettison</artifactId>
+ </dependency>
+ <dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-all</artifactId>
<scope>test</scope>
</dependency>
<dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-simple</artifactId>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.powermock</groupId>
+ <artifactId>powermock-module-junit4</artifactId>
+ <version>${powermock.version}</version>
<scope>test</scope>
</dependency>
<dependency>
- <groupId>org.codehaus.jettison</groupId>
- <artifactId>jettison</artifactId>
+ <groupId>org.powermock</groupId>
+ <artifactId>powermock-api-mockito</artifactId>
+ <version>${powermock.version}</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.powermock</groupId>
+ <artifactId>powermock-api-mockito</artifactId>
+ <version>${powermock.version}</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-simple</artifactId>
+ <scope>test</scope>
</dependency>
</dependencies>
-/*\r
- * Copyright (c) 2015 Huawei, Inc. and others. All rights reserved.\r
- *\r
- * This program and the accompanying materials are made available under the\r
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,\r
- * and is available at http://www.eclipse.org/legal/epl-v10.html\r
- */\r
-package org.opendaylight.nemo.user.vnspacemanager.syntaxcheck;\r
-\r
-import static org.mockito.Mockito.mock;\r
-import static org.mockito.Mockito.verify;\r
-import junit.framework.TestCase;\r
-\r
-import org.junit.Assert;\r
-import org.junit.Before;\r
-import org.junit.Test;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.objects.Connection;\r
-\r
-/**\r
- * Created by Thomas Liu on 2015/11/11.\r
- */\r
-public class ConnectionDefinitionCheckTest extends TestCase {\r
-\r
- private ConnectionDefinitionCheck connectionDefinitionCheckTest;\r
- private Connection connection;\r
- @Before\r
- public void setUp() {\r
- connectionDefinitionCheckTest = mock(ConnectionDefinitionCheck.class);\r
- connection = mock(Connection.class);\r
-\r
- }\r
- @Test\r
- public void testCheckConnectionDefinition() {\r
- connection.getProperty();\r
- connectionDefinitionCheckTest.CheckConnectionDefinition(connection);\r
- Assert.assertNotNull(connectionDefinitionCheckTest);\r
- verify(connectionDefinitionCheckTest).CheckConnectionDefinition(connection);\r
-\r
-\r
- }\r
+/*
+ * 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.user.vnspacemanager.syntaxcheck;
+
+import org.junit.runner.RunWith;
+import static org.powermock.api.mockito.PowerMockito.verifyPrivate;
+import static org.powermock.api.mockito.PowerMockito.doNothing;
+import static org.powermock.api.mockito.PowerMockito.spy;
+import org.powermock.core.classloader.annotations.PrepareForTest;
+import org.powermock.modules.junit4.PowerMockRunner;
+
+import junit.framework.TestCase;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+import org.opendaylight.controller.md.sal.binding.api.DataBroker;
+import org.opendaylight.nemo.user.tenantmanager.TenantManage;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.PropertyName;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.objects.Connection;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.ConnectionDefinitions;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.connection.definitions.ConnectionDefinition;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.connection.instance.Property;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.property.definitions.PropertyDefinition;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.property.instance.PropertyValues;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.property.definitions.PropertyDefinition.PropertyValueType;
+import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
+import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;
+import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
+import org.opendaylight.yangtools.yang.common.RpcResult;
+import org.opendaylight.yangtools.yang.common.RpcResultBuilder;
+import org.opendaylight.yangtools.yang.common.RpcError.ErrorType;
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import com.google.common.base.Optional;
+import com.google.common.base.Function;
+import com.google.common.util.concurrent.CheckedFuture;
+import com.google.common.util.concurrent.FutureCallback;
+import com.google.common.util.concurrent.Futures;
+import com.google.common.util.concurrent.ListenableFuture;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.*;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.ListIterator;
+
+import java.lang.reflect.Method;
+import static org.mockito.Mockito.*;
+
+@RunWith(PowerMockRunner.class)
+@PrepareForTest(ConnectionDefinitionCheck.class)
+public class ConnectionDefinitionCheckTest {
+ private ConnectionDefinitionCheck connectionDefinitionCheck;
+ private DataBroker dataBroker;
+ private ConnectionDefinition connectionDefinition;
+ private List<ConnectionDefinition> connectionDefinitionList;
+ private Connection connection;
+ private List<Property> connectionProperty;
+ private List<PropertyDefinition> propertyDefinitionList;
+ private Property property;
+ private PropertyDefinition propertyDefinition;
+
+ // private static final Logger LOG;
+ @org.junit.Before
+ public void setUp() throws Exception {
+ ConnectionDefinition connectionDefinition = mock(ConnectionDefinition.class);
+ connectionDefinitionList=new ArrayList<ConnectionDefinition>(3);
+ property = mock(Property.class);
+ propertyDefinition = mock(PropertyDefinition.class);
+ connectionProperty = new ArrayList<Property>(3);
+ propertyDefinitionList = new ArrayList<PropertyDefinition>(3);
+ connectionDefinitionList.add(connectionDefinition);
+ connection = mock(Connection.class);
+ // LOG = mock(Logger.class);
+ dataBroker = mock(DataBroker.class);
+ connectionDefinitionCheck =new ConnectionDefinitionCheck(dataBroker);
+ }
+
+ @org.junit.Test
+ public void testcheckConnectionDefinition() throws Exception {
+ CheckedFuture connectiondefinitionFuture = mock(CheckedFuture.class);
+ ReadOnlyTransaction readOnlyTransaction = mock(ReadOnlyTransaction.class);
+ when(dataBroker.newReadOnlyTransaction()).thenReturn(readOnlyTransaction);
+ when(readOnlyTransaction.read(any(LogicalDatastoreType.class), any(InstanceIdentifier.class))).thenReturn(connectiondefinitionFuture);
+
+ //branch connectionDefinitionList null
+ Assert.assertEquals(connectionDefinitionCheck.CheckConnectionDefinition(connection),"This type of connection has not been defined.");
+
+ //use reflact to test private CheckProperty
+ Method testCheckProperty = connectionDefinitionCheck.getClass().getDeclaredMethod("CheckProperty",List.class,List.class);
+ testCheckProperty.setAccessible(true);
+ //branch1 connectionProperty null,propertyDefinitionList null
+ Assert.assertNull(testCheckProperty.invoke(connectionDefinitionCheck,connectionProperty,propertyDefinitionList));
+ //branch2 property.getPropertyName() not equals(propertyDefinition.getPropertyName())
+ connectionProperty.add(property);
+ propertyDefinitionList.add(propertyDefinition);
+ PropertyName propertyName1 = mock(PropertyName.class);
+ PropertyName propertyName2 = mock(PropertyName.class);
+ when(property.getPropertyName()).thenReturn(propertyName1);
+ when(propertyDefinition.getPropertyName()).thenReturn(propertyName2);
+ Assert.assertEquals(testCheckProperty.invoke(connectionDefinitionCheck,connectionProperty,propertyDefinitionList),"This type of property" + property.getPropertyName().toString() + " has not been defined.");
+ //branch3 property.getPropertyName()equals(propertyDefinition.getPropertyName()),but can not mock PropertyValueType
+ when(property.getPropertyName()).thenReturn(propertyName1);
+ PropertyName propertyName3 = propertyName1;
+ when(propertyDefinition.getPropertyName()).thenReturn(propertyName3);
+ PropertyValues propertyValues = mock(PropertyValues.class);
+ when(property.getPropertyValues()).thenReturn(propertyValues);
+ Assert.assertNotNull(property.getPropertyValues());
+ Assert.assertNull(propertyDefinition.getPropertyValueType());
+
+ //dataBroker test
+ verify(dataBroker).newReadOnlyTransaction();
+ verify(readOnlyTransaction).read(any(LogicalDatastoreType.class), any(InstanceIdentifier.class));
+ verifyPrivate(connectionDefinitionCheck).invoke("fetchConnectionDefinitionList");
+
+ }
}
\ No newline at end of file
*/\r
package org.opendaylight.nemo.user.vnspacemanager.syntaxcheck;\r
\r
-import static org.mockito.Mockito.mock;\r
-import static org.mockito.Mockito.verify;\r
-import junit.framework.TestCase;\r
+import org.junit.runner.RunWith;\r
+import static org.powermock.api.mockito.PowerMockito.verifyPrivate;\r
+import static org.powermock.api.mockito.PowerMockito.doNothing;\r
+import static org.powermock.api.mockito.PowerMockito.spy;\r
+import org.powermock.core.classloader.annotations.PrepareForTest;\r
+import org.powermock.modules.junit4.PowerMockRunner;\r
\r
+import junit.framework.TestCase;\r
import org.junit.Assert;\r
import org.junit.Before;\r
import org.junit.Test;\r
+\r
+import static org.junit.Assert.*;\r
+import org.opendaylight.controller.md.sal.binding.api.DataBroker;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.objects.Flow;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.FlowPropertyDefinitions;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.MatchItemDefinitions;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.flow.instance.MatchItem;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.match.item.definitions.MatchItemDefinition;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.match.item.instance.MatchItemValue;\r
+import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;\r
+import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;\r
+import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;\r
+import org.opendaylight.yangtools.yang.common.RpcResult;\r
+import org.opendaylight.yangtools.yang.common.RpcResultBuilder;\r
+import org.opendaylight.yangtools.yang.common.RpcError.ErrorType;\r
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;\r
+import com.google.common.base.Optional;\r
+import com.google.common.base.Function;\r
+import com.google.common.util.concurrent.CheckedFuture;\r
+import com.google.common.util.concurrent.FutureCallback;\r
+import com.google.common.util.concurrent.Futures;\r
+import com.google.common.util.concurrent.ListenableFuture;\r
\r
-/**\r
- * Created by Thomas Liu on 2015/11/11.\r
- */\r
-public class FlowDefinitionCheckTest extends TestCase {\r
+import org.slf4j.Logger;\r
+import org.slf4j.LoggerFactory;\r
+import java.util.List;\r
\r
- private FlowDefinitionCheck flowDefinitionCheckTest;\r
- private Flow flow;\r
- @Before\r
- public void setUp() throws Exception {\r
- flowDefinitionCheckTest = mock(FlowDefinitionCheck.class);\r
- flow = mock(Flow.class);\r
- }\r
+import java.util.Collection;\r
+import java.util.Iterator;\r
+import java.util.LinkedList;\r
+import java.util.List;\r
+import java.util.ListIterator;\r
\r
- @Test\r
- public void testCheckDefinition() throws Exception {\r
- flowDefinitionCheckTest.CheckDefinition(flow);\r
- Assert.assertNotNull(flowDefinitionCheckTest);\r
- verify(flowDefinitionCheckTest).CheckDefinition(flow);\r
\r
+import static org.mockito.Mockito.*;\r
+\r
+@RunWith(PowerMockRunner.class) \r
+@PrepareForTest(ConnectionDefinitionCheck.class) \r
+public class FlowDefinitionCheckTest{\r
+ private FlowDefinitionCheck flowDefinitionCheck;\r
+ private DataBroker dataBroker;\r
+ private List<MatchItemDefinition> matchItemDefinitionList; \r
+ private Flow flow;\r
+ // private static final Logger LOG;\r
+ @org.junit.Before\r
+ public void setUp() throws Exception {\r
+ matchItemDefinitionList = new LinkedList<MatchItemDefinition>();\r
+ // LOG = mock(Logger.class);\r
+\r
+ dataBroker = mock(DataBroker.class);\r
+ flow = mock(Flow.class);\r
+ flowDefinitionCheck = new FlowDefinitionCheck(dataBroker);\r
}\r
+ @org.junit.Test\r
+ public void testcheckConnectionDefinition() throws Exception {\r
+ CheckedFuture matchitemdefinitionFuture = mock(CheckedFuture.class);\r
+ ReadOnlyTransaction readOnlyTransaction = mock(ReadOnlyTransaction.class);\r
+ when(dataBroker.newReadOnlyTransaction()).thenReturn(readOnlyTransaction);\r
+ when(readOnlyTransaction.read(any(LogicalDatastoreType.class), any(InstanceIdentifier.class))).thenReturn(matchitemdefinitionFuture);\r
+ Assert.assertNotNull(flow.getMatchItem());\r
+ Assert.assertEquals(flowDefinitionCheck.CheckDefinition(flow),"The match item has not been defined.");\r
+ //dataBroker test \r
+ verify(dataBroker).newReadOnlyTransaction();\r
+ verify(readOnlyTransaction).read(any(LogicalDatastoreType.class), any(InstanceIdentifier.class));\r
+ verifyPrivate(flowDefinitionCheck).invoke("fetchMatchItemDefinitions");\r
+ \r
+ }\r
+\r
}
\ No newline at end of file
*/\r
package org.opendaylight.nemo.user.vnspacemanager.syntaxcheck;\r
\r
-import static org.mockito.Mockito.mock;\r
-import static org.mockito.Mockito.verify;\r
-import junit.framework.TestCase;\r
+import org.junit.runner.RunWith;\r
+import static org.powermock.api.mockito.PowerMockito.verifyPrivate;\r
+import static org.powermock.api.mockito.PowerMockito.doNothing;\r
+import static org.powermock.api.mockito.PowerMockito.spy;\r
+import org.powermock.core.classloader.annotations.PrepareForTest;\r
+import org.powermock.modules.junit4.PowerMockRunner;\r
\r
+import junit.framework.TestCase;\r
import org.junit.Assert;\r
import org.junit.Before;\r
import org.junit.Test;\r
+\r
+import static org.junit.Assert.*;\r
+import org.opendaylight.controller.md.sal.binding.api.DataBroker;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.NodeType;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.PropertyName;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.objects.Node;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.NodeDefinitions;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.node.definitions.NodeDefinition;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.node.instance.Property;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.property.definitions.PropertyDefinition;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.property.instance.PropertyValues;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.node.instance.Property;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.property.definitions.PropertyDefinition;\r
\r
-/**\r
- * Created by Thomas Liu on 2015/11/11.\r
- */\r
-public class NodeDefinitionCheckTest extends TestCase {\r
+import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;\r
+import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;\r
+import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;\r
+import org.opendaylight.yangtools.yang.common.RpcResult;\r
+import org.opendaylight.yangtools.yang.common.RpcResultBuilder;\r
+import org.opendaylight.yangtools.yang.common.RpcError.ErrorType;\r
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;\r
+import com.google.common.base.Optional;\r
+import com.google.common.base.Function;\r
+import com.google.common.util.concurrent.CheckedFuture;\r
+import com.google.common.util.concurrent.FutureCallback;\r
+import com.google.common.util.concurrent.Futures;\r
+import com.google.common.util.concurrent.ListenableFuture;\r
\r
- private Node node;\r
- private NodeDefinitionCheck nodeDefinitionCheckTest;\r
- @Before\r
- public void setUp() throws Exception {\r
- node = mock(Node.class);\r
- nodeDefinitionCheckTest = mock(NodeDefinitionCheck.class);\r
+import org.slf4j.Logger;\r
+import org.slf4j.LoggerFactory;\r
+import java.util.List;\r
\r
- }\r
+import java.util.Collection;\r
+import java.util.Iterator;\r
+import java.util.ArrayList;\r
+import java.util.ListIterator;\r
\r
- @Test\r
- public void testCheckNodeDefinition() throws Exception {\r
- nodeDefinitionCheckTest.CheckNodeDefinition(node);\r
- Assert.assertNotNull(nodeDefinitionCheckTest);\r
- verify(nodeDefinitionCheckTest).CheckNodeDefinition(node);\r
+import java.lang.reflect.Method; \r
+import static org.mockito.Mockito.*;\r
\r
+@RunWith(PowerMockRunner.class) \r
+@PrepareForTest(NodeDefinitionCheck.class) \r
+public class NodeDefinitionCheckTest{\r
+ private NodeDefinitionCheck nodeDefinitionCheck;\r
+ private DataBroker dataBroker;\r
+ private List<NodeDefinition> nodeDefinitionList;\r
+ private Node node;\r
+ private NodeDefinition nodeDefinition;\r
+ private List<Property> nodeProperties;\r
+ private List<PropertyDefinition> nodePropertyDefinitions;\r
+ private Property property;\r
+ private PropertyDefinition propertyDefinition;\r
+ //private static final Logger LOG = LoggerFactory.getLogger(NodeDefinitionCheck.class);\r
+ @org.junit.Before\r
+ public void setUp() throws Exception {\r
+ nodeDefinition = mock(NodeDefinition.class);\r
+ nodeDefinitionList = new ArrayList<NodeDefinition>(3);\r
+ // LOG = mock(Logger.class);\r
+ node = mock(Node.class);\r
+ dataBroker = mock(DataBroker.class);\r
+ nodeDefinitionCheck = new NodeDefinitionCheck(dataBroker);\r
+ property = mock(Property.class);\r
+ propertyDefinition = mock(PropertyDefinition.class);\r
+ nodeProperties = new ArrayList<Property>(3);\r
+ nodePropertyDefinitions = new ArrayList<PropertyDefinition>(3);\r
+ }\r
+ @org.junit.Test\r
+ public void testcheckConnectionDefinition() throws Exception {\r
+ CheckedFuture nodedefinitionFuture = mock(CheckedFuture.class);\r
+ ReadOnlyTransaction readOnlyTransaction = mock(ReadOnlyTransaction.class);\r
+ when(dataBroker.newReadOnlyTransaction()).thenReturn(readOnlyTransaction);\r
+ when(readOnlyTransaction.read(any(LogicalDatastoreType.class), any(InstanceIdentifier.class))).thenReturn(nodedefinitionFuture);\r
+ //branch nodeDefinitionList null\r
+ Assert.assertEquals(nodeDefinitionCheck.CheckNodeDefinition(node),"This type of Node has not been defined.");\r
+ \r
+ //use reflact test private checkProperty\r
+ Method testcheckProperty = nodeDefinitionCheck.getClass().getDeclaredMethod("checkProperty",List.class,List.class); \r
+ testcheckProperty.setAccessible(true);\r
+ //branch1 nodeProperties null, nodePropertyDefinition null\r
+ Assert.assertNull(testcheckProperty.invoke(nodeDefinitionCheck,nodeProperties,nodePropertyDefinitions));\r
+ //branch2 \r
+ nodeProperties.add(property);\r
+ nodePropertyDefinitions.add(propertyDefinition);\r
+ PropertyName propertyName1 = mock(PropertyName.class);\r
+ PropertyName propertyName2 = mock(PropertyName.class);\r
+ when(property.getPropertyName()).thenReturn(propertyName1);\r
+ when(propertyDefinition.getPropertyName()).thenReturn(propertyName2);\r
+ Assert.assertEquals(testcheckProperty.invoke(nodeDefinitionCheck,nodeProperties,nodePropertyDefinitions),"The property"+property.getPropertyName().toString()+"has not been defined.");\r
+ //branch3\r
+ when(property.getPropertyName()).thenReturn(propertyName1);\r
+ PropertyName propertyName3 = propertyName1;\r
+ when(propertyDefinition.getPropertyName()).thenReturn(propertyName3);\r
+ PropertyValues propertyValues = mock(PropertyValues.class);\r
+ when(property.getPropertyValues()).thenReturn(propertyValues);\r
+ Assert.assertNotNull(property.getPropertyValues());\r
+ Assert.assertNull(propertyDefinition.getPropertyValueType());\r
+ //dataBroker test\r
+ verify(dataBroker).newReadOnlyTransaction();\r
+ verify(readOnlyTransaction).read(any(LogicalDatastoreType.class), any(InstanceIdentifier.class));\r
+ verifyPrivate(nodeDefinitionCheck).invoke("fetchNodeDefinitions");\r
}\r
}
\ No newline at end of file
*/\r
package org.opendaylight.nemo.user.vnspacemanager.syntaxcheck;\r
\r
-import static org.mockito.Mockito.mock;\r
-import static org.mockito.Mockito.verify;\r
-import junit.framework.TestCase;\r
+import org.junit.runner.RunWith;\r
+import static org.powermock.api.mockito.PowerMockito.verifyPrivate;\r
+import static org.powermock.api.mockito.PowerMockito.doNothing;\r
+import static org.powermock.api.mockito.PowerMockito.spy;\r
+import org.powermock.core.classloader.annotations.PrepareForTest;\r
+import org.powermock.modules.junit4.PowerMockRunner;\r
\r
+import junit.framework.TestCase;\r
import org.junit.Assert;\r
import org.junit.Before;\r
import org.junit.Test;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.operations.Operation;\r
\r
-/**\r
- * Created by Thomas Liu on 2015/11/11.\r
- */\r
-public class OperationDefinitionCheckTest extends TestCase {\r
+import com.google.common.base.Optional;\r
+import com.google.common.util.concurrent.FutureCallback;\r
+import com.google.common.util.concurrent.Futures;\r
+import com.google.common.util.concurrent.CheckedFuture;\r
+import com.google.common.util.concurrent.ListenableFuture;\r
+import org.opendaylight.controller.md.sal.binding.api.DataBroker;\r
+import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;\r
+import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;\r
+import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;\r
+import org.opendaylight.yangtools.yang.common.RpcResult;\r
+import org.opendaylight.yangtools.yang.common.RpcResultBuilder;\r
+import org.opendaylight.yangtools.yang.common.RpcError.ErrorType;\r
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;\r
+import com.google.common.base.Function;\r
+import com.google.common.util.concurrent.CheckedFuture;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.ParameterName;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.operations.Operation;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.operation.rev151010.ActionDefinitions;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.operation.rev151010.ConditionParameterDefinitions;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.operation.rev151010.action.definitions.ActionDefinition;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.operation.rev151010.action.instance.ParameterValues;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.operation.rev151010.condition.instance.ConditionSegment;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.operation.rev151010.condition.instance.condition.segment.ConditionParameterTargetValue;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.operation.rev151010.condition.parameter.definitions.ConditionParameterDefinition;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.operation.rev151010.condition.parameter.definitions.condition.parameter.definition.ParameterMatchPatterns;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.operation.rev151010.operation.instance.Action;\r
+import org.slf4j.Logger;\r
+import org.slf4j.LoggerFactory;\r
+import java.util.List;\r
\r
- private Operation operation;\r
- private OperationDefinitionCheck operationDefinitionCheckTest;\r
+import java.util.Collection;\r
+import java.util.Iterator;\r
+import java.util.LinkedList;\r
+import java.util.ListIterator;\r
\r
- @Before\r
+import static org.mockito.Mockito.*;\r
+@RunWith(PowerMockRunner.class) \r
+@PrepareForTest(ConnectionDefinitionCheck.class) \r
+public class OperationDefinitionCheckTest{\r
+ private OperationDefinitionCheck operationDefinitionCheck;\r
+ private DataBroker dataBroker;\r
+ private ActionDefinition actionDefinition;\r
+ private ConditionParameterDefinition conditionParameterDefinition;\r
+ private List<ActionDefinition> actionDefinitionList;\r
+ private List<ConditionParameterDefinition> conditionParameterDefinitionList;\r
+ private Operation operation;\r
+ //private static final Logger LOG = LoggerFactory.getLogger(NodeDefinitionCheck.class);\r
+ \r
+ @org.junit.Before\r
public void setUp() throws Exception {\r
- operationDefinitionCheckTest = mock(OperationDefinitionCheck.class);\r
- operation = mock(Operation.class);\r
-\r
+ actionDefinitionList = new LinkedList<ActionDefinition>();\r
+ conditionParameterDefinitionList = new LinkedList<ConditionParameterDefinition>();\r
+ // LOG = mock(Logger.class);\r
+ operation = mock(Operation.class);\r
+ dataBroker = mock(DataBroker.class);\r
+ operationDefinitionCheck = new OperationDefinitionCheck(dataBroker);\r
}\r
+ @org.junit.Test\r
+ public void testcheckConnectionDefinition() throws Exception {\r
+ CheckedFuture actiondefinitionFuture = mock(CheckedFuture.class);\r
+ CheckedFuture conditionparadefinitionFuture = mock(CheckedFuture.class);\r
+ ReadOnlyTransaction readOnlyTransaction = mock(ReadOnlyTransaction.class);\r
+ when(dataBroker.newReadOnlyTransaction()).thenReturn(readOnlyTransaction);\r
+ when(readOnlyTransaction.read(any(LogicalDatastoreType.class), any(InstanceIdentifier.class))).thenReturn(actiondefinitionFuture);\r
+ when(readOnlyTransaction.read(any(LogicalDatastoreType.class), any(InstanceIdentifier.class))).thenReturn(conditionparadefinitionFuture);\r
+ //branch null\r
+ Assert.assertNotNull(operation.getAction());\r
+ Assert.assertNotNull(operation.getConditionSegment());\r
+ Assert.assertEquals(operationDefinitionCheck.CheckDefinition(operation),"There are no actions has been defined in the data store.");\r
+ when(operation.getAction()).thenReturn(null);\r
+ Assert.assertEquals(operationDefinitionCheck.CheckDefinition(operation),"This condition has not been defined in data store.");\r
+ //\r
\r
- @Test\r
- public void testCheckDefinition() throws Exception {\r
- operationDefinitionCheckTest.CheckDefinition(operation);\r
- Assert.assertNotNull(operationDefinitionCheckTest);\r
- verify(operationDefinitionCheckTest).CheckDefinition(operation);\r
-\r
+ verify(dataBroker,times(4)).newReadOnlyTransaction();\r
+ verify(readOnlyTransaction,times(4)).read(any(LogicalDatastoreType.class), any(InstanceIdentifier.class));\r
+ \r
}\r
-\r
}
\ No newline at end of file
-/*\r
- * Copyright (c) 2015 Huawei, Inc. and others. All rights reserved.\r
- *\r
- * This program and the accompanying materials are made available under the\r
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,\r
- * and is available at http://www.eclipse.org/legal/epl-v10.html\r
- */\r
-package org.opendaylight.nemo.user.vnspacemanager.syntaxcheck;\r
-\r
-import static org.mockito.Mockito.mock;\r
-import static org.mockito.Mockito.verify;\r
-import junit.framework.TestCase;\r
-\r
-import org.junit.Assert;\r
-import org.junit.Before;\r
-import org.junit.Test;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.Results;\r
-\r
-\r
-/**\r
- * Created by Thomas Liu on 2015/11/11.\r
- */\r
-public class ResultDefinitionCheckTest extends TestCase {\r
-\r
- private Results results;\r
- private ResultDefinitionCheck resultDefinitionCheckTest;\r
- @Before\r
- public void setUp() throws Exception {\r
- resultDefinitionCheckTest = mock(ResultDefinitionCheck.class);\r
- results = mock(Results.class);\r
-\r
- }\r
-\r
- @Test\r
- public void testCheckDefinition() throws Exception {\r
- resultDefinitionCheckTest.CheckDefinition(results);\r
- Assert.assertNotNull(resultDefinitionCheckTest);\r
- verify(resultDefinitionCheckTest).CheckDefinition(results);\r
-\r
- }\r
+/*
+ * 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.user.vnspacemanager.syntaxcheck;
+
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.Results;
+import static org.junit.Assert.*;
+import junit.framework.TestCase;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+import static org.mockito.Mockito.*;
+
+/**
+ * Created by wjf on 2015/11/25.
+ */
+public class ResultDefinitionCheckTest {
+ private ResultDefinitionCheck resultDefinitionCheck;
+ private Results results;
+ @org.junit.Before
+ public void setUp() throws Exception {
+ results = mock(Results.class);
+ resultDefinitionCheck = new ResultDefinitionCheck();
+ }
+
+ @org.junit.Test
+ public void testCheckDefinition() throws Exception {
+ Assert.assertNull(resultDefinitionCheck.CheckDefinition(results));
+ }
}
\ No newline at end of file