Updated Branches: refs/heads/regions c17c7007f -> e7341313e
Added unit tests Project: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/commit/e7341313 Tree: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/tree/e7341313 Diff: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/diff/e7341313 Branch: refs/heads/regions Commit: e7341313e999a64f6b221453be82f1561bce082d Parents: c17c700 Author: Kishan Kavala <[email protected]> Authored: Thu Jan 31 22:28:09 2013 +0530 Committer: Kishan Kavala <[email protected]> Committed: Thu Jan 31 22:28:09 2013 +0530 ---------------------------------------------------------------------- .../api/command/admin/domain/DeleteDomainCmd.java | 7 +- .../cloudstack/api/command/test/RegionCmdTest.java | 104 +++++++++++++++ .../cloudstack/region/RegionManagerImpl.java | 4 +- .../cloudstack/region/RegionServiceImpl.java | 3 +- .../cloudstack/region/RegionManagerTest.java | 74 ++++++++++ 5 files changed, 184 insertions(+), 8 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e7341313/api/src/org/apache/cloudstack/api/command/admin/domain/DeleteDomainCmd.java ---------------------------------------------------------------------- diff --git a/api/src/org/apache/cloudstack/api/command/admin/domain/DeleteDomainCmd.java b/api/src/org/apache/cloudstack/api/command/admin/domain/DeleteDomainCmd.java index b013391..39250fd 100644 --- a/api/src/org/apache/cloudstack/api/command/admin/domain/DeleteDomainCmd.java +++ b/api/src/org/apache/cloudstack/api/command/admin/domain/DeleteDomainCmd.java @@ -44,7 +44,7 @@ public class DeleteDomainCmd extends BaseAsyncCmd { private Boolean cleanup; @Parameter(name=ApiConstants.IS_PROPAGATE, type=CommandType.BOOLEAN, description="True if command is sent from another Region") - private Boolean isPropagate; + private Boolean propagate; ///////////////////////////////////////////////////// /////////////////// Accessors /////////////////////// @@ -58,8 +58,8 @@ public class DeleteDomainCmd extends BaseAsyncCmd { return cleanup; } - public Boolean getIsPropagate() { - return isPropagate; + public Boolean isPropagate() { + return propagate; } ///////////////////////////////////////////////////// @@ -94,7 +94,6 @@ public class DeleteDomainCmd extends BaseAsyncCmd { @Override public void execute(){ UserContext.current().setEventDetails("Domain Id: "+getId()); - boolean isPopagate = (getIsPropagate() != null ) ? getIsPropagate() : false; boolean result = _regionService.deleteDomain(this); if (result) { SuccessResponse response = new SuccessResponse(getCommandName()); http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e7341313/api/test/org/apache/cloudstack/api/command/test/RegionCmdTest.java ---------------------------------------------------------------------- diff --git a/api/test/org/apache/cloudstack/api/command/test/RegionCmdTest.java b/api/test/org/apache/cloudstack/api/command/test/RegionCmdTest.java new file mode 100644 index 0000000..01cd33b --- /dev/null +++ b/api/test/org/apache/cloudstack/api/command/test/RegionCmdTest.java @@ -0,0 +1,104 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. +package org.apache.cloudstack.api.command.test; + +import junit.framework.Assert; +import junit.framework.TestCase; + +import org.apache.cloudstack.api.ResponseGenerator; +import org.apache.cloudstack.api.ServerApiException; +import org.apache.cloudstack.api.command.admin.region.AddRegionCmd; +import org.apache.cloudstack.api.response.RegionResponse; +import org.apache.cloudstack.region.Region; +import org.apache.cloudstack.region.RegionService; +import org.junit.Before; +import org.junit.Rule; +import org.junit.Test; +import org.junit.rules.ExpectedException; +import org.mockito.Mockito; + +public class RegionCmdTest extends TestCase { + + private AddRegionCmd addRegionCmd; + private ResponseGenerator responseGenerator; + + @Rule + public ExpectedException expectedException = ExpectedException.none(); + + @Before + public void setUp() { + + addRegionCmd = new AddRegionCmd() { + + @Override + public Integer getId() { + return 2; + } + + @Override + public String getRegionName() { + return "APAC"; + } + + }; + } + + @Test + public void testCreateSuccess() { + + RegionService regionService = Mockito.mock(RegionService.class); + + Region region = Mockito.mock(Region.class); + Mockito.when( + regionService.addRegion(Mockito.anyInt(), Mockito.anyString(), Mockito.anyString(), Mockito.anyString(), Mockito.anyString())) + .thenReturn(region); + + addRegionCmd._regionService = regionService; + responseGenerator = Mockito.mock(ResponseGenerator.class); + + RegionResponse regionResponse = Mockito.mock(RegionResponse.class); + + Mockito.when(responseGenerator.createRegionResponse(region)).thenReturn( + regionResponse); + + addRegionCmd._responseGenerator = responseGenerator; + addRegionCmd.execute(); + + } + + @Test + public void testCreateFailure() { + + RegionService regionService = Mockito.mock(RegionService.class); + + Region region = Mockito.mock(Region.class); + Mockito.when( + regionService.addRegion(Mockito.anyInt(), Mockito.anyString(), Mockito.anyString(), Mockito.anyString(), Mockito.anyString())) + .thenReturn(null); + + addRegionCmd._regionService = regionService; + + try { + addRegionCmd.execute(); + } catch (ServerApiException exception) { + Assert.assertEquals("Failed to add Region", + exception.getDescription()); + } + + } + +} http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e7341313/server/src/org/apache/cloudstack/region/RegionManagerImpl.java ---------------------------------------------------------------------- diff --git a/server/src/org/apache/cloudstack/region/RegionManagerImpl.java b/server/src/org/apache/cloudstack/region/RegionManagerImpl.java index d93ab10..bef2325 100755 --- a/server/src/org/apache/cloudstack/region/RegionManagerImpl.java +++ b/server/src/org/apache/cloudstack/region/RegionManagerImpl.java @@ -58,9 +58,9 @@ public class RegionManagerImpl implements RegionManager, Manager{ public static final Logger s_logger = Logger.getLogger(RegionManagerImpl.class); @Inject - private RegionDao _regionDao; + RegionDao _regionDao; @Inject - private AccountDao _accountDao; + AccountDao _accountDao; @Inject private AccountManager _accountMgr; @Inject http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e7341313/server/src/org/apache/cloudstack/region/RegionServiceImpl.java ---------------------------------------------------------------------- diff --git a/server/src/org/apache/cloudstack/region/RegionServiceImpl.java b/server/src/org/apache/cloudstack/region/RegionServiceImpl.java index db592ad..f5a0a80 100755 --- a/server/src/org/apache/cloudstack/region/RegionServiceImpl.java +++ b/server/src/org/apache/cloudstack/region/RegionServiceImpl.java @@ -39,7 +39,6 @@ import org.apache.log4j.Logger; import com.cloud.domain.Domain; import com.cloud.domain.dao.DomainDao; import com.cloud.exception.ConcurrentOperationException; -import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; import com.cloud.exception.ResourceUnavailableException; import com.cloud.user.Account; @@ -224,7 +223,7 @@ public class RegionServiceImpl implements RegionService, Manager { @Override public boolean deleteDomain(DeleteDomainCmd cmd) { boolean result = false; - if(checkIsPropagate(cmd.getIsPropagate())){ + if(checkIsPropagate(cmd.isPropagate())){ result = _domainMgr.deleteDomain(cmd.getId(), cmd.getCleanup()); } else { result = _regionMgr.deleteDomain(cmd.getId(), cmd.getCleanup()); http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e7341313/server/test/org/apache/cloudstack/region/RegionManagerTest.java ---------------------------------------------------------------------- diff --git a/server/test/org/apache/cloudstack/region/RegionManagerTest.java b/server/test/org/apache/cloudstack/region/RegionManagerTest.java new file mode 100644 index 0000000..330f0b4 --- /dev/null +++ b/server/test/org/apache/cloudstack/region/RegionManagerTest.java @@ -0,0 +1,74 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +package org.apache.cloudstack.region; + + +import junit.framework.Assert; +import junit.framework.TestCase; + +import org.apache.cloudstack.api.command.admin.domain.DeleteDomainCmd; +import org.apache.cloudstack.region.dao.RegionDao; +import org.apache.log4j.Logger; +import org.junit.Before; +import org.junit.Test; +import org.mockito.Mockito; + +import com.cloud.exception.InvalidParameterValueException; +import com.cloud.user.Account; +import com.cloud.user.UserContext; +import com.cloud.user.dao.AccountDao; + + + +public class RegionManagerTest extends TestCase { + private static final Logger s_logger = Logger.getLogger(RegionManagerTest.class); + + @Before + @Override + protected void setUp() { + + } + + @Test + public void testUniqueName() { + RegionManagerImpl regionMgr = new RegionManagerImpl(); + RegionDao regionDao = Mockito.mock(RegionDao.class); + RegionVO region = new RegionVO(2, "APAC", "", null, null); + Mockito.when(regionDao.findByName(Mockito.anyString())).thenReturn(region); + regionMgr._regionDao = regionDao; + try { + regionMgr.addRegion(2, "APAC", "", null, null); + } catch (InvalidParameterValueException e){ + Assert.assertEquals("Region with name: APAC already exists", e.getMessage()); + } + } + + @Test + public void testUserDelete() { + RegionManagerImpl regionMgr = new RegionManagerImpl(); + AccountDao accountDao = Mockito.mock(AccountDao.class); + Mockito.when(accountDao.findById(Mockito.anyLong())).thenReturn(null); + regionMgr._accountDao = accountDao; + try { + regionMgr.deleteUserAccount(5); + } catch (InvalidParameterValueException e){ + Assert.assertEquals("The specified account does not exist in the system", e.getMessage()); + } + } + +}
