Added one test file and Modified one test file 82/32182/1
authorsaomenmen <zhangmroy@163.com>
Sun, 3 Jan 2016 08:29:17 +0000 (16:29 +0800)
committersaomenmen <zhangmroy@163.com>
Sun, 3 Jan 2016 08:30:24 +0000 (16:30 +0800)
Change-Id: Icdbc41b4aa76d973514770f5f7c8ca6d625edd69
Signed-off-by: saomenmen <zhangmroy@163.com>
nemo-impl/src/test/java/org/opendaylight/nemo/user/vnspacemanager/languagestyle/NEMOParse/NEMOparserTest.java
nemo-impl/src/test/java/org/opendaylight/nemo/user/vnspacemanager/structurestyle/updateintent/UpdateTemplateInstanceTest.java [new file with mode: 0644]

index 6978ebc739419aafd7fc5a1d917a31f7fe2c5719..697e3c880e3dfa850feb49155636514882f64123 100644 (file)
@@ -6,15 +6,14 @@
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
 /* Generated By:JavaCC: Do not edit this line. NEMOparser.java */
-package user.vnspacemanager.languagestyle.NEMOParse;
+package org.opendaylight.nemo.user.vnspacemanager.languagestyle.NEMOParse;
 
 import junit.framework.TestCase;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.*;
+import org.junit.runner.RunWith;
 import org.opendaylight.nemo.user.vnspacemanager.languagestyle.NEMOParse.NEMOparser;
-import org.opendaylight.nemo.user.vnspacemanager.languagestyle.NEMOParse.NEMOparserTokenManager;
-import org.opendaylight.nemo.user.vnspacemanager.languagestyle.NEMOParse.SimpleCharStream;
+
+import static org.junit.Assert.*;
 import org.opendaylight.nemo.user.vnspacemanager.languagestyle.updateintentlang.UpdateNodeLang;
 import org.opendaylight.nemo.user.vnspacemanager.languagestyle.updateintentlang.UpdateConnectionLang;
 import org.opendaylight.nemo.user.vnspacemanager.languagestyle.updateintentlang.UpdateFlowLang;
@@ -25,161 +24,108 @@ import org.opendaylight.nemo.user.vnspacemanager.languagestyle.deleteintentlang.
 import org.opendaylight.nemo.user.vnspacemanager.languagestyle.deleteintentlang.DeleteOperationLang;
 import org.opendaylight.nemo.user.vnspacemanager.languagestyle.Query;
 import org.opendaylight.nemo.user.vnspacemanager.languagestyle.NEMOConstants;
+import org.opendaylight.nemo.user.vnspacemanager.languagestyle.updateintentlang.UpdateTemplateDefinitionLang;
 
 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.UserId;
 
-import java.io.IOException;
 import java.io.InputStream;
 import java.io.Reader;
 import java.lang.reflect.Field;
-import java.lang.reflect.Method;
 import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.ArrayList;
 import java.io.StringReader;
-import static org.junit.Assert.*;
 import static org.mockito.Mockito.*;
+import org.powermock.api.mockito.PowerMockito;
+import org.powermock.api.support.membermodification.MemberMatcher;
+import org.powermock.api.support.membermodification.MemberModifier;
+import org.powermock.core.classloader.annotations.PrepareForTest;
+import org.powermock.modules.junit4.PowerMockRunner;
 /**
- * Created by zhangmeng on 2015/12/16.
+ * Created by zhangmeng on 2016/1/5.
  */
+@RunWith(PowerMockRunner.class)
+@PrepareForTest({NEMOparser.class,SimpleCharStream.class,NEMOparserTokenManager.class})
 public class NEMOparserTest extends TestCase {
-    private InputStream inputStream;
-    private Reader reader;
-    private Reader reader_empty;
-    private NEMOparserTokenManager nemOparserTokenManager;
-    private NEMOparser nemOparser;
     private Class<NEMOparser> class1;
-    private Class<NEMOparserTokenManager> nemOparserTokenManagerClass;
-    private Class<SimpleCharStream> simpleCharStreamClass;
-    private Field field_jj_initialized_once;
-    private Field field_token_source;
-    private Field field_jj_input_stream;
-    private Method method_ReInit_SimpleCharStreamClass;
-    private Method method_ReInit_NEMOparserTokenManager;
+    private Class<SimpleCharStream> class2;
+    private Class<NEMOparserTokenManager> class3;
+    private java.io.InputStream inputStream;
+    private java.io.Reader reader;
+    private NEMOparser nemOparser;
+    private NEMOparserTokenManager nemOparserTokenManager;
+    private SimpleCharStream simpleCharStream;
+    private Field field_NemoParser_jj_initialized_once; //bool
+    private Field field_NemoParser_jj_input_stream; //SimpleCharStream
+    private Field field_NemoParser_token_source;//NEMOparserTokenManager
+    private Field field_SimpleCharStream_inputStream;  //reader
+    private Field field_NEMOparserTokenManager_input_stream; //SimpleCharStream
 
     @Before
     public void setUp() throws Exception {
-        class1 = NEMOparser.class;
-        nemOparserTokenManagerClass = NEMOparserTokenManager.class;
-        simpleCharStreamClass = SimpleCharStream.class;
-        field_jj_initialized_once = class1.getDeclaredField("jj_initialized_once");//Nemoparser
-        field_token_source = class1.getDeclaredField("token_source");//NEMOparserTokenManager
-        field_jj_input_stream = class1.getDeclaredField("jj_input_stream");//SimpleCharStream
-
-        field_token_source.setAccessible(true);
-        field_jj_input_stream.setAccessible(true);
-        field_jj_initialized_once.setAccessible(true);
-
-
-        method_ReInit_SimpleCharStreamClass = simpleCharStreamClass.getDeclaredMethod("ReInit", new Class[]{Reader.class, int.class, int.class, int.class});
-        method_ReInit_SimpleCharStreamClass.setAccessible(true);
-        method_ReInit_NEMOparserTokenManager = nemOparserTokenManagerClass.getDeclaredMethod("ReInit", new Class[]{SimpleCharStream.class});
-        method_ReInit_NEMOparserTokenManager.setAccessible(true);
-
-        inputStream = new InputStream() {
-            @Override
-            public int read() throws IOException {
-                return 0;
-            }
-        };
-        reader = new Reader() {
-            @Override
-            public int read(char[] cbuf, int off, int len) throws IOException {
-                return 0;
-            }
-
-            @Override
-            public void close() throws IOException {
-
-            }
-        };
-        reader_empty = null;
+        inputStream = mock(InputStream.class);
+        reader = mock(Reader.class);
         nemOparserTokenManager = mock(NEMOparserTokenManager.class);
+        simpleCharStream = mock(SimpleCharStream.class);
+
+        class1 = NEMOparser.class;
+        class2 = SimpleCharStream.class;
+        class3 = NEMOparserTokenManager.class;
+
+        field_NemoParser_jj_initialized_once = class1.getDeclaredField("jj_initialized_once");//bool
+        field_NemoParser_jj_input_stream = class1.getDeclaredField("jj_input_stream"); //SimpleCharStream
+        field_NemoParser_token_source = class1.getDeclaredField("token_source"); //NEMOparserTokenManager
+        field_SimpleCharStream_inputStream = class2.getDeclaredField("inputStream"); // reader
+        field_NEMOparserTokenManager_input_stream = class3.getDeclaredField("input_stream"); //SimpleCharStream
+
+        field_NemoParser_jj_input_stream.setAccessible(true);
+        field_SimpleCharStream_inputStream.setAccessible(true);
+        field_NEMOparserTokenManager_input_stream.setAccessible(true);
+        field_NemoParser_jj_initialized_once.setAccessible(true);
+        field_NemoParser_token_source.setAccessible(true);
+
+        field_NemoParser_jj_initialized_once.set(class1, false);
+        field_NEMOparserTokenManager_input_stream.set(class3, null);
+        field_SimpleCharStream_inputStream.set(class2, null);
+    }
+    @After
+    public void teardown() throws Exception{
+        field_NemoParser_jj_initialized_once.set(class1,false);
+        field_NEMOparserTokenManager_input_stream.set(class3,null);
+        field_SimpleCharStream_inputStream.set(class2,null);
     }
 
     @Test
-    public void testInit() throws Exception{
-        Field field = simpleCharStreamClass.getDeclaredField("inputStream");
-        Field field1 = nemOparserTokenManagerClass.getDeclaredField("input_stream");
-        Field field2 = class1.getDeclaredField("jj_initialized_once");
-        field2.setAccessible(true);
-        field1.setAccessible(true);
-        field.setAccessible(true);
-        field2.set(class1,false);
-        field.set(simpleCharStreamClass, null);
-        field1.set(nemOparserTokenManagerClass, null);
-        nemOparser = new NEMOparser(inputStream,null);
-        Assert.assertTrue(field_jj_input_stream.get(class1) instanceof SimpleCharStream);
-        Assert.assertTrue(field_token_source.get(class1) instanceof NEMOparserTokenManager);
-        method_ReInit_SimpleCharStreamClass.invoke(field_jj_input_stream.get(class1), null, 1, 1, 1);
-        NEMOparserTokenManager.ReInit(null);
-        field_jj_initialized_once.set(class1, false);
-        Assert.assertTrue((Boolean) field_jj_initialized_once.get(class1) == false);
-
-        field.set(simpleCharStreamClass,null);
-        field1.set(nemOparserTokenManagerClass, null);
-        nemOparser = new NEMOparser(inputStream);
-        method_ReInit_SimpleCharStreamClass.invoke(field_jj_input_stream.get(class1), null, 1, 1, 1);
-        NEMOparserTokenManager.ReInit(null);
-        field_jj_initialized_once.set(class1, false);
-
-        field.set(simpleCharStreamClass, null);
-        field1.set(nemOparserTokenManagerClass,null);
-        nemOparser = new NEMOparser(nemOparserTokenManager);
-        method_ReInit_SimpleCharStreamClass.invoke(field_jj_input_stream.get(class1), null, 1, 1, 1);
-        NEMOparserTokenManager.ReInit(null);
-        field_jj_initialized_once.set(class1, false);
+    public void testInit_ReInit() throws Exception{
 
-        field.set(simpleCharStreamClass,null);
-        field1.set(nemOparserTokenManagerClass,null);
+        nemOparser = new NEMOparser(inputStream);
+        field_NemoParser_jj_input_stream.set(nemOparser, simpleCharStream);
+        field_NemoParser_token_source.set(nemOparser, nemOparserTokenManager);
+        doNothing().when(simpleCharStream).ReInit(any(InputStream.class), any(String.class), any(int.class), any(int.class));
+        //doNothing().when(nemOparserTokenManager).ReInit(any(SimpleCharStream.class));
+        nemOparser.ReInit(inputStream);
+        verify(simpleCharStream).ReInit(inputStream, null, 1, 1);
+
+        field_NemoParser_jj_initialized_once.set(class1, false);
+        field_NEMOparserTokenManager_input_stream.set(class3, null);
+        field_SimpleCharStream_inputStream.set(class2,null);
         nemOparser = new NEMOparser(reader);
-        method_ReInit_SimpleCharStreamClass.invoke(field_jj_input_stream.get(class1), null, 1, 1, 1);
-        NEMOparserTokenManager.ReInit(null);
-        field_jj_initialized_once.set(class1, false);
-
-        nemOparser.ReInit(nemOparserTokenManager);
-        NEMOparser.ReInit(inputStream);
-        NEMOparser.ReInit(inputStream, null);
-        NEMOparser.ReInit(reader_empty);
-        method_ReInit_SimpleCharStreamClass.invoke(field_jj_input_stream.get(class1), null, 1, 1, 1);
-        NEMOparserTokenManager.ReInit(null);
-        field_jj_initialized_once.set(class1, false);
+        field_NemoParser_jj_input_stream.set(nemOparser, simpleCharStream);
+        doNothing().when(simpleCharStream).ReInit(any(Reader.class), any(int.class), any(int.class));
+        nemOparser.ReInit(reader);
+        verify(simpleCharStream).ReInit(any(Reader.class), any(int.class), any(int.class));
     }
 
-//    @Test
-//    public void testParseNEMO() throws Exception {
-//        UserId userId = mock(UserId.class);
-//        DataBroker dataBroker = mock(DataBroker.class);
-//        TenantManage tenantManage = mock(TenantManage.class);
-//
-//        nemOparser = new NEMOparser(inputStream);
-////        nemOparser.parseNEMO(userId,strNEMO,dataBroker,tenantManage);
-//
-//
-//        method_ReInit_SimpleCharStreamClass.invoke(field_jj_input_stream.get(class1), null, 1, 1, 1);
-//        NEMOparserTokenManager.ReInit(null);
-//        field_jj_initialized_once.set(class1, false);
-//    }
+    @Test
+    public void testParseNEMO() throws Exception {
+
+    }
 
     @Test
     public void testNEMO() throws Exception {
-//        UserId userId = mock(UserId.class);
-//        DataBroker dataBroker = mock(DataBroker.class);
-//        TenantManage tenantManage = mock(TenantManage.class);
-//
-//        nemOparser = new NEMOparser(inputStream);
-//        Field field_jj_ntk = class1.getDeclaredField("jj_ntk");
-//        field_jj_ntk.setAccessible(true);
-//        field_jj_ntk.set(class1, 25);
-//
-//        System.out.println("jj_ntk:" + field_jj_ntk.get(class1));
-//
-//        NEMOparser.NEMO(userId,dataBroker,tenantManage);
-//        method_ReInit_SimpleCharStreamClass.invoke(field_jj_input_stream.get(class1), null, 1, 1, 1);
-//        NEMOparserTokenManager.ReInit(null);
-//        field_jj_initialized_once.set(class1, false);
+
     }
 
     @Test
@@ -198,67 +144,480 @@ public class NEMOparserTest extends TestCase {
     }
 
     @Test
-    public void testDeleteNode() throws Exception {
+    public void testUpdateConnection() throws Exception {
 
     }
 
     @Test
-    public void testUpdateConnection() throws Exception {
+    public void testUpdateFlow() throws Exception {
 
     }
 
     @Test
-    public void testDeleteConnection() throws Exception {
+    public void testUpdateOperation() throws Exception {
 
     }
 
     @Test
-    public void testUpdateFlow() throws Exception {
+    public void testNodeModel() throws Exception {
 
     }
 
     @Test
-    public void testDeleteFlow() throws Exception {
+    public void testAbstractNode() throws Exception {
 
     }
 
     @Test
-    public void testUpdateOperation() throws Exception {
+    public void testAbstractConnection() throws Exception {
 
     }
 
     @Test
-    public void testDeleteOperation() throws Exception {
+    public void testAbstractFlow() throws Exception {
 
     }
 
+    @Test
+    public void testAbstractOperation() throws Exception {
+//        NEMOparser.abstractConnection();
+    }
+
+    @Test
+    public void testDeleteNode() throws Exception {
+        UserId userId = mock(UserId.class);
+        DataBroker dataBroker = mock(DataBroker.class);
+        TenantManage tenantManage = mock(TenantManage.class);
+
+        Field field_token = class1.getDeclaredField("token");
+        field_token.setAccessible(true);
+
+        Token token1 = new Token();
+        Token token2 = new Token();
+        Token token3 = new Token();
+        token1.next = token2;
+        token1.kind = token2.kind = 56;
+        token1.image = token2.image = token3.image = "test";
+        token3.kind = 7;
+
+        field_token.set(class1, token1);
+
+        //get into method "jj_consume_token" arg(56)
+        //returned token2
+        //get into method "jj_consume_token" arg(7) token = token2
+        PowerMockito.mockStatic(NEMOparserTokenManager.class);
+        PowerMockito.when(NEMOparserTokenManager.getNextToken()).thenReturn(token3);
+        //returned token3  token = token3
+        //get into method "DeleteOperationHandling" args(userid,0)
+        when(tenantManage.getObjectId(userId,"test")).thenReturn(null);
+        Assert.assertTrue(NEMOparser.DeleteNode(userId, dataBroker, tenantManage).equals("The node " + "test" + " is not exist."));
+    }
+
+    @Test
+    public void testDeleteConnection() throws Exception {
+        UserId userId = mock(UserId.class);
+        DataBroker dataBroker = mock(DataBroker.class);
+        TenantManage tenantManage = mock(TenantManage.class);
+
+        Field field_token = class1.getDeclaredField("token");
+        field_token.setAccessible(true);
+
+        Token token1 = new Token();
+        Token token2 = new Token();
+        Token token3 = new Token();
+        token1.next = token2;
+        token1.kind = token2.kind = 56;
+        token1.image = token2.image = token3.image = "test";
+        token3.kind = 7;
+
+        field_token.set(class1, token1);
+
+        //get into method "jj_consume_token" arg(56)
+        //returned token2
+        //get into method "jj_consume_token" arg(7) token = token2
+        PowerMockito.mockStatic(NEMOparserTokenManager.class);
+        PowerMockito.when(NEMOparserTokenManager.getNextToken()).thenReturn(token3);
+        //returned token3  token = token3
+        //get into method "DeleteOperationHandling" args(userid,0)
+        when(tenantManage.getObjectId(userId,"test")).thenReturn(null);
+        Assert.assertTrue(NEMOparser.DeleteConnection(userId, dataBroker, tenantManage).equals("The connection " + "test" + " is not exist."));
+    }
+
+    @Test
+    public void testDeleteFlow() throws Exception {
+        UserId userId = mock(UserId.class);
+        DataBroker dataBroker = mock(DataBroker.class);
+        TenantManage tenantManage = mock(TenantManage.class);
+
+        Field field_token = class1.getDeclaredField("token");
+        field_token.setAccessible(true);
+
+        Token token1 = new Token();
+        Token token2 = new Token();
+        Token token3 = new Token();
+        token1.next = token2;
+        token1.kind = token2.kind = 56;
+        token1.image = token2.image = token3.image = "test";
+        token3.kind = 7;
+
+        field_token.set(class1, token1);
+
+        //get into method "jj_consume_token" arg(56)
+        //returned token2
+        //get into method "jj_consume_token" arg(7) token = token2
+        PowerMockito.mockStatic(NEMOparserTokenManager.class);
+        PowerMockito.when(NEMOparserTokenManager.getNextToken()).thenReturn(token3);
+        //returned token3  token = token3
+        //get into method "DeleteOperationHandling" args(userid,0)
+        when(tenantManage.getObjectId(userId,"test")).thenReturn(null);
+        Assert.assertTrue(NEMOparser.DeleteFlow(userId, dataBroker, tenantManage).equals("The flow " + "test" + " is not exist."));
+    }
+
+    @Test
+    public void testDeleteOperation() throws Exception {
+        UserId userId = mock(UserId.class);
+        DataBroker dataBroker = mock(DataBroker.class);
+        TenantManage tenantManage = mock(TenantManage.class);
+
+        Field field_token = class1.getDeclaredField("token");
+        field_token.setAccessible(true);
+
+        Token token1 = new Token();
+        Token token2 = new Token();
+        Token token3 = new Token();
+        token1.next = token2;
+        token1.kind = token2.kind = 56;
+        token1.image = token2.image = token3.image = "test";
+        token3.kind = 7;
+
+        field_token.set(class1, token1);
+
+        //get into method "jj_consume_token" arg(56)
+        //returned token2
+        //get into method "jj_consume_token" arg(7) token = token2
+        PowerMockito.mockStatic(NEMOparserTokenManager.class);
+        PowerMockito.when(NEMOparserTokenManager.getNextToken()).thenReturn(token3);
+        //returned token3  token = token3
+        //get into method "DeleteOperationHandling" args(userid,0)
+        when(tenantManage.getObjectId(userId,"test")).thenReturn(null);
+        Assert.assertTrue(NEMOparser.DeleteOperation(userId, dataBroker, tenantManage).equals("The operation " + "test" + " is not exist."));
+    }
+
     @Test
     public void testQuery() throws Exception {
+        UserId userId = mock(UserId.class);
+        DataBroker dataBroker = mock(DataBroker.class);
+        TenantManage tenantManage = mock(TenantManage.class);
+
+        Field field_jj_ntk = class1.getDeclaredField("jj_ntk");
+        field_jj_ntk.setAccessible(true);
+        Field field_token = class1.getDeclaredField("token");
+        field_token.setAccessible(true);
+
+        Token token1 = new Token();
+        Token token2 = new Token();
+        Token token3 = new Token();
+        token1.next = token2;
+        token2.next = token3;
+        token3.kind = NEMOparserConstants.SEMICOLON;
+
+        token2.kind = NEMOparserConstants.TYPE;
+        token2.image = "1";
+        field_token.set(class1,token1);
+        field_jj_ntk.set(class1, NEMOparserConstants.TYPE);
+        Assert.assertTrue(NEMOparser.Query(userId,dataBroker,tenantManage).equals("The item is not supported."));
+
+        token2.kind = NEMOparserConstants.CONTAIN;
+        token2.image = "2";
+        field_token.set(class1,token1);
+        field_jj_ntk.set(class1, NEMOparserConstants.CONTAIN);
+        Assert.assertTrue(NEMOparser.Query(userId,dataBroker,tenantManage).equals("The item is not supported."));
+
+        token2.kind = NEMOparserConstants.PROPERTY;
+        token2.image = "2";
+        field_token.set(class1,token1);
+        field_jj_ntk.set(class1, NEMOparserConstants.PROPERTY);
+        Assert.assertTrue(NEMOparser.Query(userId,dataBroker,tenantManage).equals("The item is not supported."));
+
+        token2.kind = NEMOparserConstants.ENDNODES;
+        token2.image = "2";
+        field_token.set(class1,token1);
+        field_jj_ntk.set(class1, NEMOparserConstants.ENDNODES);
+        Assert.assertTrue(NEMOparser.Query(userId,dataBroker,tenantManage).equals("The item is not supported."));
+
+        token2.kind = NEMOparserConstants.MATCH;
+        token2.image = "2";
+        field_token.set(class1,token1);
+        field_jj_ntk.set(class1, NEMOparserConstants.MATCH);
+        Assert.assertTrue(NEMOparser.Query(userId,dataBroker,tenantManage).equals("The item is not supported."));
+
+        token2.kind = NEMOparserConstants.PRIORITY;
+        token2.image = "2";
+        field_token.set(class1,token1);
+        field_jj_ntk.set(class1, NEMOparserConstants.PRIORITY);
+        Assert.assertTrue(NEMOparser.Query(userId,dataBroker,tenantManage).equals("The item is not supported."));
+
+        token2.kind = NEMOparserConstants.TARGET;
+        token2.image = "2";
+        field_token.set(class1,token1);
+        field_jj_ntk.set(class1, NEMOparserConstants.TARGET);
+        Assert.assertTrue(NEMOparser.Query(userId,dataBroker,tenantManage).equals("The item is not supported."));
+
+        token2.kind = NEMOparserConstants.CONDITION;
+        token2.image = "2";
+        field_token.set(class1,token1);
+        field_jj_ntk.set(class1, NEMOparserConstants.CONDITION);
+        Assert.assertTrue(NEMOparser.Query(userId,dataBroker,tenantManage).equals("The item is not supported."));
+
+        token2.kind = NEMOparserConstants.ACTION;
+        token2.image = "2";
+        field_token.set(class1,token1);
+        field_jj_ntk.set(class1, NEMOparserConstants.ACTION);
+        Assert.assertTrue(NEMOparser.Query(userId,dataBroker,tenantManage).equals("The item is not supported."));
+
+        token2.kind = NEMOparserConstants.ID;
+        token2.image = "2";
+        field_token.set(class1,token1);
+        field_jj_ntk.set(class1, NEMOparserConstants.ID);
+        Assert.assertTrue(NEMOparser.Query(userId,dataBroker,tenantManage).equals("The item is not supported."));
+
+        token2.kind = NEMOparserConstants.NODES;
+        token2.image = "2";
+        field_token.set(class1,token1);
+        field_jj_ntk.set(class1, NEMOparserConstants.NODES);
+        Assert.assertTrue(NEMOparser.Query(userId,dataBroker,tenantManage).equals("The item is not supported."));
+
+        token2.kind = NEMOparserConstants.CONNECTIONS;
+        token2.image = "2";
+        field_token.set(class1,token1);
+        field_jj_ntk.set(class1, NEMOparserConstants.CONNECTIONS);
+        Assert.assertTrue(NEMOparser.Query(userId,dataBroker,tenantManage).equals("The item is not supported."));
+
+        token2.kind = NEMOparserConstants.FLOWS;
+        token2.image = "2";
+        field_token.set(class1,token1);
+        field_jj_ntk.set(class1, NEMOparserConstants.FLOWS);
+        Assert.assertTrue(NEMOparser.Query(userId,dataBroker,tenantManage).equals("The item is not supported."));
+
+        token2.kind = NEMOparserConstants.OPERATIONS;
+        token2.image = "2";
+        field_token.set(class1,token1);
+        field_jj_ntk.set(class1, NEMOparserConstants.OPERATIONS);
+        Assert.assertTrue(NEMOparser.Query(userId,dataBroker,tenantManage).equals("The item is not supported."));
+    }
+
+    @Test
+    public void testConditionTarget() throws Exception {
+        Field field_jj_ntk = class1.getDeclaredField("jj_ntk");
+        field_jj_ntk.setAccessible(true);
+        Field field_token = class1.getDeclaredField("token");
+        field_token.setAccessible(true);
+
+        Token token1 = new Token();
+        Token token2 = new Token();
+        token1.next = token2;
+
+        token2.kind = NEMOparserConstants.ID;
+        token2.image = "1";
+        field_token.set(class1,token1);
+        field_jj_ntk.set(class1, NEMOparserConstants.ID);
+        Assert.assertTrue(NEMOparser.conditionTarget().containsKey("1"));
+
+        token2.kind = NEMOparserConstants.TIMEVAL;
+        token2.image = "2";
+        field_token.set(class1,token1);
+        field_jj_ntk.set(class1, NEMOparserConstants.TIMEVAL);
+        Assert.assertTrue(NEMOparser.conditionTarget().containsKey("2"));
+
+        token2.kind = NEMOparserConstants.FULLTIME;
+        token2.image = "3";
+        field_token.set(class1,token1);
+        field_jj_ntk.set(class1, NEMOparserConstants.FULLTIME);
+        Assert.assertTrue(NEMOparser.conditionTarget().containsKey("3"));
+
+        token2.kind = NEMOparserConstants.UNUMBER;
+        token2.image = "4";
+        field_token.set(class1,token1);
+        field_jj_ntk.set(class1, NEMOparserConstants.UNUMBER);
+        Assert.assertTrue(NEMOparser.conditionTarget().containsKey("4"));
+
+        //test case LPAREN
+        Token token = new Token();
+        Token token_LPAREN = new Token();
+        Token token_UNUMBER = new Token();
+        Token token_COMMA = new Token();
+        Token token_UNUMBER1 = new Token();
+        Token token_RPAREN = new Token();
+        //connect tokens
+        token.next = token_LPAREN;
+        token_LPAREN.next = token_UNUMBER;
+        token_UNUMBER.next = token_COMMA;
+        token_COMMA.next = token_UNUMBER1;
+        token_UNUMBER1.next = token_RPAREN;
+        token_RPAREN.next = null;
+        //attribute values
+        token_LPAREN.kind = NEMOparserConstants.LPAREN;
+        token_UNUMBER.kind = token_UNUMBER1.kind = NEMOparserConstants.UNUMBER;
+        token_COMMA.kind = NEMOparserConstants.COMMA;
+        token_RPAREN.kind = NEMOparserConstants.RPAREN;
+        token_UNUMBER.image = "zhangmeng";
+        token_UNUMBER.image = "zhangyuanyuan";
+
+
+        field_token.set(class1,token);
+        field_jj_ntk.set(class1, NEMOparserConstants.LPAREN);
+        Assert.assertTrue(NEMOparser.conditionTarget().containsValue("range"));
+
+//        PowerMockito.mockStatic(NEMOparserTokenManager.class);
+//        PowerMockito.when(NEMOparserTokenManager.getNextToken())
+//                .thenReturn()
+//                .thenReturn();
 
     }
 
     @Test
-    public void testGetNextToken() throws Exception {
+    public void testProperty() throws Exception {
+        Field field_jj_ntk = class1.getDeclaredField("jj_ntk");
+        field_jj_ntk.setAccessible(true);
+        Field field_token = class1.getDeclaredField("token");
+        field_token.setAccessible(true);
+
+        Token token1 = new Token();
+        Token token2 = new Token();
+        token1.next = token2;
+
+        token2.kind = NEMOparserConstants.ID;
+        token2.image = "1";
+        field_token.set(class1,token1);
+        field_jj_ntk.set(class1, NEMOparserConstants.ID);
+        Assert.assertTrue(NEMOparser.property().containsKey("1"));
+
+        token2.kind = NEMOparserConstants.ETHADDR;
+        token2.image = "2";
+        field_token.set(class1,token1);
+        field_jj_ntk.set(class1, NEMOparserConstants.ETHADDR);
+        Assert.assertTrue(NEMOparser.property().containsKey("2"));
+
+        token2.kind = NEMOparserConstants.IPV4PREF;
+        token2.image = "3";
+        field_token.set(class1,token1);
+        field_jj_ntk.set(class1, NEMOparserConstants.IPV4PREF);
+        Assert.assertTrue(NEMOparser.property().containsKey("3"));
+
+        token2.kind = NEMOparserConstants.IPV4ADDR;
+        token2.image = "4";
+        field_token.set(class1,token1);
+        field_jj_ntk.set(class1, NEMOparserConstants.IPV4ADDR);
+        Assert.assertTrue(NEMOparser.property().containsKey("4"));
+
+        token2.kind = NEMOparserConstants.TIMEVAL;
+        token2.image = "5";
+        field_token.set(class1,token1);
+        field_jj_ntk.set(class1, NEMOparserConstants.TIMEVAL);
+        Assert.assertTrue(NEMOparser.property().containsKey("5"));
+
+        token2.kind = NEMOparserConstants.FULLTIME;
+        token2.image = "6";
+        field_token.set(class1,token1);
+        field_jj_ntk.set(class1, NEMOparserConstants.FULLTIME);
+        Assert.assertTrue(NEMOparser.property().containsKey("6"));
+
+        token2.kind = NEMOparserConstants.TEMPID;
+        token2.image = "7";
+        field_token.set(class1,token1);
+        field_jj_ntk.set(class1, NEMOparserConstants.TEMPID);
+        Assert.assertTrue(NEMOparser.property().containsKey("7"));
+
+        token2.kind = NEMOparserConstants.UNUMBER;
+        token2.image = "8";
+        field_token.set(class1,token1);
+        field_jj_ntk.set(class1, NEMOparserConstants.UNUMBER);
+        Assert.assertTrue(NEMOparser.property().containsKey("8"));
 
     }
 
     @Test
-    public void testGetToken() throws Exception {
+    public void testNodeMultiProperty() throws Exception {
 
     }
 
     @Test
-    public void testGenerateParseException() throws Exception {
+    public void testReInit() throws Exception {
+        nemOparser = new NEMOparser(nemOparserTokenManager);
+        nemOparser.ReInit(nemOparserTokenManager);
+    }
+
+
+    @Test
+    public void testGetToken_GetNextToken() throws Exception {
+        Field field_token = class1.getDeclaredField("token");
+        field_token.setAccessible(true);
+
+        Token token1 = new Token();
+        Token token2 = new Token();
+        token1.next = token2;
 
+        field_token.set(class1, token1);
+
+        PowerMockito.mockStatic(NEMOparserTokenManager.class);
+        PowerMockito.when(NEMOparserTokenManager.getNextToken()).thenReturn(token1);
+
+        Assert.assertTrue(NEMOparser.getToken(2) == token1);
+        Assert.assertTrue(NEMOparser.getNextToken() == token2);
+        field_token.set(class1, token2);
+        Assert.assertTrue(NEMOparser.getNextToken() == token1);
     }
 
     @Test
-    public void testEnable_tracing() throws Exception {
+    public void testGenerateParseException() throws Exception {
+        Field field_jj_kind = class1.getDeclaredField("jj_kind");
+        field_jj_kind.setAccessible(true);
+        Field field_jj_la1 = class1.getDeclaredField("jj_la1");
+        field_jj_la1.setAccessible(true);
+        Field field_jj_gen = class1.getDeclaredField("jj_gen");
+        field_jj_gen.setAccessible(true);
+        Field field_jj_la1_0 = class1.getDeclaredField("jj_la1_0");
+        field_jj_la1_0.setAccessible(true);
+        Field field_jj_la1_1 = class1.getDeclaredField("jj_la1_1");
+        field_jj_la1_1.setAccessible(true);
+        Field field_jj_la1_2 = class1.getDeclaredField("jj_la1_2");
+        field_jj_la1_2.setAccessible(true);
+        Field field_token = class1.getDeclaredField("token");
+        field_token.setAccessible(true);
+
+        Token token1 = new Token();
+        Token token2 = new Token();
+        int jj_la1[] = new int[68];
+        int jj_la1_0[] = new int[100];
+        int jj_la1_1[] = new int[100];
+        int jj_la1_2[] = new int[100];
+        Assert.assertTrue(jj_la1_0[1] == 0);
+        for (int i = 0;i < 68;i++)
+            jj_la1[i] = 0;
+        jj_la1[0] = 1;
+        jj_la1_0[0] = 1;
+        jj_la1_1[0] = 1;
+        jj_la1_2[0] = 1;
+        token1.next = token2;
+
+        field_jj_kind.set(class1,0);
+        field_jj_gen.set(class1,1);
+        field_jj_la1.set(class1,jj_la1);
+        field_jj_la1_0.set(class1,jj_la1_0);
+        field_jj_la1_1.set(class1,jj_la1_1);
+        field_jj_la1_2.set(class1,jj_la1_2);
+        field_token.set(class1,token1);
+
+        Assert.assertTrue(NEMOparser.generateParseException() != null);
+    }
 
+    @Test
+    public void testEnable_tracing() throws Exception {
+        NEMOparser.enable_tracing();
     }
 
     @Test
     public void testDisable_tracing() throws Exception {
-
+        NEMOparser.disable_tracing();
     }
 }
\ No newline at end of file
diff --git a/nemo-impl/src/test/java/org/opendaylight/nemo/user/vnspacemanager/structurestyle/updateintent/UpdateTemplateInstanceTest.java b/nemo-impl/src/test/java/org/opendaylight/nemo/user/vnspacemanager/structurestyle/updateintent/UpdateTemplateInstanceTest.java
new file mode 100644 (file)
index 0000000..a990252
--- /dev/null
@@ -0,0 +1,761 @@
+/*\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 junit.framework.TestCase;\r
+import org.junit.Assert;\r
+import org.junit.Before;\r
+import org.junit.Test;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.operation.rev151010.action.instance.ParameterValues;\r
+import static org.junit.Assert.*;\r
+\r
+import static org.junit.Assert.*;\r
+import org.opendaylight.controller.md.sal.binding.api.DataBroker;\r
+import org.opendaylight.nemo.user.tenantmanager.TenantManage;\r
+import org.opendaylight.nemo.user.vnspacemanager.languagestyle.NEMOConstants;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.physical.network.rev151010.physical.network.physical.hosts.PhysicalHost;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.*;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.engine.common.rev151010.PhysicalHostId;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.engine.common.rev151010.PhysicalHostName;\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.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.user.intent.template.definitions.TemplateDefinition;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.template.instances.TemplateInstance;\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.object.rev151010.connection.instance.*;\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.MatchItemBuilder;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.flow.instance.MatchItemKey;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.match.item.instance.MatchItemValueBuilder;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.node.instance.Property;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.node.instance.SubNode;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.node.instance.SubNodeBuilder;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.node.instance.SubNodeKey;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.property.instance.PropertyValuesBuilder;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.property.instance.property.values.*;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.operation.rev151010.action.instance.ParameterValuesBuilder;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.operation.rev151010.condition.instance.ConditionSegment;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.operation.rev151010.condition.instance.ConditionSegmentBuilder;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.operation.rev151010.condition.instance.ConditionSegmentKey;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.operation.rev151010.condition.instance.condition.segment.ConditionParameterTargetValueBuilder;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.operation.rev151010.operation.instance.Action;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.operation.rev151010.operation.instance.ActionBuilder;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.operation.rev151010.operation.instance.ActionKey;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.template.rev151201.template.definition.grouping.TemplateParameter;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.template.rev151201.template.definition.grouping._abstract.intents.AbstractObjects;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.template.rev151201.template.definition.grouping._abstract.intents._abstract.objects.AbstractConnection;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.template.rev151201.template.definition.grouping._abstract.intents._abstract.objects.AbstractFlow;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.template.rev151201.template.definition.grouping._abstract.intents._abstract.objects.AbstractNode;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.template.rev151201.template.definition.grouping._abstract.intents._abstract.operations.AbstractOperation;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.template.rev151201.template.instance.grouping.template.parameter.parameter.values.IntValue;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.template.rev151201.template.definition.grouping.AbstractIntents;\r
+//import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.template.rev151201.template.definition.grouping.AbstractObjects;\r
+//import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.template.rev151201.template.definition.grouping.AbstractNode;\r
+\r
+import java.lang.String;\r
+import java.lang.reflect.Field;\r
+import java.lang.reflect.Method;\r
+import java.util.*;\r
+import java.util.ArrayList;\r
+import java.util.HashMap;\r
+import java.util.LinkedList;\r
+\r
+import static org.mockito.Mockito.*;\r
+/**\r
+ * Created by zhangmeng on 2015/12/30.\r
+ */\r
+public class UpdateTemplateInstanceTest extends TestCase {\r
+    private DataBroker dataBroker;\r
+    private TenantManage tenantManage;\r
+    private UpdateTemplateInstance updateTemplateInstance;\r
+    private Class<UpdateTemplateInstance> class1;\r
+    private Method method;\r
+    private Field field;\r
+    private TemplateInstance templateInstance;\r
+    private UserId userId;\r
+    //private TemplateDefinition templateDefinition;\r
+\r
+\r
+    @Before\r
+    public void setUp() throws Exception {\r
+        dataBroker = mock(DataBroker.class);\r
+        tenantManage = mock(TenantManage.class);\r
+        class1 = UpdateTemplateInstance.class;\r
+        updateTemplateInstance = new UpdateTemplateInstance(dataBroker,tenantManage);\r
+        templateInstance = mock(TemplateInstance.class);\r
+        userId = mock(UserId.class);\r
+        //templateDefinition = mock(TemplateDefinition.class);\r
+    }\r
+\r
+    @Test\r
+    public void testCheckTemplateInstance1() throws Exception {\r
+        //test if1\r
+        TemplateName templateName = new TemplateName("tename");\r
+        TemplateDefinition templateDefinition = mock(TemplateDefinition.class);\r
+        Map<TemplateName, TemplateDefinition> templateMap = new HashMap<TemplateName, TemplateDefinition>();\r
+        templateMap.put(templateName,templateDefinition);\r
+        when(tenantManage.getTempalteDefinition(userId)).thenReturn(templateMap);\r
+        when(templateInstance.getTemplateName()).thenReturn(templateName);\r
+        when(tenantManage.getTempalteDefinition(userId)).thenReturn(templateMap);\r
+        when(templateInstance.getTemplateName()).thenReturn(templateName);\r
+        //when(templateMap.containsKey(templateName)).thenReturn(true);\r
+\r
+        //test (definition!=null)\r
+        List<TemplateParameter> templateParameters = new ArrayList<TemplateParameter>();\r
+        TemplateParameter templateParameter = mock(TemplateParameter.class);\r
+        templateParameters.add(templateParameter);\r
+        when(templateDefinition.getTemplateParameter()).thenReturn(templateParameters);\r
+        ParameterName parameterName = new ParameterName("ParameterName");\r
+        when(templateParameter.getParameterName()).thenReturn(parameterName);\r
+        when(templateParameter.getParameterValueType()).thenReturn(TemplateParameter.ParameterValueType.Range);\r
+\r
+\r
+\r
+        List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.template.rev151201.template.instance.grouping.TemplateParameter> instanceParameters = new ArrayList<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.template.rev151201.template.instance.grouping.TemplateParameter>();\r
+        org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.template.rev151201.template.instance.grouping.TemplateParameter templateParameter2 = mock(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.template.rev151201.template.instance.grouping.TemplateParameter.class);\r
+        instanceParameters.add(templateParameter2);\r
+        when(templateInstance.getTemplateParameter()).thenReturn(instanceParameters);\r
+        when(templateParameter2.getParameterName()).thenReturn(parameterName);\r
+        org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.template.rev151201.template.instance.grouping.template.parameter.ParameterValues parameterValues = mock(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.template.rev151201.template.instance.grouping.template.parameter.ParameterValues.class);\r
+        when(templateParameter2.getParameterValues()).thenReturn(parameterValues);\r
+        when(parameterValues.getIntValue()).thenReturn(null);\r
+        when(parameterValues.getStringValue()).thenReturn(null);\r
+        when(parameterValues.getRangeValue()).thenReturn(null);\r
+        //when(parameterValues.getRangeValue()).thenReturn(mock(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.template.rev151201.template.instance.grouping.template.parameter.parameter.values.RangeValue.class));\r
+        when(templateParameter2.getParameterName()).thenReturn(parameterName);\r
+        when(templateParameter2.getParameterValues()).thenReturn(parameterValues);\r
+        TemplateInstanceName templateInstanceName = mock(TemplateInstanceName.class);\r
+        when(templateInstance.getTemplateInstanceName()).thenReturn(templateInstanceName);\r
+\r
+        Assert.assertTrue(updateTemplateInstance.checkTemplateInstance(userId, templateInstance) == "The value type should be string");\r
+        //System.out.println("###########  Result1 : "+updateTemplateInstance.checkTemplateInstance(userId, templateInstance)+"   #################");\r
+        //Assert.assertTrue(updateTemplateInstance.checkTemplateInstance(userId, templateInstance) == null);\r
+\r
+\r
+\r
+\r
+    }\r
+\r
+    public void testCheckTemplateInstance2() throws Exception {\r
+        TemplateName templateName = new TemplateName("tename");\r
+        TemplateDefinition templateDefinition = mock(TemplateDefinition.class);\r
+        Map<TemplateName, TemplateDefinition> templateMap = new HashMap<TemplateName, TemplateDefinition>();\r
+        templateMap.put(templateName,templateDefinition);\r
+        when(tenantManage.getTempalteDefinition(userId)).thenReturn(null);\r
+        when(tenantManage.getDefinitionDataStore(userId)).thenReturn(templateMap);\r
+        when(templateInstance.getTemplateName()).thenReturn(templateName);\r
+        when(tenantManage.getDefinitionDataStore(userId)).thenReturn(templateMap);\r
+        when(templateInstance.getTemplateName()).thenReturn(templateName);\r
+\r
+        List<TemplateParameter> templateParameters = new ArrayList<TemplateParameter>();\r
+        TemplateParameter templateParameter = mock(TemplateParameter.class);\r
+        templateParameters.add(templateParameter);\r
+        when(templateDefinition.getTemplateParameter()).thenReturn(templateParameters);\r
+        ParameterName parameterName = new ParameterName("ParameterName");\r
+        when(templateParameter.getParameterName()).thenReturn(parameterName);\r
+        when(templateParameter.getParameterValueType()).thenReturn(TemplateParameter.ParameterValueType.Int);\r
+\r
+        List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.template.rev151201.template.instance.grouping.TemplateParameter> instanceParameters = new ArrayList<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.template.rev151201.template.instance.grouping.TemplateParameter>();\r
+        org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.template.rev151201.template.instance.grouping.TemplateParameter templateParameter2 = mock(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.template.rev151201.template.instance.grouping.TemplateParameter.class);\r
+        instanceParameters.add(templateParameter2);\r
+        when(templateInstance.getTemplateParameter()).thenReturn(instanceParameters);\r
+        when(templateParameter2.getParameterName()).thenReturn(parameterName);\r
+        org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.template.rev151201.template.instance.grouping.template.parameter.ParameterValues parameterValues = mock(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.template.rev151201.template.instance.grouping.template.parameter.ParameterValues.class);\r
+        when(templateParameter2.getParameterValues()).thenReturn(parameterValues);\r
+        List<IntValue> intValues = new ArrayList<IntValue>();\r
+        when(parameterValues.getIntValue()).thenReturn(intValues);\r
+        Assert.assertTrue(updateTemplateInstance.checkTemplateInstance(userId, templateInstance) == "The value type should be string");\r
+        //System.out.println("###########  Result2 : "+updateTemplateInstance.checkTemplateInstance(userId, templateInstance)+"   #################");\r
+\r
+    }\r
+\r
+    public void testCheckTemplateInstance3() throws Exception {\r
+        TemplateName templateName = new TemplateName("tename");\r
+        TemplateDefinition templateDefinition = mock(TemplateDefinition.class);\r
+        Map<TemplateName, TemplateDefinition> templateMap = new HashMap<TemplateName, TemplateDefinition>();\r
+        templateMap.put(templateName,templateDefinition);\r
+        when(tenantManage.getTempalteDefinition(userId)).thenReturn(null);\r
+        when(tenantManage.getDefinitionDataStore(userId)).thenReturn(null);\r
+        Map<UserId, User> usersMap = new HashMap<UserId, User>();\r
+        UserId userId2 = mock(UserId.class);\r
+        User user = mock(User.class);\r
+        usersMap.put(userId2,user);\r
+        when(tenantManage.getUsers()).thenReturn(usersMap);\r
+        when(user.getUserRole()).thenReturn(new  org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.UserRoleName(NEMOConstants.admin));\r
+        when(user.getUserId()).thenReturn(userId2);\r
+        when(tenantManage.getDefinitionDataStore(userId2)).thenReturn(templateMap);\r
+        when(user.getUserId()).thenReturn(userId2);\r
+        when(templateInstance.getTemplateName()).thenReturn(templateName);\r
+        when(tenantManage.getDefinitionDataStore(userId2)).thenReturn(templateMap);\r
+        when(user.getUserId()).thenReturn(userId2);\r
+        when(templateInstance.getTemplateName()).thenReturn(templateName);\r
+        when(tenantManage.getDefinitionDataStore(userId2)).thenReturn(templateMap);\r
+\r
+        List<TemplateParameter> templateParameters = new ArrayList<TemplateParameter>();\r
+        TemplateParameter templateParameter = mock(TemplateParameter.class);\r
+        templateParameters.add(templateParameter);\r
+        when(templateDefinition.getTemplateParameter()).thenReturn(templateParameters);\r
+        ParameterName parameterName = new ParameterName("ParameterName");\r
+        when(templateParameter.getParameterName()).thenReturn(parameterName);\r
+        when(templateParameter.getParameterValueType()).thenReturn(TemplateParameter.ParameterValueType.String);\r
+\r
+        List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.template.rev151201.template.instance.grouping.TemplateParameter> instanceParameters = new ArrayList<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.template.rev151201.template.instance.grouping.TemplateParameter>();\r
+        org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.template.rev151201.template.instance.grouping.TemplateParameter templateParameter2 = mock(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.template.rev151201.template.instance.grouping.TemplateParameter.class);\r
+        instanceParameters.add(templateParameter2);\r
+        when(templateInstance.getTemplateParameter()).thenReturn(instanceParameters);\r
+        when(templateParameter2.getParameterName()).thenReturn(parameterName);\r
+        org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.template.rev151201.template.instance.grouping.template.parameter.ParameterValues parameterValues = mock(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.template.rev151201.template.instance.grouping.template.parameter.ParameterValues.class);\r
+        when(templateParameter2.getParameterValues()).thenReturn(parameterValues);\r
+        when(parameterValues.getIntValue()).thenReturn(null);\r
+        when(parameterValues.getStringValue()).thenReturn(null);\r
+        when(parameterValues.getRangeValue()).thenReturn(null);\r
+        Assert.assertTrue(updateTemplateInstance.checkTemplateInstance(userId, templateInstance) == "The value type should be string");\r
+        //System.out.println("###########  Result3 : "+updateTemplateInstance.checkTemplateInstance(userId, templateInstance)+"   #################");\r
+    }\r
+\r
+    public void testCheckTemplateInstance4() throws Exception {\r
+        TemplateName templateName = new TemplateName("tename");\r
+        TemplateDefinition templateDefinition = mock(TemplateDefinition.class);\r
+        Map<TemplateName, TemplateDefinition> templateMap = new HashMap<TemplateName, TemplateDefinition>();\r
+        templateMap.put(templateName,templateDefinition);\r
+        when(tenantManage.getTempalteDefinition(userId)).thenReturn(null);\r
+        when(tenantManage.getDefinitionDataStore(userId)).thenReturn(templateMap);\r
+        when(templateInstance.getTemplateName()).thenReturn(templateName);\r
+        when(tenantManage.getDefinitionDataStore(userId)).thenReturn(templateMap);\r
+        when(templateInstance.getTemplateName()).thenReturn(templateName);\r
+\r
+        List<TemplateParameter> templateParameters = new ArrayList<TemplateParameter>();\r
+        TemplateParameter templateParameter = mock(TemplateParameter.class);\r
+        templateParameters.add(templateParameter);\r
+        when(templateDefinition.getTemplateParameter()).thenReturn(templateParameters);\r
+        ParameterName parameterName = new ParameterName("ParameterName");\r
+        when(templateParameter.getParameterName()).thenReturn(parameterName);\r
+        when(templateParameter.getParameterValueType()).thenReturn(TemplateParameter.ParameterValueType.Int);\r
+\r
+        List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.template.rev151201.template.instance.grouping.TemplateParameter> instanceParameters = new ArrayList<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.template.rev151201.template.instance.grouping.TemplateParameter>();\r
+        org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.template.rev151201.template.instance.grouping.TemplateParameter templateParameter2 = mock(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.template.rev151201.template.instance.grouping.TemplateParameter.class);\r
+        instanceParameters.add(templateParameter2);\r
+        when(templateInstance.getTemplateParameter()).thenReturn(instanceParameters);\r
+        when(templateParameter2.getParameterName()).thenReturn(new ParameterName("ParameterName2"));\r
+        when(templateParameter2.getParameterName()).thenReturn(new ParameterName("ParameterName2"));\r
+        //Assert.assertTrue(updateTemplateInstance.checkTemplateInstance(userId, templateInstance) == "The parameter ParameterName2 is not defined.");\r
+        System.out.println("###########  Result4 : "+updateTemplateInstance.checkTemplateInstance(userId, templateInstance)+"   #################");\r
+\r
+    }\r
+\r
+    public void testCheckTemplateInstance5() throws Exception {\r
+        TemplateName templateName = new TemplateName("tename");\r
+        TemplateDefinition templateDefinition = mock(TemplateDefinition.class);\r
+        Map<TemplateName, TemplateDefinition> templateMap = new HashMap<TemplateName, TemplateDefinition>();\r
+        templateMap.put(templateName,templateDefinition);\r
+        when(tenantManage.getTempalteDefinition(userId)).thenReturn(null);\r
+        when(tenantManage.getDefinitionDataStore(userId)).thenReturn(null);\r
+        Map<UserId, User> usersMap = new HashMap<UserId, User>();\r
+        UserId userId2 = mock(UserId.class);\r
+        User user = mock(User.class);\r
+        usersMap.put(userId2,user);\r
+        when(tenantManage.getUsers()).thenReturn(usersMap);\r
+\r
+        when(user.getUserRole()).thenReturn(new  org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.UserRoleName("asd"));\r
+        when(templateInstance.getTemplateName()).thenReturn(templateName);\r
+        //Assert.assertTrue(updateTemplateInstance.checkTemplateInstance(userId, templateInstance) == "The template tename is not exist.");\r
+        System.out.println("###########  Result5 : "+updateTemplateInstance.checkTemplateInstance(userId, templateInstance)+"   #################");\r
+\r
+    }\r
+\r
+\r
+\r
+    @Test\r
+    public void testGetTempalteDefinition() throws Exception {\r
+        method = class1.getDeclaredMethod("getTempalteDefinition",new Class[]{\r
+                TemplateName.class\r
+        });\r
+        method.setAccessible(true);\r
+\r
+        UserId userId = mock(UserId.class);\r
+        User user = mock(User.class);\r
+        TemplateName templateName = new TemplateName("tename");\r
+        TemplateDefinition templateDefinition = mock(TemplateDefinition.class);\r
+        Map<UserId, User> usersMap = new HashMap<UserId, User>();\r
+        Map<TemplateName, TemplateDefinition> templateMap = new HashMap<TemplateName, TemplateDefinition>();\r
+\r
+\r
+        usersMap.put(userId,user);\r
+        templateMap.put(templateName,templateDefinition);\r
+\r
+        when(tenantManage.getUsers()).thenReturn(usersMap);\r
+        when(user.getUserRole()).thenReturn(new UserRoleName("admin"));\r
+        when(user.getUserId()).thenReturn(userId);\r
+        when(tenantManage.getTempalteDefinition(userId)).thenReturn(templateMap);\r
+        Assert.assertTrue(method.invoke(updateTemplateInstance, templateName) != null);\r
+    }\r
+\r
+    @Test\r
+    public void testgetcreateInstance() throws Exception {\r
+        method = class1.getDeclaredMethod("createInstance",new Class[]{\r
+                UserId.class,\r
+                TemplateDefinition.class,\r
+                HashMap.class,\r
+                String.class\r
+        });\r
+        method.setAccessible(true);\r
+        UserId userid = mock(UserId.class);\r
+        TemplateDefinition definition = mock(TemplateDefinition.class);\r
+        Map<ParameterName, org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.template.rev151201.template.instance.grouping.template.parameter.ParameterValues> instaceParameterMap = new HashMap<ParameterName, org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.template.rev151201.template.instance.grouping.template.parameter.ParameterValues>();\r
+        ParameterName parameterName = new ParameterName("ParameterName");\r
+        org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.template.rev151201.template.instance.grouping.template.parameter.ParameterValues parameterValues = mock(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.template.rev151201.template.instance.grouping.template.parameter.ParameterValues.class);\r
+        instaceParameterMap.put(parameterName,parameterValues);\r
+        String instanceName = new String("instance");\r
+\r
+        //test\r
+        List<TemplateParameter> teplateParameters = new ArrayList<TemplateParameter>();\r
+        TemplateParameter parameter = mock(TemplateParameter.class);\r
+        teplateParameters.add(parameter);\r
+        when(definition.getTemplateParameter()).thenReturn(teplateParameters);\r
+        AbstractIntents abstractIntents = mock(AbstractIntents.class);\r
+        AbstractObjects abstractObjects = mock(AbstractObjects.class);\r
+        when(definition.getAbstractIntents()).thenReturn(abstractIntents);\r
+        when(abstractIntents.getAbstractObjects()).thenReturn(abstractObjects);\r
+        when(definition.getAbstractIntents()).thenReturn(abstractIntents);\r
+        when(abstractIntents.getAbstractObjects()).thenReturn(abstractObjects);\r
+        List<AbstractNode> abstractNodes = new ArrayList<AbstractNode>();\r
+        AbstractNode abstractNode = mock(AbstractNode.class);\r
+        abstractNodes.add(abstractNode);\r
+        when(abstractObjects.getAbstractNode()).thenReturn(abstractNodes);\r
+        when(abstractObjects.getAbstractNode()).thenReturn(abstractNodes);\r
+        when(abstractNode.getNodeType()).thenReturn(new NodeType("host"));\r
+        Map<PhysicalHostName, PhysicalHost> physicalHostMap = new HashMap<PhysicalHostName, PhysicalHost>();\r
+        PhysicalHostName physicalHostName = new PhysicalHostName("hostname");\r
+        PhysicalHost physicalHost = mock(PhysicalHost.class);\r
+        physicalHostMap.put(physicalHostName,physicalHost);\r
+        field = class1.getDeclaredField("getDefinitions");\r
+        field.setAccessible(true);\r
+        GetDefinitions getDefinitions = mock(GetDefinitions.class);\r
+        field.set(updateTemplateInstance,getDefinitions);\r
+        when(getDefinitions.getPhysicalHost()).thenReturn(physicalHostMap);\r
+        when(abstractNode.getNodeName()).thenReturn(new NodeName("hostname"));\r
+        PhysicalHostId physicalHostId = new PhysicalHostId("11111111-1111-1111-1111-111111111111");\r
+        when(abstractNode.getNodeName()).thenReturn(new NodeName("hostname"));\r
+        when(physicalHost.getHostId()).thenReturn(physicalHostId);\r
+        when(abstractNode.getNodeName()).thenReturn(new NodeName("ParameterName"));\r
+        when(abstractNode.getNodeName()).thenReturn(new NodeName("ParameterName"));\r
+        List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.template.rev151201.template.instance.grouping.template.parameter.parameter.values.StringValue> stringValues = new ArrayList<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.template.rev151201.template.instance.grouping.template.parameter.parameter.values.StringValue>();\r
+        org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.template.rev151201.template.instance.grouping.template.parameter.parameter.values.StringValue stringValue = mock(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.template.rev151201.template.instance.grouping.template.parameter.parameter.values.StringValue.class);\r
+        stringValues.add(stringValue);\r
+        when(parameterValues.getStringValue()).thenReturn(stringValues);\r
+        when(stringValue.getValue()).thenReturn("test");\r
+        when(abstractNode.getNodeType()).thenReturn(new NodeType("ParameterName"));\r
+        when(abstractNode.getNodeType()).thenReturn(new NodeType("ParameterName"));\r
+        when(parameterValues.getStringValue()).thenReturn(stringValues);\r
+        when(stringValue.getValue()).thenReturn("test");\r
+\r
+        // if (abstractNode.getSubNode()!=null)\r
+        List<SubNode> subNodeList = new LinkedList<SubNode>();\r
+        SubNode subNode = mock(SubNode.class);\r
+        subNodeList.add(subNode);\r
+        when(abstractNode.getSubNode()).thenReturn(subNodeList);\r
+\r
+        field = class1.getDeclaredField("abstractInstanceIdMap");\r
+        field.setAccessible(true);\r
+        Map<String,String> abstractInstanceIdMap = new HashMap<String,String>();\r
+        String s1 = "11111111-1111-1111-1111-111111111111";\r
+        String s2 = "11111111-1111-1111-1111-111111111111";\r
+        abstractInstanceIdMap.put(s1,s2);\r
+        field.set(updateTemplateInstance,abstractInstanceIdMap);\r
+        when(subNode.getNodeId()).thenReturn(new NodeId("11111111-1111-1111-1111-111111111111"));\r
+        when(subNode.getNodeId()).thenReturn(new NodeId("11111111-1111-1111-1111-111111111111"));\r
+        when(subNode.getNodeId()).thenReturn(new NodeId("11111111-1111-1111-1111-111111111111"));\r
+\r
+        when(abstractNode.getNodeId()).thenReturn(new NodeId("11111111-1111-1111-1111-111111111111"));\r
+        when(abstractNode.getNodeName()).thenReturn(new NodeName("hostname"));\r
+        when(abstractNode.getNodeId()).thenReturn(new NodeId("11111111-1111-1111-1111-111111111111"));\r
+\r
+        //if (abstractNode.getProperty()!=null)\r
+        List<Property> propertyList = new LinkedList<Property>();\r
+        Property property = mock(Property.class);\r
+        propertyList.add(property);\r
+        //when(abstractNode.getProperty()).thenReturn(propertyList);\r
+        when(abstractNode.getProperty()).thenReturn(null);\r
+        when(property.getPropertyName()).thenReturn(new PropertyName(NEMOConstants.sub_nodes));\r
+        org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.property.instance.PropertyValues propertyValues = mock(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.property.instance.PropertyValues.class);\r
+        List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.property.instance.property.values.StringValue> stringValues2 = new ArrayList<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.property.instance.property.values.StringValue>();\r
+        //List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.property.instance.property.values.IntValue> intValues = new ArrayList<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.property.instance.property.values.IntValue>();\r
+        org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.property.instance.property.values.StringValue stringValue2 = mock(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.property.instance.property.values.StringValue.class);\r
+        //org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.property.instance.property.values.IntValue intValue = mock(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.property.instance.property.values.IntValue.class);\r
+        RangeValue rangeValue = mock(RangeValue.class);\r
+        stringValues2.add(stringValue2);\r
+        //intValues.add(intValue);\r
+        when(property.getPropertyValues()).thenReturn(propertyValues);\r
+        when(propertyValues.getStringValue()).thenReturn(stringValues2);\r
+        when(property.getPropertyValues()).thenReturn(propertyValues);\r
+        when(propertyValues.getIntValue()).thenReturn(null);\r
+        when(property.getPropertyValues()).thenReturn(propertyValues);\r
+        when(propertyValues.getRangeValue()).thenReturn(null);\r
+\r
+        List<StringValue> subnodes = new ArrayList<StringValue>();\r
+        StringValue subnode = mock(StringValue.class);\r
+        subnodes.add(subnode);\r
+        org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.property.instance.PropertyValues propertyValues2 = mock(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.property.instance.PropertyValues.class);\r
+        when(property.getPropertyValues()).thenReturn(propertyValues2);\r
+        when(propertyValues2.getStringValue()).thenReturn(subnodes);\r
+        when(subnode.getValue()).thenReturn("ParameterName");\r
+        List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.template.rev151201.template.instance.grouping.template.parameter.parameter.values.StringValue> stringValues3 = new ArrayList<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.template.rev151201.template.instance.grouping.template.parameter.parameter.values.StringValue>();\r
+        org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.template.rev151201.template.instance.grouping.template.parameter.parameter.values.StringValue stringValue3 = mock(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.template.rev151201.template.instance.grouping.template.parameter.parameter.values.StringValue.class);\r
+        stringValues3.add(stringValue3);\r
+        when(subnode.getValue()).thenReturn("ParameterName");\r
+        when(parameterValues.getStringValue()).thenReturn(stringValues3);\r
+        String s3 = "test";\r
+        when(stringValue3.getValue()).thenReturn(s3);\r
+        when(tenantManage.getObjectId(userid,s3)).thenReturn("test");\r
+        when(stringValue3.getValue()).thenReturn(s3);\r
+        when(tenantManage.getObjectId(userid,s3)).thenReturn("test");\r
+\r
+\r
+        //if (objects.getAbstractConnection()!=null)\r
+        List<AbstractConnection> abstractConnections = new ArrayList<AbstractConnection>();\r
+        AbstractConnection abstractConnection = mock(AbstractConnection.class);\r
+        abstractConnections.add(abstractConnection);\r
+        when(abstractObjects.getAbstractConnection()).thenReturn(abstractConnections);\r
+        when(abstractObjects.getAbstractConnection()).thenReturn(abstractConnections);\r
+        when(abstractConnection.getConnectionName()).thenReturn(new ConnectionName("connname"));\r
+        when(abstractConnection.getConnectionType()).thenReturn(new ConnectionType("conntype"));\r
+        when(abstractConnection.getConnectionId()).thenReturn(new ConnectionId("11111111-1111-1111-1111-111111111111"));\r
+        when(abstractConnection.getConnectionName()).thenReturn(new ConnectionName("connname"));\r
+        when(abstractConnection.getConnectionId()).thenReturn(new ConnectionId("11111111-1111-1111-1111-111111111111"));\r
+        List<EndNode> endNodeList = new LinkedList<EndNode>();\r
+        EndNode endNode = mock(EndNode.class);\r
+        endNodeList.add(endNode);\r
+        when(abstractConnection.getEndNode()).thenReturn(endNodeList);\r
+        when(abstractConnection.getEndNode()).thenReturn(endNodeList);\r
+        abstractInstanceIdMap.clear();\r
+        abstractInstanceIdMap.put(s1,s2);\r
+        when(endNode.getNodeId()).thenReturn(new NodeId("11111111-1111-1111-1111-111111111111"));\r
+        when(endNode.getNodeId()).thenReturn(new NodeId("11111111-1111-1111-1111-111111111111"));\r
+        when(endNode.getNodeId()).thenReturn(new NodeId("11111111-1111-1111-1111-111111111111"));\r
+        List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.connection.instance.Property> propertyList2 = new LinkedList<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.connection.instance.Property>();\r
+        org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.connection.instance.Property property2 = mock(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.connection.instance.Property.class);\r
+        propertyList2.add(property2);\r
+        when(abstractConnection.getProperty()).thenReturn(propertyList2);\r
+        when(abstractConnection.getProperty()).thenReturn(propertyList2);\r
+\r
+        //test createConnProperty() time1\r
+        when(property2.getPropertyName()).thenReturn(new PropertyName("createConnProperty"));\r
+        when(property2.getPropertyName()).thenReturn(new PropertyName("createConnProperty"));\r
+\r
+        List<StringValue> stringValuesConn = new LinkedList<StringValue>();\r
+        StringValue stringValueConn = mock(StringValue.class);\r
+        stringValuesConn.add(stringValueConn);\r
+        List<IntValue> intValuesConn = new LinkedList<IntValue>();\r
+        IntValue intValueConn = mock(IntValue.class);\r
+        intValuesConn.add(intValueConn);\r
+        RangeValue rangeValueConn = mock(RangeValue.class);\r
+        org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.property.instance.PropertyValues propertyValuesConn = mock(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.property.instance.PropertyValues.class);\r
+        when(property2.getPropertyValues()).thenReturn(propertyValuesConn);\r
+        when(propertyValuesConn.getStringValue()).thenReturn(stringValuesConn);\r
+        when(stringValueConn.getValue()).thenReturn("ParameterName");\r
+        when(stringValueConn.getValue()).thenReturn("ParameterName");\r
+        List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.template.rev151201.template.instance.grouping.template.parameter.parameter.values.StringValue> stringValues4 = new ArrayList<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.template.rev151201.template.instance.grouping.template.parameter.parameter.values.StringValue>();\r
+        org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.template.rev151201.template.instance.grouping.template.parameter.parameter.values.StringValue stringValue4 = mock(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.template.rev151201.template.instance.grouping.template.parameter.parameter.values.StringValue.class);\r
+        stringValues4.add(stringValue4);\r
+        when(parameterValues.getStringValue()).thenReturn(stringValues4);\r
+        when(parameterValues.getStringValue()).thenReturn(stringValues4);\r
+        when(stringValue4.getValue()).thenReturn("stringValue4");\r
+        when(stringValue4.getValue()).thenReturn("stringValue4");\r
+        when(parameterValues.getIntValue()).thenReturn(intValuesConn);\r
+        when(parameterValues.getIntValue()).thenReturn(intValuesConn);\r
+        when(intValueConn.getValue()).thenReturn(1L);\r
+        when(intValueConn.getValue()).thenReturn(1L);\r
+        org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.template.rev151201.template.instance.grouping.template.parameter.parameter.values.RangeValue rangeValue2 = mock(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.template.rev151201.template.instance.grouping.template.parameter.parameter.values.RangeValue.class);\r
+        when(parameterValues.getRangeValue()).thenReturn(rangeValue2);\r
+        when(parameterValues.getRangeValue()).thenReturn(rangeValue2);\r
+        when(rangeValueConn.getMax()).thenReturn(2L);\r
+        when(rangeValueConn.getMin()).thenReturn(1L);\r
+\r
+        List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.property.instance.property.values.IntValue> intValues2 = new ArrayList<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.property.instance.property.values.IntValue>();\r
+        when(property2.getPropertyValues()).thenReturn(propertyValuesConn);\r
+        when(propertyValuesConn.getIntValue()).thenReturn(intValues2);\r
+        when(property2.getPropertyValues()).thenReturn(propertyValuesConn);\r
+        when(propertyValuesConn.getIntValue()).thenReturn(intValues2);\r
+\r
+        when(property2.getPropertyValues()).thenReturn(propertyValuesConn);\r
+        when(propertyValuesConn.getRangeValue()).thenReturn(rangeValueConn);\r
+        when(property2.getPropertyValues()).thenReturn(propertyValuesConn);\r
+        when(propertyValuesConn.getRangeValue()).thenReturn(rangeValueConn);\r
+\r
+        //test createConnProperty() time2\r
+        when(property2.getPropertyName()).thenReturn(new PropertyName("createConnProperty"));\r
+        when(property2.getPropertyName()).thenReturn(new PropertyName("createConnProperty"));\r
+\r
+        when(property2.getPropertyValues()).thenReturn(propertyValuesConn);\r
+        when(propertyValuesConn.getStringValue()).thenReturn(stringValuesConn);\r
+        when(stringValueConn.getValue()).thenReturn("ParameterName");\r
+        when(stringValueConn.getValue()).thenReturn("ParameterName");\r
+        when(parameterValues.getStringValue()).thenReturn(stringValues4);\r
+        when(parameterValues.getStringValue()).thenReturn(stringValues4);\r
+        when(stringValue4.getValue()).thenReturn("stringValue4");\r
+        when(stringValue4.getValue()).thenReturn("stringValue4");\r
+        when(parameterValues.getIntValue()).thenReturn(intValuesConn);\r
+        when(parameterValues.getIntValue()).thenReturn(intValuesConn);\r
+        when(intValueConn.getValue()).thenReturn(1L);\r
+        when(intValueConn.getValue()).thenReturn(1L);\r
+        when(parameterValues.getRangeValue()).thenReturn(rangeValue2);\r
+        when(parameterValues.getRangeValue()).thenReturn(rangeValue2);\r
+        when(rangeValueConn.getMax()).thenReturn(2L);\r
+        when(rangeValueConn.getMin()).thenReturn(1L);\r
+        when(property2.getPropertyValues()).thenReturn(propertyValuesConn);\r
+        when(propertyValuesConn.getIntValue()).thenReturn(intValues2);\r
+        when(property2.getPropertyValues()).thenReturn(propertyValuesConn);\r
+        when(propertyValuesConn.getIntValue()).thenReturn(intValues2);\r
+        when(property2.getPropertyValues()).thenReturn(propertyValuesConn);\r
+        when(propertyValuesConn.getRangeValue()).thenReturn(rangeValueConn);\r
+        when(property2.getPropertyValues()).thenReturn(propertyValuesConn);\r
+        when(propertyValuesConn.getRangeValue()).thenReturn(rangeValueConn);\r
+\r
+        // if (objects.getAbstractFlow()!=null)\r
+        List<AbstractFlow> abstractFlows = new ArrayList<AbstractFlow>();\r
+        AbstractFlow abstractFlow = mock(AbstractFlow.class);\r
+        abstractFlows.add(abstractFlow);\r
+        when(abstractObjects.getAbstractFlow()).thenReturn(abstractFlows);\r
+        when(abstractObjects.getAbstractFlow()).thenReturn(abstractFlows);\r
+        when(abstractFlow.getFlowName()).thenReturn(new FlowName("FlowName"));\r
+        //abstractInstanceIdMap.clear();\r
+        when(abstractFlow.getFlowId()).thenReturn(new FlowId("11111111-1111-1111-1111-111111111111"));\r
+        List<MatchItem> matchItems = new LinkedList<MatchItem>();\r
+        MatchItem matchItem = mock(MatchItem.class);\r
+        matchItems.add(matchItem);\r
+        when(abstractFlow.getMatchItem()).thenReturn(matchItems);\r
+        when(abstractFlow.getMatchItem()).thenReturn(matchItems);\r
+        //test createMatchItem\r
+        when(matchItem.getMatchItemName()).thenReturn(new MatchItemName("MatchItemName"));\r
+        when(matchItem.getMatchItemName()).thenReturn(new MatchItemName("MatchItemName"));\r
+        org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.match.item.instance.MatchItemValue matchItemValue = mock(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.match.item.instance.MatchItemValue.class);\r
+        when(matchItem.getMatchItemValue()).thenReturn(matchItemValue); //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\r
+        when(matchItemValue.getStringValue()).thenReturn("ParameterName");\r
+        when(matchItem.getMatchItemValue()).thenReturn(matchItemValue);\r
+        when(matchItemValue.getStringValue()).thenReturn("ParameterName");\r
+        when(matchItem.getMatchItemValue()).thenReturn(matchItemValue);\r
+        when(matchItemValue.getStringValue()).thenReturn("ParameterName");\r
+        List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.template.rev151201.template.instance.grouping.template.parameter.parameter.values.StringValue> stringValuesMatch = new LinkedList<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.template.rev151201.template.instance.grouping.template.parameter.parameter.values.StringValue>();\r
+        org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.template.rev151201.template.instance.grouping.template.parameter.parameter.values.StringValue stringValueMatch = mock(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.template.rev151201.template.instance.grouping.template.parameter.parameter.values.StringValue.class);\r
+        stringValuesMatch.add(stringValueMatch);\r
+        List<IntValue> intValuesMatch = new LinkedList<IntValue>();\r
+        IntValue intValueMatch = mock(IntValue.class);\r
+        intValuesMatch.add(intValueMatch);\r
+        org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.template.rev151201.template.instance.grouping.template.parameter.parameter.values.RangeValue rangeValueMatch = mock(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.template.rev151201.template.instance.grouping.template.parameter.parameter.values.RangeValue.class);\r
+        when(parameterValues.getStringValue()).thenReturn(stringValuesMatch);\r
+        when(parameterValues.getStringValue()).thenReturn(stringValuesMatch);\r
+        when(stringValueMatch.getValue()).thenReturn("value");\r
+        when(parameterValues.getIntValue()).thenReturn(intValuesMatch);\r
+        when(parameterValues.getIntValue()).thenReturn(intValuesMatch);\r
+        when(intValueMatch.getValue()).thenReturn(2L);\r
+        when(parameterValues.getRangeValue()).thenReturn(rangeValueMatch);\r
+        when(parameterValues.getRangeValue()).thenReturn(rangeValueMatch);\r
+        when(rangeValueMatch.getMax()).thenReturn(2L);\r
+        when(rangeValueMatch.getMin()).thenReturn(1L);\r
+        when(matchItem.getMatchItemValue()).thenReturn(matchItemValue);\r
+        when(matchItemValue.getIntValue()).thenReturn(1L);\r
+        when(matchItem.getMatchItemValue()).thenReturn(matchItemValue);\r
+        when(matchItemValue.getIntValue()).thenReturn(2L);\r
+        org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.match.item.instance.match.item.value.RangeValue rangeValue3 = mock(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.match.item.instance.match.item.value.RangeValue.class);\r
+        when(matchItem.getMatchItemValue()).thenReturn(matchItemValue);\r
+        when(matchItemValue.getRangeValue()).thenReturn(rangeValue3);\r
+        when(matchItem.getMatchItemValue()).thenReturn(matchItemValue);\r
+        when(matchItemValue.getRangeValue()).thenReturn(rangeValue3);\r
+\r
+\r
+        //if (definition.getAbstractIntents().getAbstractOperations()!=null)\r
+        org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.template.rev151201.template.definition.grouping._abstract.intents.AbstractOperations abstractOperations = mock(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.template.rev151201.template.definition.grouping._abstract.intents.AbstractOperations.class);\r
+        List<AbstractOperation> abstractOperationList = new ArrayList<AbstractOperation>();\r
+        AbstractOperation abstractOperation = mock(AbstractOperation.class);\r
+        abstractOperationList.add(abstractOperation);\r
+        when(definition.getAbstractIntents()).thenReturn(abstractIntents);\r
+        when(abstractIntents.getAbstractOperations()).thenReturn(abstractOperations);\r
+        when(definition.getAbstractIntents()).thenReturn(abstractIntents);\r
+        when(abstractIntents.getAbstractOperations()).thenReturn(abstractOperations);\r
+        when(abstractOperations.getAbstractOperation()).thenReturn(abstractOperationList);\r
+        instaceParameterMap.clear();\r
+        parameterName = new ParameterName("OperationName"+"."+NEMOConstants.Priority);\r
+        instaceParameterMap.put(parameterName,parameterValues);\r
+        when(abstractOperation.getOperationName()).thenReturn(new OperationName("OperationName"));\r
+        when(abstractOperation.getOperationName()).thenReturn(new OperationName("OperationName"));\r
+        List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.template.rev151201.template.instance.grouping.template.parameter.parameter.values.IntValue> intValuesOp = new ArrayList<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.template.rev151201.template.instance.grouping.template.parameter.parameter.values.IntValue>();\r
+        org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.template.rev151201.template.instance.grouping.template.parameter.parameter.values.IntValue intValueOp = mock(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.template.rev151201.template.instance.grouping.template.parameter.parameter.values.IntValue.class);;\r
+        intValuesOp.add(intValueOp);\r
+        when(parameterValues.getIntValue()).thenReturn(intValuesOp);\r
+        when(parameterValues.getStringValue()).thenReturn(null);\r
+        when(parameterValues.getRangeValue()).thenReturn(null);\r
+        when(parameterValues.getIntValue()).thenReturn(intValuesOp);\r
+        when(intValueOp.getValue()).thenReturn(1L);\r
+\r
+        //when(abstractOperation.getTargetObject()).thenReturn(new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.ObjectId("11111111-1111-1111-1111-111111111111"));\r
+\r
+\r
+        parameterName = new ParameterName(NEMOConstants.Target+"."+"OperationName");\r
+        org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.template.rev151201.template.instance.grouping.template.parameter.ParameterValues parameterValues2 = mock(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.template.rev151201.template.instance.grouping.template.parameter.ParameterValues.class);\r
+        instaceParameterMap.put(parameterName,parameterValues2);\r
+        when(abstractOperation.getOperationName()).thenReturn(new OperationName("OperationName"));\r
+        List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.template.rev151201.template.instance.grouping.template.parameter.parameter.values.StringValue> stringValuesOp = new ArrayList<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.template.rev151201.template.instance.grouping.template.parameter.parameter.values.StringValue>();\r
+        org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.template.rev151201.template.instance.grouping.template.parameter.parameter.values.StringValue stringValueOp = mock(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.template.rev151201.template.instance.grouping.template.parameter.parameter.values.StringValue.class);;\r
+        stringValuesOp.add(stringValueOp);\r
+        Map<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.template.rev151201.template.instance.grouping.template.parameter.ParameterValues, String> nameIdMap = new HashMap<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.template.rev151201.template.instance.grouping.template.parameter.ParameterValues, String>();\r
+        String s4 = NEMOConstants.Target+"."+"OperationName";\r
+        String s5 = "11111111-1111-1111-1111-111111111111";\r
+        nameIdMap.put(parameterValues2,s5);\r
+        field = class1.getDeclaredField("nameIdMap");\r
+        field.setAccessible(true);\r
+        field.set(updateTemplateInstance,nameIdMap);\r
+        when(parameterValues2.getIntValue()).thenReturn(null);\r
+        when(parameterValues2.getStringValue()).thenReturn(stringValuesOp);\r
+        when(parameterValues2.getRangeValue()).thenReturn(null);\r
+\r
+\r
+        //if (abstractOperation.getConditionSegment()!=null)\r
+        List<ConditionSegment> conditionSegments = new LinkedList<ConditionSegment>();\r
+        ConditionSegment conditionSegment = mock(ConditionSegment.class);\r
+        conditionSegments.add(conditionSegment);\r
+        when(abstractOperation.getConditionSegment()).thenReturn(conditionSegments);\r
+\r
+        //test createCondition\r
+        //instaceParameterMap.clear();\r
+        ParameterName parameterNamecondition = new ParameterName("ParameterName");\r
+        org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.template.rev151201.template.instance.grouping.template.parameter.ParameterValues parameterValuesCodition = mock(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.template.rev151201.template.instance.grouping.template.parameter.ParameterValues.class);\r
+        instaceParameterMap.put(parameterNamecondition,parameterValuesCodition);\r
+        org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.operation.rev151010.condition.instance.condition.segment.ConditionParameterTargetValue  conditionParameterTargetValue = mock(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.operation.rev151010.condition.instance.condition.segment.ConditionParameterTargetValue.class);\r
+        when(conditionSegment.getConditionParameterTargetValue()).thenReturn(conditionParameterTargetValue);\r
+        when(conditionParameterTargetValue.getStringValue()).thenReturn("ParameterName");\r
+        when(conditionSegment.getConditionParameterTargetValue()).thenReturn(conditionParameterTargetValue);\r
+        when(conditionParameterTargetValue.getStringValue()).thenReturn("ParameterName");\r
+        List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.template.rev151201.template.instance.grouping.template.parameter.parameter.values.StringValue> stringValuesCod = new LinkedList<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.template.rev151201.template.instance.grouping.template.parameter.parameter.values.StringValue>();\r
+        List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.template.rev151201.template.instance.grouping.template.parameter.parameter.values.IntValue> intValuesCod = new LinkedList<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.template.rev151201.template.instance.grouping.template.parameter.parameter.values.IntValue>();\r
+        org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.template.rev151201.template.instance.grouping.template.parameter.parameter.values.StringValue stringValueCod = mock(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.template.rev151201.template.instance.grouping.template.parameter.parameter.values.StringValue.class);\r
+        org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.template.rev151201.template.instance.grouping.template.parameter.parameter.values.IntValue intValueCod = mock(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.template.rev151201.template.instance.grouping.template.parameter.parameter.values.IntValue.class);\r
+        stringValuesCod.add(stringValueCod);\r
+        intValuesCod.add(intValueCod);\r
+        org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.template.rev151201.template.instance.grouping.template.parameter.parameter.values.RangeValue rangeValueCod = mock(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.template.rev151201.template.instance.grouping.template.parameter.parameter.values.RangeValue.class);\r
+        when(parameterValuesCodition.getStringValue()).thenReturn(stringValuesCod);\r
+        when(parameterValuesCodition.getStringValue()).thenReturn(stringValuesCod);\r
+        when(stringValueCod.getValue()).thenReturn("stringValueCod");\r
+        when(parameterValuesCodition.getIntValue()).thenReturn(intValuesCod);\r
+        when(parameterValuesCodition.getIntValue()).thenReturn(intValuesCod);\r
+        when(intValueCod.getValue()).thenReturn(1L);\r
+        when(parameterValuesCodition.getRangeValue()).thenReturn(rangeValueCod);\r
+        when(parameterValuesCodition.getRangeValue()).thenReturn(rangeValueCod);\r
+        when(conditionSegment.getConditionParameterTargetValue()).thenReturn(conditionParameterTargetValue);\r
+        when(conditionParameterTargetValue.getIntValue()).thenReturn(1L);\r
+        when(conditionSegment.getConditionParameterTargetValue()).thenReturn(conditionParameterTargetValue);\r
+        when(conditionParameterTargetValue.getIntValue()).thenReturn(1L);\r
+        when(conditionSegment.getConditionParameterTargetValue()).thenReturn(conditionParameterTargetValue);\r
+        when(conditionParameterTargetValue.getRangeValue()).thenReturn(mock(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.operation.rev151010.condition.instance.condition.segment.condition.parameter.target.value.RangeValue.class));\r
+        when(conditionSegment.getConditionParameterTargetValue()).thenReturn(conditionParameterTargetValue);\r
+        when(conditionParameterTargetValue.getRangeValue()).thenReturn(mock(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.operation.rev151010.condition.instance.condition.segment.condition.parameter.target.value.RangeValue.class));\r
+\r
+        //if (abstractOperation.getAction()==null)\r
+       /* List<Action> actions = new LinkedList<Action>();\r
+        Action action = mock(Action.class);\r
+        actions.add(action);*/\r
+        when(abstractOperation.getAction()).thenReturn(null);\r
+\r
+        method.invoke(updateTemplateInstance, userid, definition, instaceParameterMap, instanceName);\r
+        System.out.println("###########  Result XXXX "+method.invoke(updateTemplateInstance,userid,definition,instaceParameterMap,instanceName)+" ####");\r
+       // Assert.assertTrue(method.invoke(userid,definition,instaceParameterMap,instanceName) != null);\r
+\r
+    }\r
+\r
+\r
+    @Test\r
+    public void testcreateAction() throws Exception {\r
+        method = class1.getDeclaredMethod("createAction",new Class[]{\r
+                Action.class,\r
+                HashMap.class,\r
+        });\r
+        method.setAccessible(true);\r
+        Action action = mock(Action.class);\r
+        HashMap<ParameterName, org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.template.rev151201.template.instance.grouping.template.parameter.ParameterValues> instaceParameterMap = new HashMap<ParameterName, org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.template.rev151201.template.instance.grouping.template.parameter.ParameterValues>();\r
+        ParameterName parameterNameAc = new ParameterName("ParameterName");\r
+        org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.template.rev151201.template.instance.grouping.template.parameter.ParameterValues parameterValuesAc = mock(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.template.rev151201.template.instance.grouping.template.parameter.ParameterValues.class);\r
+        instaceParameterMap.put(parameterNameAc,parameterValuesAc);\r
+\r
+        //test createAction\r
+        when(action.getActionName()).thenReturn(new ActionName("action"));\r
+        when(action.getActionName()).thenReturn(new ActionName("action"));\r
+\r
+        org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.operation.rev151010.action.instance.ParameterValues parameterValuesAction = mock(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.operation.rev151010.action.instance.ParameterValues.class);\r
+        when(action.getParameterValues()).thenReturn(parameterValuesAction);\r
+\r
+        List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.operation.rev151010.action.instance.parameter.values.StringValue> stringValuesAc1 = new LinkedList<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.operation.rev151010.action.instance.parameter.values.StringValue>();\r
+        org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.operation.rev151010.action.instance.parameter.values.StringValue stringValueAc1 = mock(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.operation.rev151010.action.instance.parameter.values.StringValue.class);\r
+        List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.operation.rev151010.action.instance.parameter.values.IntValue> intValuesAc1 = new LinkedList<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.operation.rev151010.action.instance.parameter.values.IntValue>();\r
+        org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.operation.rev151010.action.instance.parameter.values.IntValue intValueAc1 = mock(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.operation.rev151010.action.instance.parameter.values.IntValue.class);\r
+        org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.operation.rev151010.action.instance.parameter.values.RangeValue rangeValueAc1 = mock(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.operation.rev151010.action.instance.parameter.values.RangeValue.class);\r
+        stringValuesAc1.add(stringValueAc1);\r
+        intValuesAc1.add(intValueAc1);\r
+        when(action.getParameterValues()).thenReturn(parameterValuesAction);\r
+        when(parameterValuesAction.getStringValue()).thenReturn(stringValuesAc1);\r
+         when(action.getParameterValues()).thenReturn(parameterValuesAction);\r
+        when(parameterValuesAction.getStringValue()).thenReturn(stringValuesAc1);\r
+        when(stringValueAc1.getValue()).thenReturn("ParameterName");\r
+        when(stringValueAc1.getValue()).thenReturn("ParameterName");\r
+        List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.template.rev151201.template.instance.grouping.template.parameter.parameter.values.StringValue> stringValuesAc2 = new LinkedList<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.template.rev151201.template.instance.grouping.template.parameter.parameter.values.StringValue>();\r
+        List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.template.rev151201.template.instance.grouping.template.parameter.parameter.values.IntValue> intValuesAc2 = new LinkedList<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.template.rev151201.template.instance.grouping.template.parameter.parameter.values.IntValue>();\r
+        org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.template.rev151201.template.instance.grouping.template.parameter.parameter.values.StringValue stringValueAc2 = mock(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.template.rev151201.template.instance.grouping.template.parameter.parameter.values.StringValue.class);\r
+        org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.template.rev151201.template.instance.grouping.template.parameter.parameter.values.IntValue intValueAc2 = mock(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.template.rev151201.template.instance.grouping.template.parameter.parameter.values.IntValue.class);\r
+        stringValuesAc2.add(stringValueAc2);\r
+        intValuesAc2.add(intValueAc2);\r
+        org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.template.rev151201.template.instance.grouping.template.parameter.parameter.values.RangeValue rangeValueAc2 = mock(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.template.rev151201.template.instance.grouping.template.parameter.parameter.values.RangeValue.class);\r
+        when(parameterValuesAc.getStringValue()).thenReturn(stringValuesAc2);\r
+        when(parameterValuesAc.getStringValue()).thenReturn(stringValuesAc2);\r
+\r
+\r
+        Map<String, String> nameIdMap = new HashMap<String, String>();\r
+        String s1 = "s1";\r
+        String s2 = "11111111-1111-1111-1111-111111111111";\r
+        nameIdMap.put(s1,s2);\r
+        field = class1.getDeclaredField("nameIdMap");\r
+        field.setAccessible(true);\r
+        field.set(updateTemplateInstance,nameIdMap);\r
+\r
+        field = class1.getDeclaredField("abstractInstanceIdMap");\r
+        field.setAccessible(true);\r
+        Map<String,String> abstractInstanceIdMap = new HashMap<String,String>();\r
+        String s3 = "11111111-1111-1111-1111-111111111111";\r
+        String s4 = "11111111-1111-1111-1111-111111111111";\r
+        abstractInstanceIdMap.put(s3,s4);\r
+        field.set(updateTemplateInstance,abstractInstanceIdMap);\r
+\r
+        when(stringValueAc2.getValue()).thenReturn("s1");\r
+        when(stringValueAc2.getValue()).thenReturn("s1");\r
+\r
+        when(parameterValuesAc.getIntValue()).thenReturn(intValuesAc2);\r
+        when(parameterValuesAc.getIntValue()).thenReturn(intValuesAc2);\r
+        when(intValueAc2.getValue()).thenReturn(1L);\r
+        when(intValueAc2.getValue()).thenReturn(1L);\r
+\r
+        when(parameterValuesAc.getRangeValue()).thenReturn(rangeValueAc2);\r
+        when(parameterValuesAc.getRangeValue()).thenReturn(rangeValueAc2);\r
+        when(rangeValueAc2.getMax()).thenReturn(2L);\r
+        when(rangeValueAc2.getMin()).thenReturn(1L);\r
+\r
+        when(action.getParameterValues()).thenReturn(parameterValuesAction);\r
+        when(parameterValuesAction.getIntValue()).thenReturn(intValuesAc1);\r
+        when(action.getParameterValues()).thenReturn(parameterValuesAction);\r
+        when(parameterValuesAction.getIntValue()).thenReturn(intValuesAc1);\r
+\r
+        when(action.getParameterValues()).thenReturn(parameterValuesAction);\r
+        when(parameterValuesAction.getRangeValue()).thenReturn(rangeValueAc1);\r
+        when(action.getParameterValues()).thenReturn(parameterValuesAction);\r
+        when(parameterValuesAction.getRangeValue()).thenReturn(rangeValueAc1);\r
+        when(rangeValueAc1.getMax()).thenReturn(2L);\r
+        when(rangeValueAc1.getMin()).thenReturn(1L);\r
+\r
+\r
+\r
+        method.invoke(updateTemplateInstance, action,instaceParameterMap);\r
+        //System.out.println("###########  Result XXXXXXXX "+method.invoke(updateTemplateInstance, action,instaceParameterMap)+" ####");\r
+    }\r
+}
\ No newline at end of file