1 package org.apache.maven.scm;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 import java.io.File;
17 import java.util.List;
18
19 import org.hamcrest.Description;
20 import org.hamcrest.Matcher;
21 import org.hamcrest.Matchers;
22 import org.hamcrest.TypeSafeMatcher;
23
24 public class ScmFileMatcher
25 extends TypeSafeMatcher<ScmFile>
26 {
27
28 public static Matcher<ScmFile> scmFile( String fileName, ScmFileStatus status )
29 {
30 return new ScmFileMatcher( fileName, status );
31 }
32
33 @SuppressWarnings( "unchecked" )
34 public static void assertHasScmFile( List<?> actualFiles, String fileName, ScmFileStatus status )
35 {
36 org.junit.Assert.assertThat( (List<ScmFile>) actualFiles,
37 Matchers.<ScmFile>hasItem( scmFile( fileName, status ) ) );
38 }
39
40 private ScmFileStatus status;
41
42 private String filePath;
43
44 public ScmFileMatcher( String filePath, ScmFileStatus status )
45 {
46
47 this.filePath = new File( filePath ).getPath();
48 this.status = status;
49 }
50
51 public void describeTo( Description desc )
52 {
53 desc.appendValue( "ScmFile [" );
54 desc.appendValue( filePath );
55 desc.appendText( "," );
56 desc.appendValue( status );
57 desc.appendValue( "]" );
58 }
59
60 @Override
61 public boolean matchesSafely( ScmFile scmFile )
62 {
63 return scmFile.getPath().equals( filePath ) && scmFile.getStatus().equals( status );
64 }
65
66 }