Return-Path: X-Original-To: apmail-continuum-commits-archive@www.apache.org Delivered-To: apmail-continuum-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 519F11066E for ; Wed, 11 Feb 2015 21:28:03 +0000 (UTC) Received: (qmail 56610 invoked by uid 500); 11 Feb 2015 21:28:03 -0000 Delivered-To: apmail-continuum-commits-archive@continuum.apache.org Received: (qmail 56578 invoked by uid 500); 11 Feb 2015 21:28:03 -0000 Mailing-List: contact commits-help@continuum.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@continuum.apache.org Delivered-To: mailing list commits@continuum.apache.org Received: (qmail 56568 invoked by uid 99); 11 Feb 2015 21:28:03 -0000 Received: from eris.apache.org (HELO hades.apache.org) (140.211.11.105) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 11 Feb 2015 21:28:03 +0000 Received: from hades.apache.org (localhost [127.0.0.1]) by hades.apache.org (ASF Mail Server at hades.apache.org) with ESMTP id 1AEC4AC010E for ; Wed, 11 Feb 2015 21:28:03 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1659091 - in /continuum/trunk/continuum-xmlrpc/continuum-xmlrpc-server: pom.xml src/test/java/org/apache/continuum/xmlrpc/server/ContinuumServiceImplTest.java Date: Wed, 11 Feb 2015 21:28:03 -0000 To: commits@continuum.apache.org From: batkinson@apache.org X-Mailer: svnmailer-1.0.9 Message-Id: <20150211212803.1AEC4AC010E@hades.apache.org> Author: batkinson Date: Wed Feb 11 21:28:02 2015 New Revision: 1659091 URL: http://svn.apache.org/r1659091 Log: Converted continuum-xmlrpc-server tests to mockito. Modified: continuum/trunk/continuum-xmlrpc/continuum-xmlrpc-server/pom.xml continuum/trunk/continuum-xmlrpc/continuum-xmlrpc-server/src/test/java/org/apache/continuum/xmlrpc/server/ContinuumServiceImplTest.java Modified: continuum/trunk/continuum-xmlrpc/continuum-xmlrpc-server/pom.xml URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-xmlrpc/continuum-xmlrpc-server/pom.xml?rev=1659091&r1=1659090&r2=1659091&view=diff ============================================================================== --- continuum/trunk/continuum-xmlrpc/continuum-xmlrpc-server/pom.xml (original) +++ continuum/trunk/continuum-xmlrpc/continuum-xmlrpc-server/pom.xml Wed Feb 11 21:28:02 2015 @@ -124,24 +124,8 @@ provided - org.jmock - jmock - test - - - org.jmock - jmock-junit3 - test - - - cglib - cglib-nodep - test - - - org.objenesis - objenesis - test + org.mockito + mockito-all org.slf4j Modified: continuum/trunk/continuum-xmlrpc/continuum-xmlrpc-server/src/test/java/org/apache/continuum/xmlrpc/server/ContinuumServiceImplTest.java URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-xmlrpc/continuum-xmlrpc-server/src/test/java/org/apache/continuum/xmlrpc/server/ContinuumServiceImplTest.java?rev=1659091&r1=1659090&r2=1659091&view=diff ============================================================================== --- continuum/trunk/continuum-xmlrpc/continuum-xmlrpc-server/src/test/java/org/apache/continuum/xmlrpc/server/ContinuumServiceImplTest.java (original) +++ continuum/trunk/continuum-xmlrpc/continuum-xmlrpc-server/src/test/java/org/apache/continuum/xmlrpc/server/ContinuumServiceImplTest.java Wed Feb 11 21:28:02 2015 @@ -27,6 +27,8 @@ import org.apache.continuum.xmlrpc.utils import org.apache.maven.continuum.Continuum; import org.apache.maven.continuum.ContinuumException; import org.apache.maven.continuum.configuration.ConfigurationService; +import org.apache.maven.continuum.installation.InstallationException; +import org.apache.maven.continuum.installation.InstallationService; import org.apache.maven.continuum.model.project.Project; import org.apache.maven.continuum.model.project.ProjectGroup; import org.apache.maven.continuum.release.ContinuumReleaseManager; @@ -39,10 +41,8 @@ import org.apache.maven.continuum.xmlrpc import org.apache.maven.continuum.xmlrpc.system.Installation; import org.codehaus.plexus.redback.role.RoleManager; import org.codehaus.plexus.spring.PlexusInSpringTestCase; -import org.jmock.Expectations; -import org.jmock.Mockery; -import org.jmock.integration.junit3.JUnit3Mockery; -import org.jmock.lib.legacy.ClassImposteriser; +import org.mockito.ArgumentCaptor; +import org.mockito.internal.matchers.CapturesArguments; import java.util.ArrayList; import java.util.Arrays; @@ -50,13 +50,13 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import static org.mockito.Mockito.*; + public class ContinuumServiceImplTest extends PlexusInSpringTestCase { private ContinuumServiceImpl continuumService; - private Mockery context; - private Continuum continuum; private DistributedReleaseManager distributedReleaseManager; @@ -79,17 +79,14 @@ public class ContinuumServiceImplTest { super.setUp(); - context = new JUnit3Mockery(); - context.setImposteriser( ClassImposteriser.INSTANCE ); - - distributedReleaseManager = context.mock( DistributedReleaseManager.class ); - releaseManager = context.mock( ContinuumReleaseManager.class ); - configurationService = context.mock( ConfigurationService.class ); - distributedBuildManager = context.mock( DistributedBuildManager.class ); - roleManager = context.mock( RoleManager.class ); + distributedReleaseManager = mock( DistributedReleaseManager.class ); + releaseManager = mock( ContinuumReleaseManager.class ); + configurationService = mock( ConfigurationService.class ); + distributedBuildManager = mock( DistributedBuildManager.class ); + roleManager = mock( RoleManager.class ); continuumService = new ContinuumServiceImplStub(); - continuum = context.mock( Continuum.class ); + continuum = mock( Continuum.class ); continuumService.setContinuum( continuum ); continuumService.setDistributedBuildManager( distributedBuildManager ); continuumService.setRoleManager( roleManager ); @@ -112,65 +109,34 @@ public class ContinuumServiceImplTest params.put( "scm-tag", "" ); params.put( "scm-tagbase", "" ); - context.checking( new Expectations() - { - { - one( continuum ).getProject( 1 ); - will( returnValue( project ) ); - - one( continuum ).getConfiguration(); - will( returnValue( configurationService ) ); - - one( configurationService ).isDistributedBuildEnabled(); - will( returnValue( true ) ); - - one( continuum ).getDistributedReleaseManager(); - will( returnValue( distributedReleaseManager ) ); - - one( distributedReleaseManager ).getReleasePluginParameters( 1, "pom.xml" ); - will( returnValue( params ) ); - - one( continuum ).getReleaseManager(); - will( returnValue( releaseManager ) ); - - one( releaseManager ).sanitizeTagName( "scm:svn:http://svn.test.org/repository/project", - "continuum-test-1.0" ); - } - } ); + when( continuum.getProject( 1 ) ).thenReturn( project ); + when( continuum.getConfiguration() ).thenReturn( configurationService ); + when( configurationService.isDistributedBuildEnabled() ).thenReturn( true ); + when( continuum.getDistributedReleaseManager() ).thenReturn( distributedReleaseManager ); + when( distributedReleaseManager.getReleasePluginParameters( 1, "pom.xml" ) ).thenReturn( params ); + when( continuum.getReleaseManager() ).thenReturn( releaseManager ); Map releaseParams = continuumService.getReleasePluginParameters( 1 ); assertEquals( "continuum-test-1.0", releaseParams.get( "scm-tag" ) ); assertEquals( "http://svn.test.org/repository/project/tags", releaseParams.get( "scm-tagbase" ) ); - context.assertIsSatisfied(); + verify( releaseManager ).sanitizeTagName( "scm:svn:http://svn.test.org/repository/project", + "continuum-test-1.0" ); } public void testGetListenerWithDistributedBuilds() throws Exception { - final Map map = getListenerMap(); + Map map = getListenerMap(); - context.checking( new Expectations() - { - { - one( continuum ).getProject( 1 ); - will( returnValue( project ) ); - - one( continuum ).getConfiguration(); - will( returnValue( configurationService ) ); - - one( configurationService ).isDistributedBuildEnabled(); - will( returnValue( true ) ); - - one( continuum ).getDistributedReleaseManager(); - will( returnValue( distributedReleaseManager ) ); - - one( distributedReleaseManager ).getListener( "releaseId-1" ); - will( returnValue( map ) ); - } - } ); + when( continuum.getProject( 1 ) ).thenReturn( project ); + when( continuum.getConfiguration() ).thenReturn( configurationService ); + when( configurationService.isDistributedBuildEnabled() ).thenReturn( true ); + when( continuum.getDistributedReleaseManager() ).thenReturn( distributedReleaseManager ); + when( distributedReleaseManager.getListener( "releaseId-1" ) ).thenReturn( map ); ReleaseListenerSummary summary = continuumService.getListener( 1, "releaseId-1" ); + assertNotNull( summary ); assertEquals( "incomplete-phase", summary.getPhases().get( 0 ) ); assertEquals( "completed-phase", summary.getCompletedPhases().get( 0 ) ); @@ -210,20 +176,12 @@ public class ContinuumServiceImplTest BuildDefinition buildDef = createBuildDefinition(); buildDef.setId( 1 ); - context.checking( new Expectations() - { - { - atLeast( 1 ).of( continuum ).getProject( project.getId() ); - will( returnValue( project ) ); - - atLeast( 1 ).of( continuum ).getProjectGroupByProjectId( project.getId() ); - will( returnValue( projectGroup ) ); - } - } ); + when( continuum.getProject( project.getId() ) ).thenReturn( project ); + when( continuum.getProjectGroupByProjectId( project.getId() ) ).thenReturn( projectGroup ); int result = continuumService.buildProject( project.getId(), buildDef.getId(), buildTrigger ); - assertEquals( 0, result ); + assertEquals( 0, result ); } public void testGetProjectScmRootByProjectGroup() @@ -249,19 +207,12 @@ public class ContinuumServiceImplTest scmRoot.setProjectGroup( projectGroup ); scmRoots.add( scmRoot ); - context.checking( new Expectations() - { - { - atLeast( 1 ).of( continuum ).getProjectScmRootByProjectGroup( projectGroup.getId() ); - will( returnValue( scmRoots ) ); - - atLeast( 1 ).of( continuum ).getProjectGroup( projectGroup.getId() ); - will( returnValue( projectGroup ) ); - } - } ); + when( continuum.getProjectScmRootByProjectGroup( projectGroup.getId() ) ).thenReturn( scmRoots ); + when( continuum.getProjectGroup( projectGroup.getId() ) ).thenReturn( projectGroup ); List projectScmRoots = continuumService.getProjectScmRootByProjectGroup( projectGroup.getId() ); + assertEquals( 2, projectScmRoots.size() ); assertEquals( 1, projectScmRoots.get( 0 ).getState() ); assertEquals( 2, projectScmRoots.get( 1 ).getState() ); @@ -282,16 +233,11 @@ public class ContinuumServiceImplTest scmRoot.setScmRootAddress( "address1" ); scmRoot.setProjectGroup( projectGroup ); - context.checking( new Expectations() - { - { - atLeast( 1 ).of( continuum ).getProjectScmRootByProject( projectId ); - will( returnValue( scmRoot ) ); - } - } ); + when( continuum.getProjectScmRootByProject( projectId ) ).thenReturn( scmRoot ); org.apache.maven.continuum.xmlrpc.project.ProjectScmRoot projectScmRoot = continuumService.getProjectScmRootByProject( projectId ); + assertNotNull( projectScmRoot ); assertEquals( 1, projectScmRoot.getState() ); assertEquals( 3, projectScmRoot.getOldState() ); @@ -301,38 +247,22 @@ public class ContinuumServiceImplTest public void testGetBuildAgentUrl() throws Exception { - context.checking( new Expectations() - { - { - one( continuum ).getConfiguration(); - will( returnValue( configurationService ) ); - - one( configurationService ).isDistributedBuildEnabled(); - will( returnValue( true ) ); - - one( distributedBuildManager ).getBuildAgentUrl( 1, 1 ); - will( returnValue( "http://localhost:8181/continuum-buildagent/xmlrpc" ) ); - } - } ); + String expectedUrl = "http://localhost:8181/continuum-buildagent/xmlrpc"; + + when( continuum.getConfiguration() ).thenReturn( configurationService ); + when( configurationService.isDistributedBuildEnabled() ).thenReturn( true ); + when( distributedBuildManager.getBuildAgentUrl( 1, 1 ) ).thenReturn( expectedUrl ); + String buildAgentUrl = continuumService.getBuildAgentUrl( 1, 1 ); - assertEquals( "http://localhost:8181/continuum-buildagent/xmlrpc", buildAgentUrl ); - context.assertIsSatisfied(); + assertEquals( expectedUrl, buildAgentUrl ); } public void testGetBuildAgentUrlNotSupported() throws Exception { - context.checking( new Expectations() - { - { - one( continuum ).getConfiguration(); - will( returnValue( configurationService ) ); - - one( configurationService ).isDistributedBuildEnabled(); - will( returnValue( false ) ); - } - } ); + when( continuum.getConfiguration() ).thenReturn( configurationService ); + when( configurationService.isDistributedBuildEnabled() ).thenReturn( false ); try { @@ -343,47 +273,30 @@ public class ContinuumServiceImplTest { //pass } - context.assertIsSatisfied(); } public void testGetNonExistingBuildAgentGroup() throws Exception { - context.checking( new Expectations() - { - { - one( continuum ).getConfiguration(); - will( returnValue( configurationService ) ); - - one( configurationService ).getBuildAgentGroup( "Agent Group Name" ); - will( returnValue( null ) ); - } - } ); - int result = continuumService.removeBuildAgentGroup( "Agent Group Name" ); - assertEquals( 0, result ); + String groupName = "Agent Group Name"; + when( continuum.getConfiguration() ).thenReturn( configurationService ); + when( configurationService.getBuildAgentGroup( groupName ) ).thenReturn( null ); + + int result = continuumService.removeBuildAgentGroup( groupName ); - context.assertIsSatisfied(); + assertEquals( 0, result ); } public void testRemoveNonExistingBuildAgentGroup() throws Exception { - context.checking( new Expectations() - { - { - one( continuum ).getConfiguration(); - will( returnValue( configurationService ) ); - - one( configurationService ).getBuildAgentGroup( "Agent Group Name" ); - will( returnValue( null ) ); - - never( configurationService ).removeBuildAgentGroup( with( any( - BuildAgentGroupConfiguration.class ) ) ); - } - } ); + String groupName = "Agent Group Name"; + when( continuum.getConfiguration() ).thenReturn( configurationService ); + when( configurationService.getBuildAgentGroup( groupName ) ).thenReturn( null ); + + continuumService.removeBuildAgentGroup( groupName ); - continuumService.removeBuildAgentGroup( "Agent Group Name" ); - context.assertIsSatisfied(); + verify( configurationService, never() ).removeBuildAgentGroup( any( BuildAgentGroupConfiguration.class ) ); } public void testGetBuildAgentsWithInstallations() @@ -394,7 +307,10 @@ public class ContinuumServiceImplTest org.apache.continuum.configuration.BuildAgentConfiguration buildAgent = new org.apache.continuum.configuration.BuildAgentConfiguration(); - buildAgent.setUrl( "http://localhost:8080/xmlrpc" ); + + String buildAgentUrl = "http://localhost:8080/xmlrpc"; + + buildAgent.setUrl( buildAgentUrl ); buildAgent.setEnabled( true ); buildAgents.add( buildAgent ); @@ -416,124 +332,117 @@ public class ContinuumServiceImplTest buildAgentInstallation.setVarValue( "/opt/java" ); buildAgentInstallations.add( buildAgentInstallation ); - context.checking( new Expectations() - { - { - one( continuum ).getConfiguration(); - will( returnValue( configurationService ) ); - - one( configurationService ).getBuildAgents(); - will( returnValue( buildAgents ) ); - - one( distributedBuildManager ).getBuildAgentPlatform( "http://localhost:8080/xmlrpc" ); - will( returnValue( "Linux" ) ); - - one( distributedBuildManager ).getAvailableInstallations( "http://localhost:8080/xmlrpc" ); - will( returnValue( buildAgentInstallations ) ); - } - } ); + when( continuum.getConfiguration() ).thenReturn( configurationService ); + when( configurationService.getBuildAgents() ).thenReturn( buildAgents ); + when( distributedBuildManager.getBuildAgentPlatform( buildAgentUrl ) ).thenReturn( "Linux" ); + when( distributedBuildManager.getAvailableInstallations( buildAgentUrl ) ).thenReturn( + buildAgentInstallations ); + List agents = continuumService.getBuildAgentsWithInstallations(); + assertEquals( 1, agents.size() ); BuildAgentConfiguration agent = agents.get( 0 ); - assertEquals( "http://localhost:8080/xmlrpc", agent.getUrl() ); + assertEquals( buildAgentUrl, agent.getUrl() ); assertEquals( "Linux", agent.getPlatform() ); assertEquals( 1, agent.getInstallations().size() ); - - context.assertIsSatisfied(); } public void testAddProjectGroupWithPunctuation() throws Exception { - final String name = "Test :: Group Name (with punctuation)"; - final String groupId = "com.example.long-group-id"; - final String description = "Description"; + String name = "Test :: Group Name (with punctuation)"; + String groupId = "com.example.long-group-id"; + String description = "Description"; + ProjectGroup group = createProjectGroup( name, groupId, description ); - context.checking( new Expectations() - { - { - ProjectGroup group = createProjectGroup( name, groupId, description ); - one( continuum ).addProjectGroup( group ); - - group = createProjectGroup( name, groupId, description ); - one( continuum ).getProjectGroupByGroupId( groupId ); - will( returnValue( group ) ); - } - } ); - - ProjectGroupSummary group = continuumService.addProjectGroup( name, groupId, description ); - assertEquals( name, group.getName() ); - assertEquals( groupId, group.getGroupId() ); - assertEquals( description, group.getDescription() ); + when( continuum.getProjectGroupByGroupId( groupId ) ).thenReturn( group ); + + ProjectGroupSummary groupSummary = continuumService.addProjectGroup( name, groupId, description ); - context.assertIsSatisfied(); + assertEquals( name, groupSummary.getName() ); + assertEquals( groupId, groupSummary.getGroupId() ); + assertEquals( description, groupSummary.getDescription() ); + verify( continuum ).addProjectGroup( group ); } public void testEditProjectGroupWithPunctuation() throws Exception { + int projectGroupId = 1; + String origName = "name", origGroupId = "groupId", origDescription = "description"; final String newName = "Test :: Group Name (with punctuation)"; final String newGroupId = "com.example.long-group-id"; final String newDescription = "Description"; - final int projectGroupId = 1; - - context.checking( new Expectations() - { - { - ProjectGroup group = createProjectGroup( "name", "groupId", "description" ); - one( continuum ).addProjectGroup( group ); + List roles = Arrays.asList( "project-administrator", "project-developer", "project-user" ); - group = createProjectGroup( projectGroupId ); - one( continuum ).getProjectGroupByGroupId( "groupId" ); - will( returnValue( group ) ); + ProjectGroup unsavedGroup = createProjectGroup( origName, origGroupId, origDescription ); + ProjectGroup savedGroup = createProjectGroup( projectGroupId, origName, origGroupId, origDescription ); + ProjectGroup editedGroup = createProjectGroup( projectGroupId, newName, newGroupId, newDescription ); - one( continuum ).getProjectGroupWithProjects( projectGroupId ); - will( returnValue( group ) ); + when( continuum.getProjectGroupByGroupId( origGroupId ) ).thenReturn( savedGroup ); - for ( String role : Arrays.asList( "project-administrator", "project-developer", "project-user" ) ) - { - one( roleManager ).updateRole( role, "name", newName ); - } + ProjectGroupSummary groupSummary = continuumService.addProjectGroup( origName, origGroupId, origDescription ); - ProjectGroup newProjectGroup = createProjectGroup( projectGroupId, newName, newGroupId, - newDescription ); - one( continuum ).updateProjectGroup( newProjectGroup ); + verify( continuum ).addProjectGroup( unsavedGroup ); - exactly( 3 ).of( continuum ).getProjectGroup( projectGroupId ); - onConsecutiveCalls( returnValue( group ), returnValue( group ), returnValue( newProjectGroup ) ); - } - } ); + groupSummary.setName( newName ); + groupSummary.setGroupId( newGroupId ); + groupSummary.setDescription( newDescription ); - ProjectGroupSummary group = continuumService.addProjectGroup( "name", "groupId", "description" ); - group.setName( newName ); - group.setGroupId( newGroupId ); - group.setDescription( newDescription ); + when( continuum.getProjectGroupWithProjects( projectGroupId ) ).thenReturn( savedGroup ); + when( continuum.getProjectGroup( projectGroupId ) ).thenReturn( savedGroup, savedGroup, editedGroup ); - continuumService.updateProjectGroup( group ); + continuumService.updateProjectGroup( groupSummary ); - context.assertIsSatisfied(); + verify( continuum ).updateProjectGroup( editedGroup ); + for ( String role : roles ) + { + verify( roleManager ).updateRole( role, origName, newName ); + } } public void testInstallationEnvironmentVariableWithOtherOptions() - throws ContinuumException + throws ContinuumException, InstallationException { - context.checking( new Expectations() - { - { - one( continuum ).getInstallationService(); - } - } ); - - Installation installation = new Installation(); - installation.setName( "name" ); - installation.setType( "envvar" ); - installation.setVarName( "JAVA_OPTS" ); - installation.setVarValue( "-XX:+CompressedOops" ); - - continuumService.addInstallation( installation ); + Installation target = new Installation(); + target.setName( "name" ); + target.setType( "envvar" ); + target.setVarName( "JAVA_OPTS" ); + target.setVarValue( "-XX:+CompressedOops" ); - context.assertIsSatisfied(); + org.apache.maven.continuum.model.system.Installation returned = + new org.apache.maven.continuum.model.system.Installation(); + returned.setName( "name" ); + returned.setType( "envvar" ); + returned.setVarName( "JAVA_OPTS" ); + returned.setVarValue( "-XX:+CompressedOops" ); + + InstallationService installationService = mock( InstallationService.class ); + when( continuum.getInstallationService() ).thenReturn( installationService ); + // Need to return a value for the xml mapper + when( installationService.add( any( org.apache.maven.continuum.model.system.Installation.class ) ) ).thenReturn( + returned + ); + + Installation marshaledResult = continuumService.addInstallation( target ); + + ArgumentCaptor arg = + ArgumentCaptor.forClass( org.apache.maven.continuum.model.system.Installation.class ); + verify( installationService ).add( arg.capture() ); + + // verify properties are correct for added installation + org.apache.maven.continuum.model.system.Installation added = arg.getValue(); + assertEquals( target.getName(), added.getName() ); + assertEquals( target.getType(), added.getType() ); + assertEquals( target.getVarName(), added.getVarName() ); + assertEquals( target.getVarValue(), added.getVarValue() ); + + // verify properties for serialized result + assertEquals( target.getName(), marshaledResult.getName() ); + assertEquals( target.getType(), marshaledResult.getType() ); + assertEquals( target.getVarName(), marshaledResult.getVarName() ); + assertEquals( target.getVarValue(), marshaledResult.getVarValue() ); } private static ProjectGroup createProjectGroup( String name, String groupId, String description ) @@ -553,11 +462,6 @@ public class ContinuumServiceImplTest return group; } - private static ProjectGroup createProjectGroup( int projectGroupId ) - { - return createProjectGroup( projectGroupId, "name", "groupId", "description" ); - } - private BuildDefinition createBuildDefinition() { BuildDefinition buildDef = new BuildDefinition();