--- /dev/null
+/*\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;\r
+\r
+import org.opendaylight.controller.md.sal.binding.api.DataBroker;\r
+import org.opendaylight.nemo.intent.IntentResolutionException;\r
+import org.opendaylight.nemo.intent.IntentResolver;\r
+import org.opendaylight.nemo.intent.computation.VNMappingException;\r
+import org.opendaylight.nemo.user.advancedquery.AdvancedQuery;\r
+import org.opendaylight.nemo.user.tenantmanager.AAA;\r
+import org.opendaylight.nemo.user.tenantmanager.RegisterUser;\r
+import org.opendaylight.nemo.user.tenantmanager.TenantManage;\r
+import org.opendaylight.nemo.user.transactionmanager.TransactionBegin;\r
+import org.opendaylight.nemo.user.transactionmanager.TransactionEnd;\r
+import org.opendaylight.nemo.user.vnspacemanager.languagestyle.LanguageIntent;\r
+import org.opendaylight.nemo.user.vnspacemanager.languagestyle.NEMOConstants;\r
+import org.opendaylight.nemo.user.vnspacemanager.languagestyle.NEMOParse.ParseException;\r
+import org.opendaylight.nemo.user.vnspacemanager.languagestyle.NEMOParse.SimpleCharStream;\r
+import org.opendaylight.nemo.user.vnspacemanager.languagestyle.NEMOParse.NEMOparserTokenManager;\r
+import org.opendaylight.nemo.user.vnspacemanager.structurestyle.deleteintent.DeleteIntent;\r
+import org.opendaylight.nemo.user.vnspacemanager.structurestyle.updateintent.UpdateIntent;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.*;\r
+import org.opendaylight.yangtools.yang.common.RpcResult;\r
+import org.opendaylight.yangtools.yang.common.RpcResultBuilder;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.advanced.nemo.query.input.QueryCondition;\r
+import java.util.concurrent.Future;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.Users;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.UserId;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.users.User;\r
+import static org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.CommonRpcResult.ResultCode.Error;\r
+import static org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.CommonRpcResult.ResultCode.Ok;\r
+import org.junit.Assert;\r
+import org.junit.Before;\r
+import org.junit.Test;\r
+import java.util.List;\r
+import java.util.*;\r
+import java.util.Map;\r
+import java.lang.reflect.Field;\r
+import java.lang.reflect.Method;\r
+import com.google.common.base.Function;\r
+import org.opendaylight.nemo.user.vnspacemanager.languagestyle.NEMOParse.NEMOparser;\r
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;\r
+import com.google.common.base.Optional;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.user.rev151010.UserRoles;\r
+import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;\r
+import com.google.common.util.concurrent.CheckedFuture;\r
+import com.google.common.util.concurrent.FutureCallback;\r
+import com.google.common.util.concurrent.Futures;\r
+import com.google.common.util.concurrent.ListenableFuture;\r
+import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;\r
+import static org.mockito.Mockito.*;\r
+public class UserManagerTest{\r
+ private DataBroker dataBroker;\r
+ private LanguageIntent languageIntent;\r
+ private TenantManage tenantManage;\r
+ private IntentResolver intentResolver;\r
+ UserManager usermanager1;\r
+ @org.junit.Before\r
+ public void setUp()throws Exception{\r
+ dataBroker=mock(DataBroker.class);\r
+ intentResolver=mock(IntentResolver.class);\r
+ tenantManage=mock(TenantManage.class);\r
+ \r
+ Class<NEMOparser> class1 = NEMOparser.class;\r
+ Field field = class1.getDeclaredField("jj_initialized_once");\r
+ field.setAccessible(true);\r
+ field.set(usermanager1,false);\r
+ \r
+ Class<SimpleCharStream> class2=SimpleCharStream.class;\r
+ Field field1=class2.getDeclaredField("inputStream");\r
+ field1.setAccessible(true);\r
+ field1.set(usermanager1,null);\r
+ \r
+ Class<NEMOparserTokenManager> class3=NEMOparserTokenManager.class;\r
+ Field field2=class3.getDeclaredField("input_stream");\r
+ field2.setAccessible(true);\r
+ field2.set(usermanager1,null);\r
+ usermanager1=new UserManager(dataBroker,intentResolver); \r
+ }\r
+\r
+ @org.junit.Test \r
+ public void advancedNemoQueryTest()throws Exception{\r
+ \r
+ AdvancedNemoQueryInput input =mock(AdvancedNemoQueryInput.class);\r
+ Map<UserId, User> result=new HashMap<UserId, User>();\r
+ Users users = mock(Users.class);\r
+ User user = mock(User.class);\r
+ UserId userId = mock(UserId.class);\r
+ UserId userId1 = mock(UserId.class);\r
+ result.put(userId,user);\r
+ ReadOnlyTransaction readOnlyTransaction = mock(ReadOnlyTransaction.class);\r
+ CheckedFuture checkedFuture = mock(CheckedFuture.class);\r
+ Optional<Users> usersOpt = Optional.of(users);\r
+ List<User> userList = new ArrayList<User>();\r
+ \r
+ \r
+ userList.add(user);\r
+ \r
+ when(input.getUserId()).thenReturn(userId1);\r
+ when(dataBroker.newReadOnlyTransaction()).thenReturn(readOnlyTransaction);\r
+ when(readOnlyTransaction.read(any(LogicalDatastoreType.class), any(InstanceIdentifier.class))).thenReturn(checkedFuture);\r
+ when(checkedFuture.get()).thenReturn(usersOpt);\r
+ when(users.getUser()).thenReturn(userList);\r
+ when(user.getUserId()).thenReturn(userId);\r
+ AdvancedNemoQueryOutputBuilder outputBuilder = new AdvancedNemoQueryOutputBuilder();\r
+ outputBuilder.setResultCode(Error).setMessage("The user is not exist.");\r
+ Assert.assertNotNull(usermanager1.advancedNemoQuery(input)); \r
+ } \r
+ \r
+ \r
+ @Test \r
+ public void beginTransactionTest()throws Exception{\r
+ IntentResolver intentResolver1=mock(IntentResolver.class);\r
+ BeginTransactionInput input=mock(BeginTransactionInput.class);\r
+ BeginTransactionOutputBuilder outputBuilder = new BeginTransactionOutputBuilder();\r
+ Map<UserId, User> result;\r
+ Users users = mock(Users.class);\r
+ User user = mock(User.class);\r
+ UserId userId = mock(UserId.class);\r
+ UserId userId1 = mock(UserId.class);\r
+ ReadOnlyTransaction readOnlyTransaction = mock(ReadOnlyTransaction.class);\r
+ CheckedFuture checkedFuture = mock(CheckedFuture.class);\r
+ Optional<Users> usersOpt = Optional.of(users);\r
+ List<User> userList = new ArrayList<User>();\r
+ \r
+ \r
+ userList.add(user);\r
+ \r
+ when(input.getUserId()).thenReturn(userId1);\r
+ when(dataBroker.newReadOnlyTransaction()).thenReturn(readOnlyTransaction);\r
+ when(readOnlyTransaction.read(any(LogicalDatastoreType.class), any(InstanceIdentifier.class))).thenReturn(checkedFuture);\r
+ when(checkedFuture.get()).thenReturn(usersOpt);\r
+ when(users.getUser()).thenReturn(userList);\r
+ when(user.getUserId()).thenReturn(userId);\r
+ Assert.assertNotNull(usermanager1.beginTransaction(input)); \r
+ }\r
+ @Test\r
+ public void endTransactionTest() throws Exception{\r
+ usermanager1.transaction=false;\r
+ EndTransactionInput input=mock(EndTransactionInput.class);\r
+ Assert.assertNotNull(usermanager1.endTransaction(input)); \r
+ \r
+ \r
+ usermanager1.transaction=true;\r
+ Map<UserId, User> result;\r
+ Users users = mock(Users.class);\r
+ User user = mock(User.class);\r
+ UserId userId = mock(UserId.class);\r
+ UserId userId1 = mock(UserId.class);\r
+ ReadOnlyTransaction readOnlyTransaction = mock(ReadOnlyTransaction.class);\r
+ CheckedFuture checkedFuture = mock(CheckedFuture.class);\r
+ Optional<Users> usersOpt = Optional.of(users);\r
+ List<User> userList = new ArrayList<User>();\r
+ \r
+ \r
+ userList.add(user);\r
+ \r
+ when(input.getUserId()).thenReturn(userId1);\r
+ when(dataBroker.newReadOnlyTransaction()).thenReturn(readOnlyTransaction);\r
+ when(readOnlyTransaction.read(any(LogicalDatastoreType.class), any(InstanceIdentifier.class))).thenReturn(checkedFuture);\r
+ when(checkedFuture.get()).thenReturn(usersOpt);\r
+ when(users.getUser()).thenReturn(userList);\r
+ when(user.getUserId()).thenReturn(userId);\r
+ usermanager1.informresolver=false;\r
+ Assert.assertNotNull(usermanager1.endTransaction(input)); \r
+ }\r
+ @Test\r
+ public void languageStyleNemoRequestTest() throws Exception{\r
+ LanguageStyleNemoRequestInput input=mock(LanguageStyleNemoRequestInput.class);\r
+ Map<UserId, User> result;\r
+ Users users = mock(Users.class);\r
+ User user = mock(User.class);\r
+ UserId userId = mock(UserId.class);\r
+ UserId userId1 = mock(UserId.class);\r
+ ReadOnlyTransaction readOnlyTransaction = mock(ReadOnlyTransaction.class);\r
+ CheckedFuture checkedFuture = mock(CheckedFuture.class);\r
+ Optional<Users> usersOpt = Optional.of(users);\r
+ List<User> userList = new ArrayList<User>();\r
+ \r
+ \r
+ userList.add(user);\r
+ \r
+ when(input.getUserId()).thenReturn(userId1);\r
+ when(dataBroker.newReadOnlyTransaction()).thenReturn(readOnlyTransaction);\r
+ when(readOnlyTransaction.read(any(LogicalDatastoreType.class), any(InstanceIdentifier.class))).thenReturn(checkedFuture);\r
+ when(checkedFuture.get()).thenReturn(usersOpt);\r
+ when(users.getUser()).thenReturn(userList);\r
+ when(user.getUserId()).thenReturn(userId);\r
+ Assert.assertNotNull(usermanager1.languageStyleNemoRequest(input)); \r
+ }\r
+ @Test \r
+ public void registerUserTest() throws Exception{\r
+ RegisterUserInput input=mock(RegisterUserInput.class); \r
+ Map<UserId, User> result=new HashMap<UserId, User>();\r
+ Users users = mock(Users.class);\r
+ UserRoles userRoles = mock(UserRoles.class);\r
+ User user = mock(User.class);\r
+ UserId userId = mock(UserId.class);\r
+ \r
+ result.put(userId,user);\r
+ ReadOnlyTransaction readOnlyTransaction = mock(ReadOnlyTransaction.class);\r
+ CheckedFuture checkedFuture = mock(CheckedFuture.class);\r
+ Optional<Users> usersOpt = Optional.of(users);\r
+ List<User> userList = new ArrayList<User>();\r
+ Optional<UserRoles> userrolesOpt = Optional.of(userRoles);\r
+ \r
+ userList.add(user);\r
+ \r
+ when(input.getUserId()).thenReturn(userId).thenReturn(userId);\r
+ when(dataBroker.newReadOnlyTransaction()).thenReturn(readOnlyTransaction).thenReturn(readOnlyTransaction);\r
+ when(readOnlyTransaction.read(any(LogicalDatastoreType.class), any(InstanceIdentifier.class))).thenReturn(checkedFuture).thenReturn(checkedFuture);\r
+ when(checkedFuture.get()).thenReturn(userrolesOpt).thenReturn(usersOpt);\r
+ when(users.getUser()).thenReturn(userList);\r
+ when(user.getUserId()).thenReturn(userId);\r
+ Assert.assertNotNull(usermanager1.registerUser(input)); \r
+ }\r
+ @Test\r
+ public void structureStyleNemoDeleteTest() throws Exception{\r
+ StructureStyleNemoDeleteInput input=mock(StructureStyleNemoDeleteInput.class);\r
+ Map<UserId, User> result=new HashMap<UserId, User>();\r
+ Users users = mock(Users.class);\r
+ User user = mock(User.class);\r
+ UserId userId = mock(UserId.class);\r
+ UserId userId1 = mock(UserId.class);\r
+ result.put(userId,user);\r
+ ReadOnlyTransaction readOnlyTransaction = mock(ReadOnlyTransaction.class);\r
+ CheckedFuture checkedFuture = mock(CheckedFuture.class);\r
+ Optional<Users> usersOpt = Optional.of(users);\r
+ List<User> userList = new ArrayList<User>();\r
+ \r
+ \r
+ userList.add(user);\r
+ \r
+ when(input.getUserId()).thenReturn(userId1);\r
+ when(dataBroker.newReadOnlyTransaction()).thenReturn(readOnlyTransaction);\r
+ when(readOnlyTransaction.read(any(LogicalDatastoreType.class), any(InstanceIdentifier.class))).thenReturn(checkedFuture);\r
+ when(checkedFuture.get()).thenReturn(usersOpt);\r
+ when(users.getUser()).thenReturn(userList);\r
+ when(user.getUserId()).thenReturn(userId);\r
+ AdvancedNemoQueryOutputBuilder outputBuilder = new AdvancedNemoQueryOutputBuilder();\r
+ outputBuilder.setResultCode(Error).setMessage("The user is not exist.");\r
+ Assert.assertNotNull(usermanager1.structureStyleNemoDelete(input)); \r
+ }\r
+ public void structureStyleNemoUpdateTest() throws Exception{\r
+ StructureStyleNemoUpdateInput input=mock(StructureStyleNemoUpdateInput.class);\r
+ Map<UserId, User> result=new HashMap<UserId, User>();\r
+ Users users = mock(Users.class);\r
+ User user = mock(User.class);\r
+ UserId userId = mock(UserId.class);\r
+ UserId userId1 = mock(UserId.class);\r
+ result.put(userId,user);\r
+ ReadOnlyTransaction readOnlyTransaction = mock(ReadOnlyTransaction.class);\r
+ CheckedFuture checkedFuture = mock(CheckedFuture.class);\r
+ Optional<Users> usersOpt = Optional.of(users);\r
+ List<User> userList = new ArrayList<User>();\r
+ \r
+ \r
+ userList.add(user);\r
+ \r
+ when(input.getUserId()).thenReturn(userId1);\r
+ when(dataBroker.newReadOnlyTransaction()).thenReturn(readOnlyTransaction);\r
+ when(readOnlyTransaction.read(any(LogicalDatastoreType.class), any(InstanceIdentifier.class))).thenReturn(checkedFuture);\r
+ when(checkedFuture.get()).thenReturn(usersOpt);\r
+ when(users.getUser()).thenReturn(userList);\r
+ when(user.getUserId()).thenReturn(userId);\r
+ AdvancedNemoQueryOutputBuilder outputBuilder = new AdvancedNemoQueryOutputBuilder();\r
+ outputBuilder.setResultCode(Error).setMessage("The user is not exist.");\r
+ Assert.assertNotNull(usermanager1.structureStyleNemoUpdate(input));\r
+ }\r
+}\r
+\r
--- /dev/null
+/*\r
+ * Copyright (c) 2015 Huawei, Inc. and others. All rights reserved.\r
+ *\r
+ * This program and the accompanying materials are made available under the\r
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,\r
+ * and is available at http://www.eclipse.org/legal/epl-v10.html\r
+ */\r
+package org.opendaylight.nemo.user.vnspacemanager.structurestyle.updateintent;\r
+import static org.mockito.Mockito.*;\r
+import org.junit.Assert;\r
+import org.junit.Before;\r
+import org.junit.Test;\r
+public class ValueCheckTest{\r
+ private ValueCheck valuecheck;\r
+@Before\r
+public void setUp() throws Exception{\r
+ valuecheck=new ValueCheck();\r
+ }\r
+@Test\r
+public void checkMacTest() throws Exception{\r
+ //branch 1\r
+ String macAddress1="11:22:33";\r
+ Assert.assertFalse(valuecheck.checkMac(macAddress1));\r
+ //branch 2\r
+ String macAddress2="11:222:33:44:55:66";\r
+ Assert.assertFalse(valuecheck.checkMac(macAddress2));\r
+ //branch 3\r
+ String macAddress3="1s:22:33:44:55:66";\r
+ Assert.assertFalse(valuecheck.checkMac(macAddress3));\r
+ //branch 4 \r
+ String macAddress4="00:00:00:00:00:00";\r
+ Assert.assertTrue(valuecheck.checkMac(macAddress4));\r
+}\r
+@Test\r
+public void checkIpPrefixTest()throws Exception{\r
+ //branch 1 \r
+ String ipPrefix1="11/22/33";\r
+ Assert.assertFalse(valuecheck.checkIpPrefix(ipPrefix1));\r
+ //branch 2\r
+ String ipPrefix2="22/33";\r
+ Assert.assertFalse(valuecheck.checkIpPrefix(ipPrefix2));\r
+ //branch 3 \r
+ String ipPrefix3="00:00:00:00:00:000/12";\r
+ Assert.assertFalse(valuecheck.checkIpPrefix(ipPrefix3));\r
+ //branch 4 \r
+ String ipPrefix4="10.1.1.1/12";\r
+ Assert.assertTrue(valuecheck.checkIpPrefix(ipPrefix4));\r
+}\r
+@Test\r
+public void checkIpAddressTest() throws Exception{\r
+ //branch 1 \r
+ String ipAdress1="1.1";\r
+ Assert.assertFalse(valuecheck.checkIpAddress(ipAdress1));\r
+ //branch 2\r
+ String ipAdress2="1111.1.1.1";\r
+ Assert.assertFalse(valuecheck.checkIpAddress(ipAdress2));\r
+ //branch 3\r
+ String ipAdress3="11.1.1.1";\r
+ Assert.assertTrue(valuecheck.checkIpAddress(ipAdress3));\r
+}\r
+@Test\r
+public void checkTimeTest() throws Exception{\r
+ //branch 1 \r
+ String time1="1,1,1";\r
+ Assert.assertTrue(valuecheck.checkTime(time1));\r
+ //branch 2 \r
+ String time2="12:12:12:12";\r
+ Assert.assertFalse(valuecheck.checkTime(time2));\r
+ //branch 3 \r
+ String time3="66:12:12";\r
+ Assert.assertFalse(valuecheck.checkTime(time3));\r
+ String time4="22:66:12";\r
+ Assert.assertFalse(valuecheck.checkTime(time4));\r
+ String time5="21:12:66";\r
+ Assert.assertFalse(valuecheck.checkTime(time5));\r
+ String time6="12:12:12";\r
+ Assert.assertTrue(valuecheck.checkTime(time6));\r
+ //branch 4\r
+ String time7="2015-12-16-22,12:12:12";\r
+ Assert.assertFalse(valuecheck.checkTime(time7));\r
+ //branch 5\r
+ String time8="2015-66-16,12:12:12";\r
+ Assert.assertFalse(valuecheck.checkTime(time8));\r
+ //branch 6\r
+ String time9="2015-1-32,12:12:12";\r
+ Assert.assertFalse(valuecheck.checkTime(time9));\r
+ //branch 7\r
+ String time10="2015-4-31,12:12:12";\r
+ Assert.assertFalse(valuecheck.checkTime(time10));\r
+ //branch 8\r
+ String time11="2015-2-29,12:12:12";\r
+ Assert.assertFalse(valuecheck.checkTime(time11));\r
+ //branch 9\r
+ String time12="2015-2-28,12:12";\r
+ Assert.assertFalse(valuecheck.checkTime(time12));\r
+ //branch 10\r
+ String time13="2015-12-16,12:12:12";\r
+ Assert.assertTrue(valuecheck.checkTime(time13)); \r
+}\r
+}
\ No newline at end of file