| package org.apache.maven.shared.project.utils; |
| |
| /* |
| * 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 static org.junit.Assert.assertEquals; |
| import static org.junit.Assert.assertNull; |
| |
| import java.io.File; |
| import java.io.IOException; |
| import java.util.Collections; |
| |
| import org.apache.maven.model.Model; |
| import org.apache.maven.model.Scm; |
| import org.apache.maven.project.MavenProject; |
| import org.junit.Test; |
| |
| import static org.mockito.Mockito.mock; |
| import static org.mockito.Mockito.when; |
| |
| public class ScmUtilsTest |
| { |
| |
| @Test |
| public void resolveScmConnection() |
| { |
| MavenProject project = new MavenProject(); |
| assertEquals( "", ScmUtils.resolveScmConnection( project ) ); |
| } |
| |
| @Test |
| public void resolveScmDeveloperConnection() |
| { |
| MavenProject project = new MavenProject(); |
| assertEquals( "", ScmUtils.resolveScmDeveloperConnection( project ) ); |
| } |
| |
| @Test |
| public void resolveScmConnectionByParent() |
| throws IOException |
| { |
| MavenProject parent = mock( MavenProject.class ); |
| Model parentModel = mock( Model.class ); |
| when( parentModel.getModules() ).thenReturn( Collections.singletonList( "module" ) ); |
| when( parent.getModel() ).thenReturn( parentModel ); |
| File parentBasedir = File.createTempFile( "tmpBasedir", null ); |
| when( parent.getBasedir() ).thenReturn( parentBasedir ); |
| |
| MavenProject project = mock( MavenProject.class ); |
| when( project.hasParent() ).thenReturn( true ); |
| when( project.getParent() ).thenReturn( parent ); |
| when( project.getFile() ).thenReturn( new File( parentBasedir, "module" ) ); |
| Scm scm = mock( Scm.class ); |
| when( scm.getConnection() ).thenReturn( "parent" ); |
| when( project.getScm() ).thenReturn( scm ); |
| |
| Model projectModel = mock( Model.class ); |
| |
| when( project.getModel() ).thenReturn( projectModel ); |
| |
| assertEquals( "parent/module", ScmUtils.resolveScmConnection( project ) ); |
| } |
| |
| @Test |
| public void resolveScmDeveloperConnectionByParent() |
| throws IOException |
| { |
| MavenProject parent = mock( MavenProject.class ); |
| Model parentModel = mock( Model.class ); |
| when( parentModel.getModules() ).thenReturn( Collections.singletonList( "module" ) ); |
| when( parent.getModel() ).thenReturn( parentModel ); |
| File parentBasedir = File.createTempFile( "tmpBasedir", null ); |
| when( parent.getBasedir() ).thenReturn( parentBasedir ); |
| |
| MavenProject project = mock( MavenProject.class ); |
| when( project.hasParent() ).thenReturn( true ); |
| when( project.getParent() ).thenReturn( parent ); |
| when( project.getFile() ).thenReturn( new File( parentBasedir, "module" ) ); |
| Scm scm = mock( Scm.class ); |
| when( scm.getDeveloperConnection() ).thenReturn( "parent" ); |
| when( project.getScm() ).thenReturn( scm ); |
| |
| Model projectModel = mock( Model.class ); |
| |
| when( project.getModel() ).thenReturn( projectModel ); |
| |
| assertEquals( "parent/module", ScmUtils.resolveScmDeveloperConnection( project ) ); |
| } |
| |
| @Test |
| public void getScmConnectionByModel() |
| { |
| Model model = new Model(); |
| assertNull( ScmUtils.getScmConnection( model ) ); |
| model.setScm( new Scm() ); |
| assertNull( ScmUtils.getScmConnection( model ) ); |
| String connection = "scmConnection"; |
| model.getScm().setConnection( connection ); |
| assertEquals( connection, ScmUtils.getScmConnection( model ) ); |
| } |
| |
| @Test |
| public void getScmDeveloperConnectionByModel() |
| { |
| Model model = new Model(); |
| assertNull( ScmUtils.getScmDeveloperConnection( model ) ); |
| model.setScm( new Scm() ); |
| assertNull( ScmUtils.getScmDeveloperConnection( model ) ); |
| String connection = "scmConnection"; |
| model.getScm().setDeveloperConnection( connection ); |
| assertEquals( connection, ScmUtils.getScmDeveloperConnection( model ) ); |
| } |
| |
| @Test |
| public void getScmConnectionByMavenProject() |
| { |
| MavenProject project = new MavenProject(); |
| assertNull( ScmUtils.getScmConnection( project ) ); |
| project.setScm( new Scm() ); |
| assertNull( ScmUtils.getScmConnection( project ) ); |
| String connection = "scmConnection"; |
| project.getScm().setConnection( connection ); |
| assertEquals( connection, ScmUtils.getScmConnection( project ) ); |
| } |
| |
| @Test |
| public void getScmDeveloperConnectionByMavenProject() |
| { |
| MavenProject project = new MavenProject(); |
| assertNull( ScmUtils.getScmDeveloperConnection( project ) ); |
| project.setScm( new Scm() ); |
| assertNull( ScmUtils.getScmDeveloperConnection( project ) ); |
| String connection = "scmConnection"; |
| project.getScm().setDeveloperConnection( connection ); |
| assertEquals( connection, ScmUtils.getScmDeveloperConnection( project ) ); |
| } |
| |
| } |