| /* |
| * 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.maven.continuum.builddefinition; |
| |
| import org.apache.log4j.Logger; |
| import org.apache.maven.continuum.AbstractContinuumTest; |
| import org.apache.maven.continuum.model.project.BuildDefinition; |
| import org.apache.maven.continuum.model.project.BuildDefinitionTemplate; |
| import org.apache.maven.continuum.model.project.Project; |
| import org.apache.maven.continuum.model.project.ProjectGroup; |
| import org.apache.continuum.dao.DaoUtils; |
| |
| import java.util.List; |
| |
| /** |
| * @author <a href="mailto:olamy@apache.org">olamy</a> |
| * @version $Id$ |
| * @since 15 sept. 07 |
| */ |
| public class DefaultBuildDefinitionServiceTest |
| extends AbstractContinuumTest |
| { |
| private Logger logger = Logger.getLogger( getClass() ); |
| |
| private ProjectGroup projectGroup; |
| |
| private Project project; |
| |
| private BuildDefinition buildDefinition; |
| |
| private BuildDefinitionTemplate buildDefinitionTemplate; |
| |
| protected void setUp() |
| throws Exception |
| { |
| super.setUp(); |
| DaoUtils daoUtils = (DaoUtils) lookup( DaoUtils.class.getName() ); |
| daoUtils.eraseDatabase(); |
| |
| projectGroup = new ProjectGroup(); |
| projectGroup.setName( "test" ); |
| projectGroup = getProjectGroupDao().addProjectGroup( projectGroup ); |
| |
| project = new Project(); |
| project.setGroupId( "foo" ); |
| project.setArtifactId( "bar" ); |
| project.setVersion( "0.1-alpha-1-SNAPSHOT" ); |
| projectGroup.addProject( project ); |
| getProjectGroupDao().updateProjectGroup( projectGroup ); |
| |
| buildDefinition = new BuildDefinition(); |
| buildDefinition.setTemplate( true ); |
| buildDefinition.setArguments( "-N" ); |
| buildDefinition.setGoals( "clean test-compile" ); |
| buildDefinition.setBuildFile( "pom.xml" ); |
| buildDefinition.setDescription( "desc template" ); |
| buildDefinition = getBuildDefinitionService().addBuildDefinition( buildDefinition ); |
| |
| buildDefinitionTemplate = new BuildDefinitionTemplate(); |
| buildDefinitionTemplate.setName( "test" ); |
| buildDefinitionTemplate = getBuildDefinitionService().addBuildDefinitionTemplate( buildDefinitionTemplate ); |
| buildDefinitionTemplate = |
| getBuildDefinitionService().addBuildDefinitionInTemplate( buildDefinitionTemplate, buildDefinition, false ); |
| |
| |
| } |
| |
| protected BuildDefinitionService getBuildDefinitionService() |
| throws Exception |
| { |
| return (BuildDefinitionService) lookup( BuildDefinitionService.class ); |
| } |
| |
| public void testaddTemplateInProject() |
| throws Exception |
| { |
| try |
| { |
| List<BuildDefinitionTemplate> templates = getBuildDefinitionService().getAllBuildDefinitionTemplate(); |
| assertEquals( 5, templates.size() ); |
| assertEquals( 5, getBuildDefinitionService().getAllBuildDefinitions().size() ); |
| |
| getBuildDefinitionService().addTemplateInProject( buildDefinitionTemplate.getId(), project ); |
| project = getProjectDao().getProjectWithAllDetails( project.getId() ); |
| templates = getBuildDefinitionService().getAllBuildDefinitionTemplate(); |
| assertEquals( 1, project.getBuildDefinitions().size() ); |
| assertEquals( 5, templates.size() ); |
| List<BuildDefinition> all = getBuildDefinitionService().getAllBuildDefinitions(); |
| assertEquals( 6, all.size() ); |
| |
| getBuildDefinitionService().addTemplateInProject( buildDefinitionTemplate.getId(), project ); |
| |
| project = getProjectDao().getProjectWithAllDetails( project.getId() ); |
| templates = getBuildDefinitionService().getAllBuildDefinitionTemplate(); |
| assertEquals( 2, project.getBuildDefinitions().size() ); |
| assertEquals( 5, templates.size() ); |
| all = getBuildDefinitionService().getAllBuildDefinitions(); |
| assertEquals( 7, all.size() ); |
| |
| } |
| catch ( Exception e ) |
| { |
| logger.error( e.getMessage(), e ); |
| throw e; |
| } |
| } |
| |
| |
| public void testGetDefaultBuildDef() |
| throws Exception |
| { |
| BuildDefinition bd = (BuildDefinition) getBuildDefinitionService().getDefaultAntBuildDefinitionTemplate() |
| .getBuildDefinitions().get( 0 ); |
| assertNotNull( bd ); |
| assertEquals( "build.xml", bd.getBuildFile() ); |
| |
| bd = (BuildDefinition) getBuildDefinitionService().getDefaultMavenTwoBuildDefinitionTemplate() |
| .getBuildDefinitions().get( 0 ); |
| BuildDefinitionService buildDefinitionService = (BuildDefinitionService) lookup( BuildDefinitionService.class ); |
| |
| assertEquals( 5, buildDefinitionService.getAllBuildDefinitionTemplate().size() ); |
| assertNotNull( bd ); |
| assertEquals( "pom.xml", bd.getBuildFile() ); |
| assertEquals( "clean install", bd.getGoals() ); |
| } |
| |
| |
| public void testAddBuildDefinitionTemplate() |
| throws Exception |
| { |
| BuildDefinitionTemplate template = new BuildDefinitionTemplate(); |
| template.setName( "test" ); |
| |
| template = getBuildDefinitionService().addBuildDefinitionTemplate( template ); |
| template = getBuildDefinitionService().getBuildDefinitionTemplate( template.getId() ); |
| assertNotNull( template ); |
| assertEquals( "test", template.getName() ); |
| List<BuildDefinition> all = getBuildDefinitionService().getAllBuildDefinitions(); |
| assertEquals( 5, all.size() ); |
| BuildDefinition bd = (BuildDefinition) getBuildDefinitionService().getDefaultMavenTwoBuildDefinitionTemplate() |
| .getBuildDefinitions().get( 0 ); |
| template = getBuildDefinitionService().addBuildDefinitionInTemplate( template, bd, false ); |
| assertEquals( 1, template.getBuildDefinitions().size() ); |
| all = getBuildDefinitionService().getAllBuildDefinitions(); |
| assertEquals( 5, all.size() ); |
| |
| template = getBuildDefinitionService().getBuildDefinitionTemplate( template.getId() ); |
| template = getBuildDefinitionService().updateBuildDefinitionTemplate( template ); |
| template = getBuildDefinitionService().removeBuildDefinitionFromTemplate( template, bd ); |
| assertEquals( 0, template.getBuildDefinitions().size() ); |
| all = getBuildDefinitionService().getAllBuildDefinitions(); |
| assertEquals( 5, all.size() ); |
| |
| } |
| } |