70e3515d150169c43b789daefa505f3c3da425bb
[nemo.git] / nemo-impl / src / test / java / org / opendaylight / nemo / user / vnspacemanager / structurestyle / updateintent / UpdateNodeTest.java
1 /*\r
2  * Copyright (c) 2015 Huawei, Inc. and others. All rights reserved.\r
3  *\r
4  * This program and the accompanying materials are made available under the\r
5  * terms of the Eclipse Public License v1.0 which accompanies this distribution,\r
6  * and is available at http://www.eclipse.org/legal/epl-v10.html\r
7  */\r
8 package org.opendaylight.nemo.user.vnspacemanager.structurestyle.updateintent;\r
9 import org.opendaylight.nemo.user.vnspacemanager.structurestyle.updateintent.UpdateNode;\r
10 \r
11 import static org.mockito.Mockito.mock;\r
12 import static org.mockito.Mockito.*;\r
13 import org.junit.Assert;\r
14 import org.junit.Before;\r
15 import org.junit.Test;\r
16 import junit.framework.TestCase;\r
17 \r
18 import org.opendaylight.controller.md.sal.binding.api.DataBroker;\r
19 import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;\r
20 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;\r
21 import org.opendaylight.nemo.user.tenantmanager.TenantManage;\r
22 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.UserId;\r
23 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.Users;\r
24 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.Objects;\r
25 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.objects.Node;\r
26 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.objects.NodeBuilder;\r
27 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.objects.NodeKey;\r
28 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.users.User;\r
29 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.users.UserKey;\r
30 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;\r
31 import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException;\r
32 import com.google.common.util.concurrent.CheckedFuture;\r
33 import com.google.common.util.concurrent.FutureCallback;\r
34 import com.google.common.util.concurrent.Futures;\r
35 import org.slf4j.Logger;\r
36 import org.slf4j.LoggerFactory;\r
37 import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;\r
38 \r
39 public class UpdateNodeTest {\r
40 \r
41     private UpdateNode updateNode;\r
42 \r
43     private DataBroker dataBroker;\r
44     private TenantManage tenantManage;\r
45     private UserId userId;\r
46     private Node node;\r
47     \r
48     @org.junit.Before\r
49     public void setUp() throws Exception {\r
50         dataBroker = mock(DataBroker.class);\r
51         tenantManage = mock(TenantManage.class);\r
52         userId = mock(UserId.class);\r
53         node = mock(Node.class);\r
54         \r
55         updateNode = new UpdateNode(dataBroker, tenantManage);\r
56 \r
57     }\r
58 \r
59     @org.junit.Test\r
60     public void testNodeHandling() throws Exception {\r
61         \r
62         String errorDefinition = new String("This type of Node has not been defined.");\r
63         \r
64         CheckedFuture connectiondefinitionFuture = mock(CheckedFuture.class);\r
65         ReadOnlyTransaction readOnlyTransaction = mock(ReadOnlyTransaction.class);\r
66         when(dataBroker.newReadOnlyTransaction()).thenReturn(readOnlyTransaction);\r
67         when(readOnlyTransaction.read(any(LogicalDatastoreType.class), any(InstanceIdentifier.class))).thenReturn(connectiondefinitionFuture); \r
68 \r
69         Assert.assertEquals(updateNode.NodeHandling(userId,node),errorDefinition);\r
70         \r
71     }\r
72 }