Add nemo-impl partical test files 62/31262/1
authorsaomenmen <zhangmroy@163.com>
Mon, 14 Dec 2015 10:02:08 +0000 (18:02 +0800)
committersaomenmen <zhangmroy@163.com>
Mon, 14 Dec 2015 10:04:45 +0000 (18:04 +0800)
Change-Id: I6c8c1cb806e6d523b350a009fb40d80593563385
Signed-off-by: saomenmen <zhangmroy@163.com>
18 files changed:
nemo-impl/src/test/java/org/opendaylight/nemo/user/advancedquery/AdvancedQueryTest.java [new file with mode: 0644]
nemo-impl/src/test/java/org/opendaylight/nemo/user/advancedquery/QueryDefinitionCheckTest.java [new file with mode: 0644]
nemo-impl/src/test/java/org/opendaylight/nemo/user/vnspacemanager/languagestyle/NEMOParse/ParseExceptionTest.java [new file with mode: 0644]
nemo-impl/src/test/java/org/opendaylight/nemo/user/vnspacemanager/languagestyle/NEMOParse/TokenMgrErrorTest.java [new file with mode: 0644]
nemo-impl/src/test/java/org/opendaylight/nemo/user/vnspacemanager/languagestyle/NEMOParse/TokenTest.java [new file with mode: 0644]
nemo-impl/src/test/java/org/opendaylight/nemo/user/vnspacemanager/languagestyle/updateintentlang/LanguageIntentTest.java [new file with mode: 0644]
nemo-impl/src/test/java/org/opendaylight/nemo/user/vnspacemanager/structurestyle/deleteintent/DeleteConnectionTest.java [new file with mode: 0644]
nemo-impl/src/test/java/org/opendaylight/nemo/user/vnspacemanager/structurestyle/deleteintent/DeleteFlowTest.java [new file with mode: 0644]
nemo-impl/src/test/java/org/opendaylight/nemo/user/vnspacemanager/structurestyle/deleteintent/DeleteIntentTest.java [new file with mode: 0644]
nemo-impl/src/test/java/org/opendaylight/nemo/user/vnspacemanager/structurestyle/deleteintent/DeleteNodeTest.java [new file with mode: 0644]
nemo-impl/src/test/java/org/opendaylight/nemo/user/vnspacemanager/structurestyle/deleteintent/DeleteOperationTest.java [new file with mode: 0644]
nemo-impl/src/test/java/org/opendaylight/nemo/user/vnspacemanager/structurestyle/deleteintent/DeleteResultTest.java [new file with mode: 0644]
nemo-impl/src/test/java/org/opendaylight/nemo/user/vnspacemanager/structurestyle/updateintent/UpdateConnectionTest.java [new file with mode: 0644]
nemo-impl/src/test/java/org/opendaylight/nemo/user/vnspacemanager/structurestyle/updateintent/UpdateFlowTest.java [new file with mode: 0644]
nemo-impl/src/test/java/org/opendaylight/nemo/user/vnspacemanager/structurestyle/updateintent/UpdateIntentTest.java [new file with mode: 0644]
nemo-impl/src/test/java/org/opendaylight/nemo/user/vnspacemanager/structurestyle/updateintent/UpdateNodeTest.java [new file with mode: 0644]
nemo-impl/src/test/java/org/opendaylight/nemo/user/vnspacemanager/structurestyle/updateintent/UpdateOperationTest.java [new file with mode: 0644]
nemo-impl/src/test/java/org/opendaylight/nemo/user/vnspacemanager/structurestyle/updateintent/UpdateResultTest.java [new file with mode: 0644]

diff --git a/nemo-impl/src/test/java/org/opendaylight/nemo/user/advancedquery/AdvancedQueryTest.java b/nemo-impl/src/test/java/org/opendaylight/nemo/user/advancedquery/AdvancedQueryTest.java
new file mode 100644 (file)
index 0000000..b14a712
--- /dev/null
@@ -0,0 +1,127 @@
+/*\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.advancedquery;\r
+import org.opendaylight.nemo.user.tenantmanager.AAA;\r
+import org.opendaylight.nemo.user.tenantmanager.TenantManage;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.UserId;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.AdvancedNemoQueryInput;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.Users;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.advanced.nemo.query.input.QueryCondition;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.Objects;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.Operations;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.Results;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.objects.Connection;\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.intent.rev151010.user.intent.objects.Node;\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.intent.rev151010.users.User;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.users.UserKey;\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.flow.instance.Property;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.property.instance.property.values.IntValue;\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.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.binding.InstanceIdentifier;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.UserName;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.UserPassword;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.UserId;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.UserRoleName;\r
+import org.slf4j.Logger;\r
+import org.slf4j.LoggerFactory;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.QueryConditionName;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.query.condition.instance.QueryConditionTargetValue;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.QueryConditionInstance.QueryIntentType;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.QueryConditionInstance.QueryConditionMatchPattern;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.QueryConditionInstance;\r
+\r
+import java.util.List;\r
+import static org.mockito.Mockito.mock;\r
+\r
+import org.junit.Assert;\r
+import org.junit.Before;\r
+import org.junit.Test;\r
+import java.util.List;\r
+import java.util.*;\r
+import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;\r
+import static org.mockito.Mockito.*;\r
+/*\r
+2015/11/28\r
+build by Gao Jie\r
+*/\r
+public class AdvancedQueryTest{\r
+               private DataBroker dataBroker;\r
+        private TenantManage tenantManage;\r
+               private AdvancedQuery advancedquery;\r
+        private AAA aaa;\r
+               private UserId userid;\r
+               private UserName username;\r
+               private UserPassword userpassword;\r
+               private UserRoleName userrolename;\r
+        private AdvancedNemoQueryInput input;\r
+               private QueryCondition querycondition;\r
+        private List<QueryCondition> queryconditionlist;\r
+        private AdvancedNemoQueryInput advancedQueryinput;             \r
+@org.junit.Before\r
+public void setUp() throws Exception{\r
+       dataBroker=mock(DataBroker.class);\r
+       tenantManage=mock(TenantManage.class);\r
+       advancedquery=new AdvancedQuery(dataBroker,tenantManage);\r
+       aaa=mock(AAA.class);\r
+    input=mock(AdvancedNemoQueryInput.class);\r
+       userid=mock(UserId.class);\r
+       username=mock(UserName.class);\r
+       userpassword=mock(UserPassword.class);\r
+       userrolename=mock(UserRoleName.class);\r
+       querycondition=mock(QueryCondition.class);\r
+       queryconditionlist=new ArrayList<QueryCondition>(3);\r
+       queryconditionlist.add(querycondition);\r
+    advancedQueryinput=mock(AdvancedNemoQueryInput.class);     \r
+} \r
+@org.junit.Test\r
+public void advancedQueryTest() throws Exception{\r
+       //branch 1\r
+       when(input.getUserId()).thenReturn(userid);\r
+       when(aaa.checkUser(input.getUserId())).thenReturn("The password is not right.");\r
+    Assert.assertEquals(advancedquery.advancedQuery(aaa,input),"The password is not right.");\r
+       //branch 2\r
+       when(input.getUserId()).thenReturn(userid);\r
+       when(aaa.checkUser(input.getUserId())).thenReturn(null);\r
+    //if-\r
+    when(input.getQueryCondition()).thenReturn(null);\r
+        Assert.assertEquals(advancedquery.advancedQuery(aaa,input),null);\r
+        //branch3\r
+       when(input.getUserId()).thenReturn(userid);\r
+       when(aaa.checkUser(input.getUserId())).thenReturn(null);\r
+       //if-\r
+       List<QueryCondition> queryconditionlist=new ArrayList<QueryCondition>(3);\r
+       queryconditionlist.add(querycondition);\r
+       when(input.getQueryCondition()).thenReturn(queryconditionlist);\r
+    //if--\r
+       when(querycondition.getQueryConditionName()).thenReturn(null);\r
+        //Assert.assertEquals(advancedquery.advancedQuery(aaa,input),"The condition has not been defined.");\r
+       }\r
+@org.junit.Test\r
+public void getAdvancedQueryReusltTest(){\r
+       //branch 1\r
+       when(input.getUserId()).thenReturn(null);\r
+       when(input.getQueryCondition()).thenReturn(queryconditionlist);\r
+       when(querycondition.getQueryIntentType()).thenReturn(null);\r
+       Assert.assertEquals(advancedquery.getAdvancedQueryReuslt(input),null);\r
+       //branch 2 \r
+       when(input.getUserId()).thenReturn(null);\r
+       when(input.getQueryCondition()).thenReturn(queryconditionlist);\r
+       when(querycondition.getQueryIntentType()).thenReturn(null);\r
+       Assert.assertEquals(advancedquery.getAdvancedQueryReuslt(input),null);\r
+}\r
+}
\ No newline at end of file
diff --git a/nemo-impl/src/test/java/org/opendaylight/nemo/user/advancedquery/QueryDefinitionCheckTest.java b/nemo-impl/src/test/java/org/opendaylight/nemo/user/advancedquery/QueryDefinitionCheckTest.java
new file mode 100644 (file)
index 0000000..1898032
--- /dev/null
@@ -0,0 +1,113 @@
+/*\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.advancedquery;\r
+\r
+import java.util.List;\r
+\r
+import org.opendaylight.controller.md.sal.binding.api.DataBroker;\r
+import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.QueryConditionDefinitions;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.advanced.nemo.query.input.QueryCondition;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.query.condition.definitions.QueryConditionDefinition;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.query.condition.definitions.query.condition.definition.QueryConditionMatchPatterns;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.query.condition.definitions.QueryConditionDefinition.QueryConditionValueType;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.query.condition.instance.QueryConditionTargetValue;\r
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.QueryConditionName;\r
+import org.slf4j.Logger;\r
+import org.slf4j.LoggerFactory;\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.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.ListenableFuture;\r
+import java.util.List;\r
+import static org.mockito.Mockito.mock;\r
+import java.lang.reflect.Method; \r
+import org.junit.Assert;\r
+import org.junit.Before;\r
+import org.junit.Test;\r
+import java.util.List;\r
+import java.util.*;\r
+import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;\r
+import static org.mockito.Mockito.*;\r
+/*\r
+ *Created by Gao Jie on 2015/12/02\r
+*/\r
+public class QueryDefinitionCheckTest{\r
+       private DataBroker dataBroker;\r
+       private QueryDefinitionCheck querydefinitioncheck;\r
+       private  QueryCondition queryCondition;\r
+       private QueryConditionDefinition queryconditionDefinition;\r
+    private List<QueryConditionDefinition> queryconditionDefinitionlist;\r
+       private QueryConditionName queryconditionname;\r
+       private QueryConditionName notqueryconditionname;\r
+       \r
+/*     private List<Property> connectionProperty;\r
+       private List<PropertyDefinition> propertyDefinitionList;\r
+       private Property property;\r
+       private PropertyDefinition propertyDefinition; */\r
+       @org.junit.Before\r
+       public void setUp() throws Exception{\r
+               dataBroker=mock(DataBroker.class);\r
+               querydefinitioncheck=new QueryDefinitionCheck(dataBroker);\r
+               queryCondition=mock(QueryCondition.class);\r
+               queryconditionDefinition=mock(QueryConditionDefinition.class);\r
+               queryconditionDefinitionlist=null;\r
+               queryconditionname=mock(QueryConditionName.class);\r
+               notqueryconditionname=mock(QueryConditionName.class);\r
+/*             property = mock(Property.class);\r
+               propertyDefinition = mock(PropertyDefinition.class);\r
+               connectionProperty = new ArrayList<Property>(3);\r
+               propertyDefinitionList = new ArrayList<PropertyDefinition>(3);\r
+               connectionDefinitionList.add(connectionDefinition); */\r
+       }\r
+       @org.junit.Test\r
+       public void CheckQueryDefinitionTest() throws Exception{\r
+               CheckedFuture connectiondefinitionFuture = 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(connectiondefinitionFuture);\r
+               //branch 1 queryConditionDefinitions = null\r
+               Assert.assertEquals(querydefinitioncheck.CheckQueryDefinition(queryCondition),"The condition has not been defined.");\r
+               //branch 2 queryConditionDefinitions != null\r
+               queryconditionDefinitionlist=new ArrayList<QueryConditionDefinition>(3);\r
+               queryconditionDefinitionlist.add(queryconditionDefinition);\r
+               when(queryCondition.getQueryConditionName()).thenReturn(queryconditionname);\r
+               when(queryCondition.getQueryConditionName()).thenReturn(notqueryconditionname);\r
+               Assert.assertEquals(querydefinitioncheck.CheckQueryDefinition(queryCondition),"The condition has not been defined.");\r
+           //branch 3\r
+               Method setqueryconditiondefinitions = querydefinitioncheck.getClass().getDeclaredMethod("setQueryConditionDefinitions",List.class);  \r
+               setqueryconditiondefinitions.setAccessible(true);\r
+               Assert.assertNull(setqueryconditiondefinitions.invoke(querydefinitioncheck,queryconditionDefinitionlist));\r
+               when(queryCondition.getQueryConditionName()).thenReturn(queryconditionname);\r
+               when(queryconditionDefinition.getQueryConditionName()).thenReturn(queryconditionname);\r
+               when(queryCondition.getQueryIntentType()).thenReturn(null);\r
+               when(queryCondition.getQueryConditionTargetValue()).thenReturn(null);\r
+               when(queryCondition.getQueryConditionMatchPattern()).thenReturn(null);\r
+               Assert.assertEquals(querydefinitioncheck.CheckQueryDefinition(queryCondition),null);\r
+               //branch  4\r
+               when(queryCondition.getQueryConditionName()).thenReturn(queryconditionname);\r
+               when(queryconditionDefinition.getQueryConditionName()).thenReturn(queryconditionname);\r
+               when(queryCondition.getQueryIntentType()).thenReturn(null);\r
+               QueryConditionTargetValue queryconditiontargetvalue=mock(QueryConditionTargetValue.class);\r
+               when(queryCondition.getQueryConditionTargetValue()).thenReturn(queryconditiontargetvalue);\r
+               when(queryconditionDefinition.getQueryConditionMatchPatterns()).thenReturn(null);\r
+               Assert.assertEquals(querydefinitioncheck.CheckQueryDefinition(queryCondition),"There are no query condition value type defined in query condition.");\r
+               //branch 5\r
+               /* when(queryCondition.getQueryConditionName()).thenReturn(queryconditionname);\r
+               when(queryconditionDefinition.getQueryConditionName()).thenReturn(queryconditionname);\r
+               when(queryCondition.getQueryIntentType()).thenReturn(null);\r
+               when(queryCondition.getQueryConditionTargetValue()).thenReturn(null);\r
+               QueryConditionMatchPatterns queryconditionmatchpattenrs=mock(QueryConditionMatchPatterns.class);\r
+               when(queryCondition.getQueryConditionMatchPatterns()).thenReturn(queryconditionmatchpattenrs); */\r
+               \r
+       }\r
+}
\ No newline at end of file
diff --git a/nemo-impl/src/test/java/org/opendaylight/nemo/user/vnspacemanager/languagestyle/NEMOParse/ParseExceptionTest.java b/nemo-impl/src/test/java/org/opendaylight/nemo/user/vnspacemanager/languagestyle/NEMOParse/ParseExceptionTest.java
new file mode 100644 (file)
index 0000000..30fdfa4
--- /dev/null
@@ -0,0 +1,101 @@
+package org.opendaylight.nemo.user.vnspacemanager.languagestyle.NEMOParse;
+
+import  org.opendaylight.nemo.user.vnspacemanager.languagestyle.NEMOParse.ParseException;
+import static org.mockito.Mockito.mock;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+import static org.mockito.Matchers.any;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+/**
+ * Created by ldzd11 on 2015/12/7.
+ */
+public class ParseExceptionTest {
+
+    private ParseException parseException;
+    private ParseException parseException2;
+    private ParseException parseException3;
+    private String str;
+    private String[] tokenImageVal;
+    private String[] tokenImage;
+    private int[][] expectedTokenSequencesVal;
+    private int[][] expectedTokenSequences;
+    private Token currentTokenVal;
+    private Token currentToken;
+    @org.junit.Before
+    public void setUp() throws Exception {
+        tokenImageVal = new String[2];
+        tokenImage = new String[2];
+
+        tokenImageVal[0] = "tokenImageVal1";
+        tokenImageVal[1] = "tokenImageVal2";
+
+        expectedTokenSequencesVal = new int[1][1];
+        expectedTokenSequences = new int[1][1];
+        expectedTokenSequencesVal[0][0] = 1;
+
+        currentTokenVal = new Token();
+        currentToken = new Token();
+        currentTokenVal.next = currentToken;
+
+        parseException = new ParseException();
+        parseException2 = new ParseException("test");
+        parseException3 = new ParseException(currentTokenVal,expectedTokenSequencesVal,tokenImageVal);
+
+    }
+
+    @org.junit.Test
+    public void testAdd_escapes() throws Exception {
+
+
+
+        str = new String("\0");
+        Assert.assertEquals(parseException.add_escapes(str),"");
+        Assert.assertEquals(parseException2.add_escapes(str),"");
+        Assert.assertEquals(parseException3.add_escapes(str),"");
+
+
+        str = new String("\b");
+        Assert.assertEquals(parseException.add_escapes(str),"\\b");
+        Assert.assertEquals(parseException2.add_escapes(str),"\\b");
+        Assert.assertEquals(parseException3.add_escapes(str),"\\b");
+        str = new String("\t");
+
+        Assert.assertEquals(parseException.add_escapes(str),"\\t");
+        str = new String("\n");
+        Assert.assertEquals(parseException.add_escapes(str),"\\n");
+        str = new String("\f");
+        Assert.assertEquals(parseException.add_escapes(str),"\\f");
+        str = new String("\r");
+        Assert.assertEquals(parseException.add_escapes(str),"\\r");
+        str = new String("\"");
+        Assert.assertEquals(parseException.add_escapes(str),"\\\"");
+        str = new String("\'");
+        Assert.assertEquals(parseException.add_escapes(str),"\\\'");
+        str = new String("\\");
+        Assert.assertEquals(parseException.add_escapes(str),"\\\\");
+        str = new String("0\b\t\n\f\r\"\'\\");
+        Assert.assertEquals(parseException.add_escapes(str),"0\\b\\t\\n\\f\\r\\\"\\\'\\\\");
+        Assert.assertEquals(parseException2.add_escapes(str),"0\\b\\t\\n\\f\\r\\\"\\'\\\\");
+        Assert.assertEquals(parseException3.add_escapes(str),"0\\b\\t\\n\\f\\r\\\"\\'\\\\");
+        str = String.format("%c",0x15);
+        Assert.assertEquals(parseException.add_escapes(str),"\\u0015");
+        Assert.assertEquals(parseException2.add_escapes(str),"\\u0015");
+        Assert.assertEquals(parseException3.add_escapes(str),"\\u0015");
+        str = String.format("%c",'a');
+        Assert.assertEquals(parseException.add_escapes(str),"a");
+        Assert.assertEquals(parseException2.add_escapes(str),"a");
+        Assert.assertEquals(parseException3.add_escapes(str),"a");
+
+        Assert.assertNotNull(parseException);
+Assert.assertNotNull(parseException2);
+
+Assert.assertNotNull(parseException3);
+
+    }
+}
\ No newline at end of file
diff --git a/nemo-impl/src/test/java/org/opendaylight/nemo/user/vnspacemanager/languagestyle/NEMOParse/TokenMgrErrorTest.java b/nemo-impl/src/test/java/org/opendaylight/nemo/user/vnspacemanager/languagestyle/NEMOParse/TokenMgrErrorTest.java
new file mode 100644 (file)
index 0000000..ec9386e
--- /dev/null
@@ -0,0 +1,133 @@
+package org.opendaylight.nemo.user.vnspacemanager.languagestyle.NEMOParse;
+
+import  org.opendaylight.nemo.user.vnspacemanager.languagestyle.NEMOParse.TokenMgrError;
+
+import static org.mockito.Mockito.mock;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+import static org.mockito.Matchers.any;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+/**
+ * Created by ldzd11 on 2015/12/8.
+ */
+public class TokenMgrErrorTest {
+    private TokenMgrError tokenMgrError;
+    private TokenMgrError tokenMgrError2;
+    private TokenMgrError tokenMgrError3;
+    private  String str;
+    private String message;
+    private int reason;
+    private  boolean EOFSeen;
+    private  boolean EOFSeen2;
+    private  int lexState;
+    private int errorLine;
+    private int errorColumn;
+    private String errorAfter;
+    private char curChar;
+
+    @org.junit.Before
+    public void setUp() throws Exception {
+        reason = 1;
+        message = new String("test");
+        tokenMgrError = new TokenMgrError();
+        tokenMgrError2 = new TokenMgrError(message,reason);
+
+
+        EOFSeen = false;
+        EOFSeen2 =true;
+        lexState = 1;
+        errorLine = 1;
+        errorColumn =1;
+        errorAfter = new String("testAfter");
+        curChar = '1';
+
+        tokenMgrError3 = new TokenMgrError(EOFSeen,lexState,errorLine,errorColumn,errorAfter,curChar,reason);
+
+    }
+
+    @org.junit.Test
+    public void testAddEscapes() throws Exception {
+        str = new String("\0");
+        Assert.assertEquals(tokenMgrError.addEscapes(str),"");
+
+        str = new String("\b");
+        Assert.assertEquals(tokenMgrError.addEscapes(str),"\\b");
+
+        str = new String("\t");
+        Assert.assertEquals(tokenMgrError.addEscapes(str),"\\t");
+
+        str = new String("\n");
+        Assert.assertEquals(tokenMgrError.addEscapes(str),"\\n");
+
+        str = new String("\f");
+        Assert.assertEquals(tokenMgrError.addEscapes(str),"\\f");
+
+        str = new String("\r");
+        Assert.assertEquals(tokenMgrError.addEscapes(str),"\\r");
+
+        str = new String("\"");
+        Assert.assertEquals(tokenMgrError.addEscapes(str),"\\\"");
+
+        str = new String("\'");
+        Assert.assertEquals(tokenMgrError.addEscapes(str),"\\\'");
+
+        str = new String("\\");
+        Assert.assertEquals(tokenMgrError.addEscapes(str),"\\\\");
+
+        str = new String("\0\b\t\n\f\r\"\'\\");
+        Assert.assertEquals(tokenMgrError.addEscapes(str),"\\b\\t\\n\\f\\r\\\"\\\'\\\\");
+
+        str = String.format("%c",0x15);
+        Assert.assertEquals(tokenMgrError.addEscapes(str),"\\u0015");
+
+        str = String.format("%c",'a');
+        Assert.assertEquals(tokenMgrError.addEscapes(str),"a");
+
+    }
+
+    @org.junit.Test
+    public void testLexicalError() throws Exception {
+
+        Assert.assertEquals(tokenMgrError.LexicalError(EOFSeen,lexState,errorLine,errorColumn,errorAfter,curChar),
+                "Lexical error at line " +
+                        "1" + ", column " +
+                        "1" + ".  Encountered: " +
+                        "\"" + "1" + "\"" + " (" + "49"+ "), " +
+                        "after : \"" + "testAfter" + "\""
+        );
+
+        Assert.assertEquals(tokenMgrError.LexicalError(EOFSeen2,lexState,errorLine,errorColumn,errorAfter,curChar),
+                "Lexical error at line " +
+                        "1" + ", column " +
+                        "1" + ".  Encountered: " +
+                        "<EOF> "+
+                        "after : \"" + "testAfter" + "\""
+        );
+
+
+    }
+
+    @org.junit.Test
+    public void testGetMessage() throws Exception {
+        Assert.assertEquals(tokenMgrError.getMessage(),null);
+        Assert.assertEquals(tokenMgrError2.getMessage(),"test");
+
+
+        Assert.assertEquals(tokenMgrError3.getMessage(),"Lexical error at line " +
+                "1" + ", column " +
+                "1" + ".  Encountered: " +
+                "\"" + "1" + "\"" + " (" + "49"+ "), " +
+                "after : \"" + "testAfter" + "\""
+        );
+Assert.assertNotNull(tokenMgrError2);
+
+
+
+    }
+}
\ No newline at end of file
diff --git a/nemo-impl/src/test/java/org/opendaylight/nemo/user/vnspacemanager/languagestyle/NEMOParse/TokenTest.java b/nemo-impl/src/test/java/org/opendaylight/nemo/user/vnspacemanager/languagestyle/NEMOParse/TokenTest.java
new file mode 100644 (file)
index 0000000..b26dc95
--- /dev/null
@@ -0,0 +1,75 @@
+package org.opendaylight.nemo.user.vnspacemanager.languagestyle.NEMOParse;
+
+import org.opendaylight.nemo.user.vnspacemanager.languagestyle.NEMOParse.Token;
+
+import static org.mockito.Mockito.mock;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+import static org.mockito.Matchers.any;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+/**
+ * Created by ldzd11 on 2015/12/8.
+ */
+public class TokenTest {
+
+    private Token token;
+    private Token token2;
+    private Token token3;
+
+    private static final long serialVersionUID = 1L;
+    private int kind;
+    private  int beginLine;
+    private int beginColumn;
+    private int endLine;
+    private int endColumn;
+    private int ofKind;
+    private String image;
+    private Token next;
+    private Token specialToken;
+
+
+    @org.junit.Before
+    public void setUp() throws Exception {
+        token = new Token();
+        kind = 1;
+        image = new String("test");
+        token2 = new Token(kind);
+        token3 = new Token(kind,image);
+        ofKind = 1;
+
+
+
+    }
+
+    @org.junit.Test
+    public void testGetValue() throws Exception {
+        Assert.assertEquals(token.getValue(),null);
+    }
+
+    @org.junit.Test
+    public void testToString() throws Exception {
+        Assert.assertEquals(token3.toString(),"test");
+        Assert.assertEquals(token2.toString(),null);
+
+    }
+
+    @org.junit.Test
+    public void testNewToken() throws Exception {
+       
+       Assert.assertTrue(token.newToken(ofKind,image) instanceof Token);
+        Assert.assertNotNull(token);
+
+       }
+    @org.junit.Test
+    public void testNewToken1() throws Exception {
+       Assert.assertTrue(token.newToken(ofKind) instanceof Token);
+        Assert.assertNotNull(token);
+
+    }
+}
\ No newline at end of file
diff --git a/nemo-impl/src/test/java/org/opendaylight/nemo/user/vnspacemanager/languagestyle/updateintentlang/LanguageIntentTest.java b/nemo-impl/src/test/java/org/opendaylight/nemo/user/vnspacemanager/languagestyle/updateintentlang/LanguageIntentTest.java
new file mode 100644 (file)
index 0000000..a098cc4
--- /dev/null
@@ -0,0 +1,72 @@
+package org.opendaylight.nemo.user.vnspacemanager.languagestyle;
+
+import org.opendaylight.nemo.user.vnspacemanager.languagestyle.LanguageIntent;
+
+import static org.mockito.Matchers.any;
+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 org.opendaylight.controller.md.sal.binding.api.DataBroker;
+import org.opendaylight.nemo.user.tenantmanager.AAA;
+import org.opendaylight.nemo.user.tenantmanager.TenantManage;
+import org.opendaylight.nemo.user.vnspacemanager.languagestyle.NEMOParse.NEMOparser;
+import org.opendaylight.nemo.user.vnspacemanager.languagestyle.NEMOParse.ParseException;
+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.LanguageStyleNemoRequestInput;
+
+import java.io.StringReader;
+
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * Created by ldzd11 on 2015/12/14.
+ */
+public class LanguageIntentTest {
+
+    private LanguageIntent languageIntent;
+    private DataBroker dataBroker;
+    private TenantManage tenantManage;
+    private NEMOparser nemOparser;
+    private AAA aaa;
+    private UserId userId;
+   // private  NemoStatement nemoStatement;
+    private LanguageStyleNemoRequestInput languageStyleNemoRequestInput;
+    private String errorInfo;
+
+    @org.junit.Before
+    public void setUp() throws Exception {
+        userId = mock(UserId.class);
+       // nemoStatement = mock(NemoStatement.class);
+        dataBroker = mock(DataBroker.class);
+        tenantManage = mock(TenantManage.class);
+        languageStyleNemoRequestInput = mock(LanguageStyleNemoRequestInput.class);
+        aaa = mock(AAA.class);
+       // nemOparser = new NEMOparser(new StringReader(""));
+        errorInfo = new String();
+        languageIntent = new LanguageIntent(dataBroker,tenantManage);
+
+    }
+
+    @org.junit.Test
+    public void testLanIntentHandler() throws Exception {
+        when(languageStyleNemoRequestInput.getUserId()).thenReturn(userId);
+        when(languageStyleNemoRequestInput.getNemoStatement()).thenReturn(new String("test"));
+        when(aaa.checkUser(languageStyleNemoRequestInput.getUserId())).thenReturn(null);
+        try{
+            Assert.assertEquals(languageIntent.LanIntentHandler(aaa, languageStyleNemoRequestInput),nemOparser.parseNEMO(languageStyleNemoRequestInput.getUserId(),languageStyleNemoRequestInput.getNemoStatement(),dataBroker,tenantManage));
+        }
+        catch(ParseException e){
+        }
+
+        when(aaa.checkUser(languageStyleNemoRequestInput.getUserId())).thenReturn(errorInfo);
+        try{
+            Assert.assertEquals(languageIntent.LanIntentHandler(aaa, languageStyleNemoRequestInput),errorInfo);
+        }
+        catch(ParseException e){
+        }
+    }
+}
\ No newline at end of file
diff --git a/nemo-impl/src/test/java/org/opendaylight/nemo/user/vnspacemanager/structurestyle/deleteintent/DeleteConnectionTest.java b/nemo-impl/src/test/java/org/opendaylight/nemo/user/vnspacemanager/structurestyle/deleteintent/DeleteConnectionTest.java
new file mode 100644 (file)
index 0000000..c8ef1a2
--- /dev/null
@@ -0,0 +1,109 @@
+/*
+ * 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.structurestyle.deleteintent;
+import org.opendaylight.nemo.user.vnspacemanager.structurestyle.*;
+import static org.mockito.Mockito.mock;
+
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+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.ConnectionId;
+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.Users;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.Objects;
+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.intent.rev151010.user.intent.objects.ConnectionKey;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.users.User;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.users.UserKey;
+import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
+import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException;
+import com.google.common.util.concurrent.CheckedFuture;
+import com.google.common.util.concurrent.FutureCallback;
+import com.google.common.util.concurrent.Futures;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.List;
+import java.util.*;
+import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;
+import static org.mockito.Mockito.*;
+public class  DeleteConnectionTest{
+           private DataBroker dataBroker;
+        private TenantManage tenantManage;
+        private DeleteConnection deleteconnection;
+        private UserId userId;
+        private ConnectionId connectionID;
+               private User user;
+               private Objects objects;
+               private Connection connection;
+               private List<Connection> connectionList;
+               private ConnectionId NotconnectionID;
+               private  ConnectionId connectionID2;
+               private   WriteTransaction  writetransaction;
+@org.junit.Before
+public void setUp() throws Exception {
+           dataBroker=mock(DataBroker.class);
+               tenantManage=mock(TenantManage.class);
+        deleteconnection=mock(DeleteConnection.class);
+        userId=mock(UserId.class);
+        connectionID=mock(ConnectionId.class);
+               NotconnectionID=mock(ConnectionId.class);
+               connectionID2=connectionID;
+               user=mock(User.class);
+               objects=mock(Objects.class);
+               connection=mock(Connection.class);
+               connectionList=new ArrayList<Connection>(3);
+               connectionList.add(connection);
+               deleteconnection=new DeleteConnection(dataBroker,tenantManage);
+               writetransaction=mock(WriteTransaction.class);
+        }
+@org.junit.Test
+public void DeleteConnectionHandlingTest() throws Exception{
+       //no data test
+          CheckedFuture connectiondefinitionFuture = mock(CheckedFuture.class);
+       ReadOnlyTransaction readOnlyTransaction = mock(ReadOnlyTransaction.class);
+          when(dataBroker.newReadOnlyTransaction()).thenReturn(readOnlyTransaction);
+         
+          when(tenantManage.getUser()).thenReturn(null);
+          Assert.assertEquals(deleteconnection.DeleteConnectionHandling(userId,connectionID),"There are no connection instances in data store.");
+          //data exists and other branches
+          // branch 1
+          when (tenantManage.getUser()).thenReturn(user);
+          when(user.getObjects()).thenReturn(null);
+          Assert.assertEquals(deleteconnection.DeleteConnectionHandling(userId,connectionID),null);
+          //branch 2
+          when(tenantManage.getUser()).thenReturn(user);
+          when(user.getObjects()).thenReturn(objects);
+          when(user.getObjects().getConnection()).thenReturn(null);
+          Assert.assertEquals(deleteconnection.DeleteConnectionHandling(userId,connectionID),"There are no connection instances in data store.");
+       //branch 3
+          when(tenantManage.getUser()).thenReturn(user);
+          when(user.getObjects()).thenReturn(objects);
+          when(objects.getConnection()).thenReturn(connectionList);
+          when(connection.getConnectionId()).thenReturn(NotconnectionID);
+          Assert.assertEquals(deleteconnection.DeleteConnectionHandling(userId,connectionID),"The connection instance " +connectionID.getValue()+" is not exit. Could not be deleted.");
+       //branch 4
+          when(tenantManage.getUser()).thenReturn(user);
+          when(user.getObjects()).thenReturn(objects);
+          when(objects.getConnection()).thenReturn(connectionList);
+          when(connection.getConnectionId()).thenReturn(connectionID);
+          when(dataBroker.newWriteOnlyTransaction()).thenReturn(writetransaction);
+          CheckedFuture<Void, TransactionCommitFailedException> f;
+          f=mock(CheckedFuture.class);
+          when(writetransaction.submit()).thenReturn(f);
+          Assert.assertEquals(deleteconnection.DeleteConnectionHandling(userId,connectionID),null);
+       //-------
+               Assert.assertNotNull(deleteconnection);
+               Assert.assertNotNull(tenantManage);
+        //Assert.assertNull(deleteconnection.DeleteConnectionHandling(userId,connectionID));
+        }
+        }
\ No newline at end of file
diff --git a/nemo-impl/src/test/java/org/opendaylight/nemo/user/vnspacemanager/structurestyle/deleteintent/DeleteFlowTest.java b/nemo-impl/src/test/java/org/opendaylight/nemo/user/vnspacemanager/structurestyle/deleteintent/DeleteFlowTest.java
new file mode 100644 (file)
index 0000000..c30c868
--- /dev/null
@@ -0,0 +1,102 @@
+/*
+ * 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.structurestyle.deleteintent;
+import org.opendaylight.nemo.user.vnspacemanager.structurestyle.*;
+import static org.mockito.Mockito.mock;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+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.FlowId;
+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.Users;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.Objects;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.objects.Flow;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.objects.FlowKey;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.users.User;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.users.UserKey;
+import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
+import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException;
+import com.google.common.util.concurrent.CheckedFuture;
+import com.google.common.util.concurrent.FutureCallback;
+import com.google.common.util.concurrent.Futures;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.*;
+import java.util.List;
+import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;
+import static org.junit.Assert.*;
+import static org.mockito.Mockito.*;
+public class DeleteFlowTest{
+       private DataBroker dataBroker;
+    private TenantManage tenantManage;
+       private DeleteFlow deleteflow;
+       private UserId userId;
+    private    FlowId flowId;
+       private Objects objects;
+       private User  user;
+       private List<Flow> flowlist;
+       private Flow flow;
+       private FlowId notflowId;
+       private   WriteTransaction  writetransaction;
+       @org.junit.Before
+       public void setUp() throws Exception {
+               dataBroker=mock(DataBroker.class);
+               tenantManage=mock(TenantManage.class);
+               deleteflow=new DeleteFlow(dataBroker,tenantManage);
+               userId=mock(UserId.class);
+               flowId=mock(FlowId.class);
+               objects=mock(Objects.class);
+               user=mock(User.class);
+               flow=mock(Flow.class);
+               notflowId=mock(FlowId.class);
+               flowlist=new ArrayList<Flow>(1);
+               flowlist.add(flow);
+               writetransaction=mock(WriteTransaction.class);
+       }
+       @org.junit.Test
+       public void  DeleteFlowHandlingTest() throws Exception{
+        CheckedFuture connectiondefinitionFuture = mock(CheckedFuture.class);
+     ReadOnlyTransaction readOnlyTransaction = mock(ReadOnlyTransaction.class);
+        when(dataBroker.newReadOnlyTransaction()).thenReturn(readOnlyTransaction);
+
+     //no data test
+        when(tenantManage.getUser()).thenReturn(null);
+        Assert.assertEquals(deleteflow.DeleteFlowHandling(userId,flowId),"There are no user in the data store.");
+        //data exists and other branches
+        //branch 1
+       when(tenantManage.getUser()).thenReturn(user);
+       when(user.getObjects()).thenReturn(null);
+       Assert.assertEquals(deleteflow.DeleteFlowHandling(userId,flowId),null);
+       //branch 2
+       when(tenantManage.getUser()).thenReturn(user);
+       when(user.getObjects()).thenReturn(objects);
+       when(user.getObjects().getFlow()).thenReturn(null);
+       Assert.assertEquals(deleteflow.DeleteFlowHandling(userId,flowId),"There are no flow instances in the data store.");
+       //branch 3
+       when(tenantManage.getUser()).thenReturn(user);
+       when(user.getObjects()).thenReturn(objects);
+       when(user.getObjects().getFlow()).thenReturn(flowlist);
+       when(flow.getFlowId()).thenReturn(notflowId);
+       Assert.assertEquals(deleteflow.DeleteFlowHandling(userId,flowId),"The flow instance " +flowId.getValue()+" is not exist. Could not be deleted.");
+       //branch 4
+       when(tenantManage.getUser()).thenReturn(user);
+       when(user.getObjects()).thenReturn(objects);
+       when(user.getObjects().getFlow()).thenReturn(flowlist);
+       when(flow.getFlowId()).thenReturn(flowId);
+       when(dataBroker.newWriteOnlyTransaction()).thenReturn(writetransaction);
+       CheckedFuture<Void, TransactionCommitFailedException> f;
+       f=mock(CheckedFuture.class);
+       when(writetransaction.submit()).thenReturn(f);
+       Assert.assertEquals(deleteflow.DeleteFlowHandling(userId,flowId),null);
+       }
+}
diff --git a/nemo-impl/src/test/java/org/opendaylight/nemo/user/vnspacemanager/structurestyle/deleteintent/DeleteIntentTest.java b/nemo-impl/src/test/java/org/opendaylight/nemo/user/vnspacemanager/structurestyle/deleteintent/DeleteIntentTest.java
new file mode 100644 (file)
index 0000000..e792b51
--- /dev/null
@@ -0,0 +1,189 @@
+/*\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.structurestyle.deleteintent;\r
+import org.opendaylight.nemo.user.vnspacemanager.structurestyle.*;\r
+import static org.mockito.Mockito.mock;\r
+import org.junit.Assert;\r
+import org.junit.Before;\r
+import org.junit.Test;\r
+\r
+import org.opendaylight.controller.md.sal.binding.api.DataBroker;\r
+import org.opendaylight.nemo.user.tenantmanager.AAA;\r
+import org.opendaylight.nemo.user.tenantmanager.TenantManage;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.structure.style.nemo.delete.input.Objects;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.structure.style.nemo.delete.input.Operations;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.UserId;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.ConnectionId;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.FlowId;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.NodeId;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.OperationId;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.StructureStyleNemoDeleteInput;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.structure.style.nemo.delete.input.Results;\r
+import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;\r
+import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;\r
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;\r
+import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException;\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 org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.objects.Flow;\r
+import org.slf4j.Logger;\r
+import org.slf4j.LoggerFactory;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.users.User;\r
+import java.util.*;\r
+import java.util.List;\r
+import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.UserId;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.UserName;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.UserPassword;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.UserRoleName;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.users.User;\r
+import static org.junit.Assert.*;\r
+import static org.mockito.Mockito.*;\r
+public class DeleteIntentTest{\r
+       private DataBroker dataBroker;\r
+    private TenantManage tenantManage;\r
+    private DeleteNode deleteNode;\r
+    private DeleteConnection deleteConnection;\r
+    private DeleteFlow deleteFlow;\r
+    private DeleteOperation deleteOperation;\r
+    private DeleteResult deleteResult;\r
+       private AAA aaa;\r
+       private Objects objects;\r
+       private StructureStyleNemoDeleteInput styleNemoDeleteInput;\r
+       private DeleteIntent deleteintent;\r
+       private Operations operations;\r
+       private Results results;\r
+       private UserId userid;\r
+       private NodeId nodeid;\r
+       private ConnectionId connectionid;\r
+       private FlowId flowid;\r
+       private List<NodeId> nodeidlist;\r
+       private List<ConnectionId> connectionidlist;\r
+       private List<FlowId> flowidlist;\r
+       private List<OperationId> operationidlist;\r
+       private OperationId operationid;\r
+       private User user;\r
+@org.junit.Before\r
+public void setUp() throws Exception{\r
+       dataBroker=mock(DataBroker.class);\r
+       tenantManage=mock(TenantManage.class);\r
+       deleteNode=mock(DeleteNode.class);\r
+       deleteConnection=mock(DeleteConnection.class);\r
+       //deleteFlow=mock(DeleteFlow.class);\r
+       deleteOperation=mock(DeleteOperation.class);\r
+       deleteResult=mock(DeleteResult.class);\r
+       aaa=mock(AAA.class);\r
+       objects=mock(Objects.class);\r
+       styleNemoDeleteInput=mock(StructureStyleNemoDeleteInput.class);\r
+       deleteintent=new DeleteIntent(dataBroker,tenantManage);\r
+       results=mock(Results.class);\r
+       operations=mock(Operations.class);\r
+       nodeid=mock(NodeId.class);\r
+       connectionid=mock(ConnectionId.class);\r
+       flowid=mock(FlowId.class);\r
+       nodeidlist=new ArrayList<NodeId>(1);\r
+       nodeidlist.add(nodeid);\r
+       connectionidlist=new ArrayList<ConnectionId>(1);\r
+       connectionidlist.add(connectionid);\r
+       flowidlist=new ArrayList<FlowId>(1);\r
+       flowidlist.add(flowid);\r
+       user=mock(User.class);\r
+       operationid=mock(OperationId.class);\r
+       operationidlist=new ArrayList<OperationId>(1);\r
+       operationidlist.add(operationid);\r
+}\r
+@org.junit.Test\r
+public void styleNemoDeleteOutputTest(){\r
+        CheckedFuture connectiondefinitionFuture = mock(CheckedFuture.class);\r
+     ReadOnlyTransaction readOnlyTransaction = mock(ReadOnlyTransaction.class);\r
+        when(dataBroker.newReadOnlyTransaction()).thenReturn(readOnlyTransaction);\r
+        UserId useridtest=mock(UserId.class);\r
+        UserName usernametest=mock(UserName.class);\r
+        UserPassword userpasswordtest=mock(UserPassword.class);\r
+        UserRoleName userrolenametest=mock(UserRoleName.class);\r
+        when(styleNemoDeleteInput.getUserId()).thenReturn(useridtest);\r
+        //branch 1\r
+        when(aaa.checkUser(styleNemoDeleteInput.getUserId())).thenReturn("The user is not exist.");\r
+        Assert.assertEquals(deleteintent.styleNemoDeleteOutput(aaa,styleNemoDeleteInput),"The user is not exist.");\r
+        //branch 2\r
+        when(aaa.checkUser(styleNemoDeleteInput.getUserId())).thenReturn(null);\r
+        when(styleNemoDeleteInput.getObjects()).thenReturn(null);\r
+         Assert.assertEquals(deleteintent.styleNemoDeleteOutput(aaa,styleNemoDeleteInput),null);\r
+        //branch 3\r
+        //if-\r
+         when(aaa.checkUser(styleNemoDeleteInput.getUserId())).thenReturn(null);\r
+         when(styleNemoDeleteInput.getObjects()).thenReturn(objects);\r
+         when(styleNemoDeleteInput.getResults()).thenReturn(null);\r
+         when(styleNemoDeleteInput.getOperations()).thenReturn(null);\r
+         //if--\r
+         when(styleNemoDeleteInput.getObjects().getNode()).thenReturn(null);\r
+         when(styleNemoDeleteInput.getObjects().getConnection()).thenReturn(null);\r
+         when(styleNemoDeleteInput.getObjects().getFlow()).thenReturn(null);\r
+         Assert.assertEquals(deleteintent.styleNemoDeleteOutput(aaa,styleNemoDeleteInput),null); \r
+         //branch 4\r
+         //if-\r
+         when(aaa.checkUser(styleNemoDeleteInput.getUserId())).thenReturn(null);\r
+         when(styleNemoDeleteInput.getObjects()).thenReturn(objects);\r
+         when(styleNemoDeleteInput.getResults()).thenReturn(null);\r
+         when(styleNemoDeleteInput.getOperations()).thenReturn(null);\r
+         //if--\r
+         when(styleNemoDeleteInput.getObjects().getNode()).thenReturn(nodeidlist);\r
+         when(styleNemoDeleteInput.getObjects().getConnection()).thenReturn(null);\r
+         when(styleNemoDeleteInput.getObjects().getFlow()).thenReturn(null);\r
+         when(styleNemoDeleteInput.getUserId()).thenReturn(userid);\r
+         when(tenantManage.getUser()).thenReturn(user);\r
+         Assert.assertEquals(deleteintent.styleNemoDeleteOutput(aaa,styleNemoDeleteInput),null);\r
+         //branch 5\r
+         //if-\r
+         when(aaa.checkUser(styleNemoDeleteInput.getUserId())).thenReturn(null);\r
+         when(styleNemoDeleteInput.getObjects()).thenReturn(objects);\r
+         when(styleNemoDeleteInput.getResults()).thenReturn(null);\r
+         when(styleNemoDeleteInput.getOperations()).thenReturn(null);\r
+         //if--\r
+         when(styleNemoDeleteInput.getObjects().getNode()).thenReturn(null);\r
+         when(styleNemoDeleteInput.getObjects().getConnection()).thenReturn(connectionidlist);\r
+         when(styleNemoDeleteInput.getObjects().getFlow()).thenReturn(null);\r
+         Assert.assertEquals(deleteintent.styleNemoDeleteOutput(aaa,styleNemoDeleteInput),null);\r
+      //branch 6\r
+     //if-\r
+         when(aaa.checkUser(styleNemoDeleteInput.getUserId())).thenReturn(null);\r
+         when(styleNemoDeleteInput.getObjects()).thenReturn(objects);\r
+         when(styleNemoDeleteInput.getResults()).thenReturn(null);\r
+         when(styleNemoDeleteInput.getOperations()).thenReturn(null);\r
+         //if--\r
+         when(styleNemoDeleteInput.getObjects().getNode()).thenReturn(null);\r
+         when(styleNemoDeleteInput.getObjects().getConnection()).thenReturn(null);\r
+         when(styleNemoDeleteInput.getObjects().getFlow()).thenReturn(flowidlist);\r
+      Assert.assertEquals(deleteintent.styleNemoDeleteOutput(aaa,styleNemoDeleteInput),null);    \r
+        //branch 7\r
+        //if-\r
+         when(aaa.checkUser(styleNemoDeleteInput.getUserId())).thenReturn(null);\r
+         when(styleNemoDeleteInput.getObjects()).thenReturn(null);\r
+         when(styleNemoDeleteInput.getResults()).thenReturn(null);\r
+         when(styleNemoDeleteInput.getOperations()).thenReturn(operations);\r
+         //if--\r
+      when(operations.getOperation()).thenReturn(null);\r
+         Assert.assertEquals(deleteintent.styleNemoDeleteOutput(aaa,styleNemoDeleteInput),null); \r
+         //branch 8\r
+         //if-\r
+         when(styleNemoDeleteInput.getObjects()).thenReturn(null);\r
+         when(styleNemoDeleteInput.getResults()).thenReturn(null);\r
+         when(styleNemoDeleteInput.getOperations()).thenReturn(operations);\r
+         //if--\r
+      when(operations.getOperation()).thenReturn(operationidlist);\r
+         Assert.assertEquals(deleteintent.styleNemoDeleteOutput(aaa,styleNemoDeleteInput),null);\r
+        //branch 9\r
+        //if-\r
+        when(aaa.checkUser(styleNemoDeleteInput.getUserId())).thenReturn(null);\r
+         when(styleNemoDeleteInput.getObjects()).thenReturn(null);\r
+         when(styleNemoDeleteInput.getResults()).thenReturn(results);\r
+         when(styleNemoDeleteInput.getOperations()).thenReturn(null);\r
+         Assert.assertEquals(deleteintent.styleNemoDeleteOutput(aaa,styleNemoDeleteInput),null);        \r
+}\r
+}
\ No newline at end of file
diff --git a/nemo-impl/src/test/java/org/opendaylight/nemo/user/vnspacemanager/structurestyle/deleteintent/DeleteNodeTest.java b/nemo-impl/src/test/java/org/opendaylight/nemo/user/vnspacemanager/structurestyle/deleteintent/DeleteNodeTest.java
new file mode 100644 (file)
index 0000000..3ad0b9c
--- /dev/null
@@ -0,0 +1,100 @@
+/*\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.structurestyle.deleteintent;\r
+import org.opendaylight.nemo.user.vnspacemanager.structurestyle.*;\r
+import static org.mockito.Mockito.mock;\r
+import org.junit.Assert;\r
+import org.junit.Before;\r
+import org.junit.Test;\r
+\r
+import org.opendaylight.controller.md.sal.binding.api.DataBroker;\r
+import org.opendaylight.nemo.user.tenantmanager.TenantManage;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.NodeId;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.UserId;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.Users;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.Objects;\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.intent.rev151010.user.intent.objects.NodeKey;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.users.User;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.users.UserKey;\r
+import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;\r
+import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;\r
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;\r
+import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException;\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 org.slf4j.Logger;\r
+import org.slf4j.LoggerFactory;\r
+import java.util.List;\r
+import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;\r
+import static org.junit.Assert.*;\r
+import static org.mockito.Mockito.*;\r
+import java.util.*;\r
+public class DeleteNodeTest{\r
+       private DataBroker dataBroker;\r
+    private TenantManage tenantManage;\r
+       private UserId  userid;\r
+       private NodeId  nodeid;\r
+       private DeleteNode deletenode;\r
+       private User user;\r
+       private Objects objects;\r
+       private  Node node;\r
+       private NodeId notnodeid;\r
+       private List<Node> nodeList;\r
+       private   WriteTransaction  writetransaction;\r
+       @org.junit.Before\r
+       public void setUp() throws Exception{\r
+               dataBroker=mock(DataBroker.class);\r
+               tenantManage=mock(TenantManage.class);\r
+        userid=mock(UserId.class);     \r
+               nodeid=mock(NodeId.class);\r
+               deletenode=new DeleteNode(dataBroker,tenantManage);\r
+               user=mock(User.class);\r
+               objects=mock(Objects.class);\r
+               node=mock(Node.class);\r
+               notnodeid=mock(NodeId.class);\r
+               nodeList=new ArrayList<Node>(1);\r
+               nodeList.add(node);\r
+               writetransaction=mock(WriteTransaction.class);\r
+       }\r
+       @org.junit.Test\r
+    public void DeleNodeHandlingTest(){\r
+        CheckedFuture connectiondefinitionFuture = mock(CheckedFuture.class);\r
+     ReadOnlyTransaction readOnlyTransaction = mock(ReadOnlyTransaction.class);\r
+        when(dataBroker.newReadOnlyTransaction()).thenReturn(readOnlyTransaction);\r
+    //branch 1\r
+    when(tenantManage.getUser()).thenReturn(null);\r
+    Assert.assertEquals(deletenode.DeleNodeHandling(userid,nodeid),"There are no user in data store.");        \r
+       //branch 2\r
+       when(tenantManage.getUser()).thenReturn(user);\r
+       when(user.getObjects()).thenReturn(null);\r
+       Assert.assertEquals(deletenode.DeleNodeHandling(userid,nodeid),null);\r
+   //branch 3\r
+       when(tenantManage.getUser()).thenReturn(user);\r
+       when(user.getObjects()).thenReturn(objects);\r
+       when(objects.getNode()).thenReturn(null);\r
+       Assert.assertEquals(deletenode.DeleNodeHandling(userid,nodeid),"There are no nodes instances in data store.");\r
+       //branch 4\r
+       when(tenantManage.getUser()).thenReturn(user);\r
+       when(user.getObjects()).thenReturn(objects);\r
+       when(objects.getNode()).thenReturn(nodeList);\r
+       when(node.getNodeId()).thenReturn(notnodeid);\r
+       Assert.assertEquals(deletenode.DeleNodeHandling(userid,nodeid),"The node instance " +nodeid.getValue()+" is not exist.Could not be deleted");\r
+       //branch 5\r
+       when(tenantManage.getUser()).thenReturn(user);\r
+       when(user.getObjects()).thenReturn(objects);\r
+       when(objects.getNode()).thenReturn(nodeList);\r
+       when(node.getNodeId()).thenReturn(nodeid);\r
+       when(dataBroker.newWriteOnlyTransaction()).thenReturn(writetransaction);\r
+       CheckedFuture<Void, TransactionCommitFailedException> f;\r
+       f=mock(CheckedFuture.class);\r
+       when(writetransaction.submit()).thenReturn(f);\r
+       Assert.assertEquals(deletenode.DeleNodeHandling(userid,nodeid),null);\r
+       }\r
+}\r
diff --git a/nemo-impl/src/test/java/org/opendaylight/nemo/user/vnspacemanager/structurestyle/deleteintent/DeleteOperationTest.java b/nemo-impl/src/test/java/org/opendaylight/nemo/user/vnspacemanager/structurestyle/deleteintent/DeleteOperationTest.java
new file mode 100644 (file)
index 0000000..2d783aa
--- /dev/null
@@ -0,0 +1,100 @@
+/*\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.structurestyle.deleteintent;\r
+import org.opendaylight.nemo.user.vnspacemanager.structurestyle.*;\r
+import static org.mockito.Mockito.mock;\r
+import org.junit.Assert;\r
+import org.junit.Before;\r
+import org.junit.Test;\r
+\r
+import org.opendaylight.controller.md.sal.binding.api.DataBroker;\r
+import org.opendaylight.nemo.user.tenantmanager.TenantManage;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.OperationId;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.UserId;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.Users;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.Operations;\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.intent.rev151010.user.intent.operations.OperationKey;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.users.User;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.users.UserKey;\r
+import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;\r
+import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;\r
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;\r
+import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException;\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 org.slf4j.Logger;\r
+import org.slf4j.LoggerFactory;\r
+import java.util.List;\r
+import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;\r
+import static org.junit.Assert.*;\r
+import static org.mockito.Mockito.*;\r
+import java.util.*;\r
+public class DeleteOperationTest{\r
+       private DataBroker dataBroker;\r
+    private TenantManage tenantManage;\r
+       private UserId userId;\r
+       private User user;\r
+    private    OperationId operationId;\r
+       private DeleteOperation deleteoperation;\r
+       private Operations operations;\r
+       private Operation operation;\r
+       private OperationId notoperationId;\r
+       private List<Operation> operationList;\r
+       private   WriteTransaction  writetransaction;\r
+       @org.junit.Before\r
+       public void setUp() throws Exception{\r
+       dataBroker=mock(DataBroker.class);\r
+       tenantManage=mock(TenantManage.class);\r
+    userId=mock(UserId.class);\r
+    operationId=mock(OperationId.class);\r
+       user=mock(User.class);\r
+       operation=mock(Operation.class);\r
+       notoperationId=mock(OperationId.class);\r
+    deleteoperation=new DeleteOperation(dataBroker,tenantManage);\r
+    operations=mock(Operations.class);\r
+    operationList=new ArrayList<Operation>(1);\r
+       operationList.add(operation);\r
+    writetransaction=mock(WriteTransaction.class);\r
+       }\r
+       @org.junit.Test\r
+       public void DeleteOperationhandlingTest(){\r
+        CheckedFuture connectiondefinitionFuture = mock(CheckedFuture.class);\r
+     ReadOnlyTransaction readOnlyTransaction = mock(ReadOnlyTransaction.class);\r
+        when(dataBroker.newReadOnlyTransaction()).thenReturn(readOnlyTransaction);\r
+               //branch 1\r
+               when(tenantManage.getUser()).thenReturn(null);\r
+               Assert.assertEquals(deleteoperation.DeleteOperationhandling(userId,operationId),"There are no user in the data store.");\r
+               //branch 2\r
+               when(tenantManage.getUser()).thenReturn(user);\r
+               when(user.getOperations()).thenReturn(null);\r
+               Assert.assertEquals(deleteoperation.DeleteOperationhandling(userId,operationId),null);\r
+               //branch 3\r
+               when(tenantManage.getUser()).thenReturn(user);\r
+               when(user.getOperations()).thenReturn(operations);      \r
+        when(operations.getOperation()).thenReturn(null);\r
+        Assert.assertEquals(deleteoperation.DeleteOperationhandling(userId,operationId),"There are no operation instances in the data store.");                \r
+           //branch 4\r
+               when(tenantManage.getUser()).thenReturn(user);\r
+               when(user.getOperations()).thenReturn(operations);      \r
+        when(operations.getOperation()).thenReturn(operationList);\r
+               when(operation.getOperationId()).thenReturn(notoperationId);\r
+               Assert.assertEquals(deleteoperation.DeleteOperationhandling(userId,operationId),"The operation instance " +operationId.getValue()+" is not exist. Could not be deleted.");\r
+           //branch 5\r
+               when(tenantManage.getUser()).thenReturn(user);\r
+               when(user.getOperations()).thenReturn(operations);      \r
+        when(operations.getOperation()).thenReturn(operationList);\r
+               when(operation.getOperationId()).thenReturn(operationId);\r
+               when(dataBroker.newWriteOnlyTransaction()).thenReturn(writetransaction);\r
+           CheckedFuture<Void, TransactionCommitFailedException> f;\r
+           f=mock(CheckedFuture.class);\r
+           when(writetransaction.submit()).thenReturn(f);\r
+               Assert.assertEquals(deleteoperation.DeleteOperationhandling(userId,operationId),null);\r
+       }\r
+}
\ No newline at end of file
diff --git a/nemo-impl/src/test/java/org/opendaylight/nemo/user/vnspacemanager/structurestyle/deleteintent/DeleteResultTest.java b/nemo-impl/src/test/java/org/opendaylight/nemo/user/vnspacemanager/structurestyle/deleteintent/DeleteResultTest.java
new file mode 100644 (file)
index 0000000..df3733f
--- /dev/null
@@ -0,0 +1,33 @@
+/*\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.structurestyle.deleteintent;\r
+import org.opendaylight.nemo.user.vnspacemanager.structurestyle.*;\r
+import static org.mockito.Mockito.mock;\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.common.rev151010.UserId;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.structure.style.nemo.delete.input.Results;\r
+import java.util.*;\r
+import static org.mockito.Mockito.*;\r
+public class DeleteResultTest{\r
+       private UserId userId;\r
+    private    Results results;\r
+       private DeleteResult deleteresult;\r
+       @org.junit.Before\r
+       public void setUp()throws Exception{\r
+               userId=mock(UserId.class);\r
+               results=mock(Results.class);\r
+               deleteresult=new DeleteResult();\r
+               \r
+       }\r
+       @org.junit.Test\r
+       public void DeleteResultHandlingTest() throws Exception{\r
+               Assert.assertNull(deleteresult.DeleteResultHandling(userId,results));\r
+       }\r
+}
\ No newline at end of file
diff --git a/nemo-impl/src/test/java/org/opendaylight/nemo/user/vnspacemanager/structurestyle/updateintent/UpdateConnectionTest.java b/nemo-impl/src/test/java/org/opendaylight/nemo/user/vnspacemanager/structurestyle/updateintent/UpdateConnectionTest.java
new file mode 100644 (file)
index 0000000..4d23522
--- /dev/null
@@ -0,0 +1,85 @@
+/*\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.structurestyle.updateintent;\r
+\r
+import org.opendaylight.nemo.user.vnspacemanager.structurestyle.updateintent.UpdateConnection;\r
+import org.opendaylight.nemo.user.tenantmanager.TenantManage;\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 static org.mockito.Mockito.mock;\r
+import static org.mockito.Mockito.*;\r
+import org.junit.Assert;\r
+import org.junit.Before;\r
+import org.junit.Test;\r
+import junit.framework.TestCase;\r
+\r
+import org.opendaylight.controller.md.sal.binding.api.DataBroker;\r
+import org.opendaylight.nemo.user.tenantmanager.TenantManage;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.UserId;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.Users;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.Objects;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.objects.Connection;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.objects.ConnectionBuilder;\r
+import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.objects.ConnectionKey;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.users.User;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.users.UserKey;\r
+import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;\r
+import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;\r
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;\r
+import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException;\r
+import com.google.common.util.concurrent.Futures;\r
+import com.google.common.util.concurrent.CheckedFuture;\r
+import com.google.common.util.concurrent.FutureCallback;\r
+import org.slf4j.Logger;\r
+import org.slf4j.LoggerFactory;\r
+\r
+import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;\r
+\r
+public class UpdateConnectionTest {\r
+\r
+\r
+    private UpdateConnection updateConnection;\r
+\r
+    private UserId userId;\r
+    private Connection connection;\r
+    private DataBroker dataBroker;\r
+    private TenantManage tenantManage;\r
+\r
+    @Before\r
+    public void setUp() throws Exception {\r
+\r
+        dataBroker = mock(DataBroker.class);\r
+        tenantManage = mock(TenantManage.class);\r
+        \r
+        updateConnection = new UpdateConnection(dataBroker,tenantManage);\r
+\r
+        userId = mock(UserId.class);\r
+        connection = mock(Connection.class);\r
+        \r
+    }\r
+\r
+    @Test\r
+    public void testConnectionHandling() throws Exception {\r
+       \r
+       String errorDefinition = new String("This type of connection has not been defined.");\r
+       \r
+       CheckedFuture connectiondefinitionFuture = mock(CheckedFuture.class);\r
+        ReadOnlyTransaction readOnlyTransaction = mock(ReadOnlyTransaction.class);\r
+\r
+        when(dataBroker.newReadOnlyTransaction()).thenReturn(readOnlyTransaction);\r
+        when(readOnlyTransaction.read(any(LogicalDatastoreType.class), any(InstanceIdentifier.class))).thenReturn(connectiondefinitionFuture); \r
+       \r
+       Assert.assertEquals(updateConnection.ConnectionHandling(userId,connection),errorDefinition);\r
+       \r
+    }\r
+}
\ No newline at end of file
diff --git a/nemo-impl/src/test/java/org/opendaylight/nemo/user/vnspacemanager/structurestyle/updateintent/UpdateFlowTest.java b/nemo-impl/src/test/java/org/opendaylight/nemo/user/vnspacemanager/structurestyle/updateintent/UpdateFlowTest.java
new file mode 100644 (file)
index 0000000..599f516
--- /dev/null
@@ -0,0 +1,71 @@
+/*\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.structurestyle.updateintent;\r
+import org.opendaylight.nemo.user.vnspacemanager.structurestyle.updateintent.UpdateFlow;\r
+\r
+import static org.mockito.Mockito.mock;\r
+import static org.mockito.Mockito.*;\r
+import org.junit.Assert;\r
+import org.junit.Before;\r
+import org.junit.Test;\r
+\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.nemo.user.tenantmanager.TenantManage;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.UserId;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.Users;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.Objects;\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.intent.rev151010.user.intent.objects.FlowBuilder;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.objects.FlowKey;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.users.User;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.users.UserKey;\r
+import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;\r
+import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;\r
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;\r
+import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException;\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 org.slf4j.Logger;\r
+import org.slf4j.LoggerFactory;\r
+\r
+public class UpdateFlowTest {\r
+\r
+    private UpdateFlow updateFlow;\r
+\r
+    private DataBroker dataBroker;\r
+    private TenantManage tenantManage;\r
+    private UserId userId;\r
+    private Flow flow;\r
+    \r
+    @org.junit.Before\r
+    public void setUp() throws Exception {\r
+        dataBroker = mock(DataBroker.class);\r
+        tenantManage = mock(TenantManage.class);\r
+        userId = mock(UserId.class);\r
+        flow = mock(Flow.class);\r
+        \r
+        updateFlow = new UpdateFlow(dataBroker, tenantManage);\r
+    }\r
+\r
+    @org.junit.Test\r
+    public void testFlowHandling() throws Exception {\r
+       \r
+       String errorDefinition = new String("The match item has not been defined.");\r
+       \r
+       CheckedFuture connectiondefinitionFuture = 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(connectiondefinitionFuture); \r
+         \r
+       Assert.assertEquals(updateFlow.FlowHandling(userId,flow),errorDefinition);\r
+       \r
+    }\r
+}
\ No newline at end of file
diff --git a/nemo-impl/src/test/java/org/opendaylight/nemo/user/vnspacemanager/structurestyle/updateintent/UpdateIntentTest.java b/nemo-impl/src/test/java/org/opendaylight/nemo/user/vnspacemanager/structurestyle/updateintent/UpdateIntentTest.java
new file mode 100644 (file)
index 0000000..48efaca
--- /dev/null
@@ -0,0 +1,70 @@
+/*
+ * 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.structurestyle.updateintent;
+import  org.opendaylight.nemo.user.vnspacemanager.structurestyle.updateintent.UpdateIntent;
+
+import org.opendaylight.nemo.user.tenantmanager.TenantManage;
+import org.opendaylight.nemo.user.vnspacemanager.structurestyle.updateintent.UpdateIntent;
+import org.opendaylight.controller.md.sal.binding.api.DataBroker;
+import org.opendaylight.nemo.user.tenantmanager.AAA;
+import org.opendaylight.nemo.user.tenantmanager.TenantManage;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.StructureStyleNemoUpdateInput;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.Results;
+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.intent.rev151010.user.intent.objects.Flow;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.objects.Node;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.operations.Operation;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.*;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+public class UpdateIntentTest {
+
+
+    UpdateIntent updateIntent;
+    private DataBroker dataBroker;
+    private TenantManage tenantManage;
+    private UpdateNode updateNode;
+    private UpdateConnection updateConnection;
+    private UpdateFlow updateFlow;
+    private UpdateOperation updateOperation;
+    private UpdateResult updateResult;
+    private AAA aaa;
+    private StructureStyleNemoUpdateInput structureStyleNemoUpdateInput;
+
+
+    @org.junit.Before
+    public void setUp() throws Exception {
+
+        dataBroker = mock(DataBroker.class);
+        tenantManage = mock(TenantManage.class);
+        updateNode = mock(UpdateNode.class);
+        updateConnection = mock(UpdateConnection.class);
+        updateFlow = mock(UpdateFlow.class);
+        updateOperation = mock(UpdateOperation.class);
+        updateResult = mock(UpdateResult.class);
+        aaa = mock(AAA.class);
+        structureStyleNemoUpdateInput = mock(StructureStyleNemoUpdateInput.class);
+        
+        updateIntent = new UpdateIntent(dataBroker, tenantManage);
+    }
+
+    @org.junit.Test
+    public void testUpdateIntent() throws Exception {
+       
+       String erroInfo = new String("Case 0");
+       when(aaa.checkUser(structureStyleNemoUpdateInput.getUserId())).thenReturn(erroInfo);
+       Assert.assertEquals(updateIntent.updateIntent(aaa,structureStyleNemoUpdateInput),erroInfo);
+       
+       when(structureStyleNemoUpdateInput.getObjects()).thenReturn(null);
+       
+        Assert.assertNotNull(updateIntent.updateIntent(aaa,structureStyleNemoUpdateInput));
+    }
+}
\ No newline at end of file
diff --git a/nemo-impl/src/test/java/org/opendaylight/nemo/user/vnspacemanager/structurestyle/updateintent/UpdateNodeTest.java b/nemo-impl/src/test/java/org/opendaylight/nemo/user/vnspacemanager/structurestyle/updateintent/UpdateNodeTest.java
new file mode 100644 (file)
index 0000000..70e3515
--- /dev/null
@@ -0,0 +1,72 @@
+/*\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.structurestyle.updateintent;\r
+import org.opendaylight.nemo.user.vnspacemanager.structurestyle.updateintent.UpdateNode;\r
+\r
+import static org.mockito.Mockito.mock;\r
+import static org.mockito.Mockito.*;\r
+import org.junit.Assert;\r
+import org.junit.Before;\r
+import org.junit.Test;\r
+import junit.framework.TestCase;\r
+\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.common.api.data.LogicalDatastoreType;\r
+import org.opendaylight.nemo.user.tenantmanager.TenantManage;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.UserId;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.Users;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.Objects;\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.intent.rev151010.user.intent.objects.NodeBuilder;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.objects.NodeKey;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.users.User;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.users.UserKey;\r
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;\r
+import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException;\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 org.slf4j.Logger;\r
+import org.slf4j.LoggerFactory;\r
+import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;\r
+\r
+public class UpdateNodeTest {\r
+\r
+    private UpdateNode updateNode;\r
+\r
+    private DataBroker dataBroker;\r
+    private TenantManage tenantManage;\r
+    private UserId userId;\r
+    private Node node;\r
+    \r
+    @org.junit.Before\r
+    public void setUp() throws Exception {\r
+        dataBroker = mock(DataBroker.class);\r
+        tenantManage = mock(TenantManage.class);\r
+        userId = mock(UserId.class);\r
+        node = mock(Node.class);\r
+        \r
+        updateNode = new UpdateNode(dataBroker, tenantManage);\r
+\r
+    }\r
+\r
+    @org.junit.Test\r
+    public void testNodeHandling() throws Exception {\r
+       \r
+       String errorDefinition = new String("This type of Node has not been defined.");\r
+       \r
+       CheckedFuture connectiondefinitionFuture = 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(connectiondefinitionFuture); \r
+\r
+       Assert.assertEquals(updateNode.NodeHandling(userId,node),errorDefinition);\r
+       \r
+    }\r
+}
\ No newline at end of file
diff --git a/nemo-impl/src/test/java/org/opendaylight/nemo/user/vnspacemanager/structurestyle/updateintent/UpdateOperationTest.java b/nemo-impl/src/test/java/org/opendaylight/nemo/user/vnspacemanager/structurestyle/updateintent/UpdateOperationTest.java
new file mode 100644 (file)
index 0000000..c5070c3
--- /dev/null
@@ -0,0 +1,107 @@
+/*
+ * 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.structurestyle.updateintent;
+import org.opendaylight.nemo.user.vnspacemanager.structurestyle.updateintent.UpdateOperation;
+
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.*;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+import org.opendaylight.yangtools.yang.binding.DataObject;
+import org.opendaylight.controller.md.sal.binding.api.DataBroker;
+import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
+import org.opendaylight.nemo.user.tenantmanager.TenantManage;
+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.Users;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.engine.common.rev151010.PhysicalHostId;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.engine.common.rev151010.PhysicalNodeId;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.engine.common.rev151010.VirtualNodeId;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.Objects;
+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.intent.rev151010.user.intent.objects.Flow;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.objects.Node;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.Operations;
+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.intent.rev151010.user.intent.operations.OperationBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.operations.OperationKey;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.users.User;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.users.UserKey;
+import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
+import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.*;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.physical.network.rev151010.physical.network.physical.hosts.PhysicalHost;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.networks.virtual.network.virtual.links.VirtualLink;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.networks.virtual.network.virtual.nodes.VirtualNode;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.intent.mapping.result.rev151010.intent.vn.mapping.results.user.intent.vn.mapping.IntentVnMappingResult;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.intent.mapping.result.rev151010.intent.vn.mapping.results.user.intent.vn.mapping.intent.vn.mapping.result.VirtualResource;
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException;
+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.object.rev151010.flow.instance.MatchItem;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.node.instance.Property;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.node.instance.SubNode;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.property.instance.property.values.StringValue;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.operation.rev151010.operation.instance.Action;
+
+import com.google.common.util.concurrent.CheckedFuture;
+import com.google.common.util.concurrent.FutureCallback;
+import com.google.common.util.concurrent.Futures;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;
+
+public class UpdateOperationTest {
+
+    private UpdateOperation updateOperation;
+
+    private DataBroker dataBroker;
+    private TenantManage tenantManage;
+    private UserId userId;
+    private Operation operation;
+    
+    @org.junit.Before
+    public void setUp() throws Exception {
+        dataBroker = mock(DataBroker.class);
+        tenantManage = mock(TenantManage.class);
+        userId = mock(UserId.class);
+        operation = mock(Operation.class);
+        
+        updateOperation = new UpdateOperation(dataBroker, tenantManage);
+
+    }
+    
+    @org.junit.Test
+    public void testOperationHandling() throws Exception {
+       
+       CheckedFuture operationdefinitionFuture = mock(CheckedFuture.class);
+        ReadOnlyTransaction readOnlyTransaction = mock(ReadOnlyTransaction.class);
+        when(dataBroker.newReadOnlyTransaction()).thenReturn(readOnlyTransaction);
+        when(readOnlyTransaction.read(any(LogicalDatastoreType.class), any(InstanceIdentifier.class))).thenReturn(operationdefinitionFuture); 
+       Assert.assertEquals(updateOperation.OperationHandling(userId,operation),"The action type has not been defined.");
+       
+       
+       when(operation.getAction()).thenReturn(null);
+       when(operation.getConditionSegment()).thenReturn(null);
+       
+       ObjectId objectId = mock(ObjectId.class);
+       when(operation.getTargetObject()).thenReturn(objectId);
+       
+       Assert.assertEquals(updateOperation.OperationHandling(userId,operation),"The target object is not exist.");
+       
+       when(operation.getTargetObject()).thenReturn(null);
+       
+       WriteTransaction writeTransaction = mock(WriteTransaction.class);
+       when(dataBroker.newWriteOnlyTransaction()).thenReturn(writeTransaction);
+       
+       Assert.assertEquals(updateOperation.OperationHandling(userId,operation),"The target should not be empty.");
+       
+    }
+}
\ No newline at end of file
diff --git a/nemo-impl/src/test/java/org/opendaylight/nemo/user/vnspacemanager/structurestyle/updateintent/UpdateResultTest.java b/nemo-impl/src/test/java/org/opendaylight/nemo/user/vnspacemanager/structurestyle/updateintent/UpdateResultTest.java
new file mode 100644 (file)
index 0000000..384b3ed
--- /dev/null
@@ -0,0 +1,70 @@
+/*\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.structurestyle.updateintent;\r
+import org.opendaylight.nemo.user.vnspacemanager.structurestyle.updateintent.UpdateResult;\r
+\r
+import static org.mockito.Mockito.mock;\r
+import static org.mockito.Mockito.*;\r
+import org.junit.Assert;\r
+import org.junit.Before;\r
+import org.junit.Test;\r
+\r
+import org.opendaylight.controller.md.sal.binding.api.DataBroker;\r
+import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;\r
+import org.opendaylight.nemo.user.tenantmanager.TenantManage;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.UserId;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.Users;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.Operations;\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.intent.rev151010.user.intent.operations.OperationBuilder;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.operations.OperationKey;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.users.User;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.users.UserKey;\r
+import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;\r
+import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;\r
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;\r
+import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException;\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 org.slf4j.Logger;\r
+import org.slf4j.LoggerFactory;\r
+import org.opendaylight.controller.md.sal.binding.api.DataBroker;\r
+import org.opendaylight.nemo.user.tenantmanager.TenantManage;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.UserId;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.Results;\r
+\r
+\r
+public class UpdateResultTest {\r
+\r
+    private UpdateResult updateResult;\r
+\r
+    private DataBroker dataBroker;\r
+    private TenantManage tenantManage;\r
+    private UserId userId;\r
+    private Results results;\r
+    \r
+    @org.junit.Before\r
+    public void setUp() throws Exception {\r
+        dataBroker = mock(DataBroker.class);\r
+        tenantManage = mock(TenantManage.class);\r
+\r
+        userId = mock(UserId.class);\r
+        results = mock(Results.class);\r
+        \r
+        updateResult = new UpdateResult(dataBroker, tenantManage);\r
+\r
+    }\r
+\r
+    @org.junit.Test\r
+    public void testResultHandling() throws Exception {\r
+       \r
+        Assert.assertNull(updateResult.ResultHandling(userId, results));\r
+\r
+    }\r
+}
\ No newline at end of file