package org.apache.maven.plugins.changes; /* * 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. */ import org.apache.maven.plugins.changes.IssueAdapter; import org.apache.maven.plugins.changes.IssueType; import org.apache.maven.plugins.changes.model.Action; import org.apache.maven.plugins.issues.Issue; import org.apache.maven.plugins.issues.IssueManagementSystem; import org.apache.maven.plugins.jira.JIRAIssueManagmentSystem; import junit.framework.TestCase; /** * @author Alan Parkinson * @version $Id$ * @since 2.6 */ public class IssueAdapterTest extends TestCase { public void testDefaultIssueTypeMapping() { IssueAdapter adapter = new IssueAdapter( new JIRAIssueManagmentSystem() ); Issue issue = createIssue( "TST-1", "New Feature" ); Action action = adapter.createAction( issue ); assertEquals( "add", action.getType() ); issue = createIssue( "TST-2", "Bug" ); action = adapter.createAction( issue ); assertEquals( "fix", action.getType() ); issue = createIssue( "TST-3", "Improvement" ); action = adapter.createAction( issue ); assertEquals( "update", action.getType() ); issue = createIssue( "TST-4", "Unknown Type" ); action = adapter.createAction( issue ); assertEquals( "", action.getType() ); } public void testCustomIssueTypeMappingOveridesDefaultMapping() { IssueManagementSystem ims = new JIRAIssueManagmentSystem(); ims.getIssueTypeMap().clear(); IssueAdapter adapter = new IssueAdapter( ims ); Issue issue = createIssue( "TST-1", "New Feature" ); Action action = adapter.createAction( issue ); assertEquals( "", action.getType() ); issue = createIssue( "TST-2", "Bug" ); action = adapter.createAction( issue ); assertEquals( "", action.getType() ); issue = createIssue( "TST-3", "Improvement" ); action = adapter.createAction( issue ); assertEquals( "", action.getType() ); issue = createIssue( "TST-4", "Unknown Type" ); action = adapter.createAction( issue ); assertEquals( "", action.getType() ); } public void testCustomIssueTypeMapping() { IssueManagementSystem ims = new JIRAIssueManagmentSystem(); ims.getIssueTypeMap().put( "Story", IssueType.ADD ); ims.getIssueTypeMap().put( "Epic", IssueType.ADD ); ims.getIssueTypeMap().put( "Defect", IssueType.FIX ); ims.getIssueTypeMap().put( "Error", IssueType.FIX ); IssueAdapter adapter = new IssueAdapter( ims ); Issue issue = createIssue( "TST-1", "Story" ); Action action = adapter.createAction( issue ); assertEquals( "add", action.getType() ); issue = createIssue( "TST-2", "Epic" ); action = adapter.createAction( issue ); assertEquals( "add", action.getType() ); issue = createIssue( "TST-3", "Error" ); action = adapter.createAction( issue ); assertEquals( "fix", action.getType() ); issue = createIssue( "TST-4", "Defect" ); action = adapter.createAction( issue ); assertEquals( "fix", action.getType() ); // Test the default mapping for "update" hasn't been overridden issue = createIssue( "TST-5", "Improvement" ); action = adapter.createAction( issue ); assertEquals( "update", action.getType() ); } private Issue createIssue( String key, String type ) { Issue issue = new Issue(); issue.setKey( key ); issue.setType( type ); issue.setAssignee( "A User" ); issue.setSummary( "The title of this issue" ); return issue; } }