@ -46,6 +46,7 @@ import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals ;
import static org.junit.Assert.assertFalse ;
import static org.junit.Assert.assertTrue ;
import static org.junit.Assert.fail ;
import java.util.Arrays ;
@ -71,6 +72,12 @@ public class DescribeTest extends CLIRepositoryTestCase {
git . tag ( ) . setName ( "v1.0" ) . call ( ) ;
}
private void secondCommit ( ) throws Exception {
writeTrashFile ( "greeting" , "Hello, world!" ) ;
git . add ( ) . addFilepattern ( "greeting" ) . call ( ) ;
git . commit ( ) . setMessage ( "2nd commit" ) . call ( ) ;
}
@Test
public void testNoHead ( ) throws Exception {
assertEquals ( CLIText . fatalError ( CLIText . get ( ) . noNamesFound ) ,
@ -94,9 +101,7 @@ public class DescribeTest extends CLIRepositoryTestCase {
@Test
public void testDescribeCommit ( ) throws Exception {
initialCommitAndTag ( ) ;
writeTrashFile ( "greeting" , "Hello, world!" ) ;
git . add ( ) . addFilepattern ( "greeting" ) . call ( ) ;
git . commit ( ) . setMessage ( "2nd commit" ) . call ( ) ;
secondCommit ( ) ;
assertArrayEquals ( new String [ ] { "v1.0-1-g56f6ceb" , "" } ,
execute ( "git describe" ) ) ;
}
@ -108,6 +113,47 @@ public class DescribeTest extends CLIRepositoryTestCase {
execute ( "git describe --long HEAD" ) ) ;
}
@Test
public void testDescribeCommitMatch ( ) throws Exception {
initialCommitAndTag ( ) ;
secondCommit ( ) ;
assertArrayEquals ( new String [ ] { "v1.0-1-g56f6ceb" , "" } ,
execute ( "git describe --match v1.*" ) ) ;
}
@Test
public void testDescribeCommitMatch2 ( ) throws Exception {
initialCommitAndTag ( ) ;
secondCommit ( ) ;
git . tag ( ) . setName ( "v2.0" ) . call ( ) ;
assertArrayEquals ( new String [ ] { "v1.0-1-g56f6ceb" , "" } ,
execute ( "git describe --match v1.*" ) ) ;
}
@Test
public void testDescribeCommitMultiMatch ( ) throws Exception {
initialCommitAndTag ( ) ;
secondCommit ( ) ;
git . tag ( ) . setName ( "v2.0.0" ) . call ( ) ;
git . tag ( ) . setName ( "v2.1.1" ) . call ( ) ;
assertArrayEquals ( "git yields v2.0.0" , new String [ ] { "v2.0.0" , "" } ,
execute ( "git describe --match v2.0* --match v2.1.*" ) ) ;
}
@Test
public void testDescribeCommitNoMatch ( ) throws Exception {
initialCommitAndTag ( ) ;
writeTrashFile ( "greeting" , "Hello, world!" ) ;
secondCommit ( ) ;
try {
execute ( "git describe --match 1.*" ) ;
fail ( "git describe should not find any tag matching 1.*" ) ;
} catch ( Die e ) {
assertEquals ( "No names found, cannot describe anything." ,
e . getMessage ( ) ) ;
}
}
@Test
public void testHelpArgumentBeforeUnknown ( ) throws Exception {
String [ ] output = execute ( "git describe -h -XYZ" ) ;