1 package org.apache.maven.scm.provider.local.command.checkout;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import java.io.File;
23 import java.io.FileReader;
24 import java.io.Reader;
25 import java.util.List;
26
27 import org.apache.maven.scm.ScmFile;
28 import org.apache.maven.scm.command.checkout.CheckOutScmResult;
29 import org.apache.maven.scm.provider.local.metadata.LocalScmMetadata;
30 import org.apache.maven.scm.provider.local.metadata.io.xpp3.LocalScmMetadataXpp3Reader;
31 import org.apache.maven.scm.tck.command.checkout.CheckOutCommandTckTest;
32 import org.codehaus.plexus.util.FileUtils;
33 import org.codehaus.plexus.util.IOUtil;
34
35
36
37
38
39 public class LocalCheckOutCommandTckTest
40 extends CheckOutCommandTckTest
41 {
42 private String module = "check-out";
43
44 public String getScmUrl()
45 throws Exception
46 {
47 return "scm:local|" + getRepositoryRoot().getAbsolutePath() + "|" + module;
48 }
49
50 public void initRepo()
51 throws Exception
52 {
53 File root = new File( getRepositoryRoot() + "/" + module );
54
55 makeFile( root, "/pom.xml" );
56
57 makeFile( root, "/readme.txt" );
58
59 makeFile( root, "/src/main/java/Application.java" );
60
61 makeFile( root, "/src/test/java/Test.java" );
62
63 makeDirectory( root, "/src/test/resources" );
64 }
65
66
67
68
69 public void testMetadata()
70 throws Exception
71 {
72 FileUtils.deleteDirectory( getWorkingCopy() );
73
74 CheckOutScmResult result = checkOut( getWorkingCopy(), getScmRepository() );
75
76 assertResultIsSuccess( result );
77
78 List<ScmFile> checkedOutFiles = result.getCheckedOutFiles();
79
80 assertEquals( 4, checkedOutFiles.size() );
81
82
83
84
85 File metadataFile = new File( getWorkingCopy(), ".maven-scm-local" );
86 assertTrue( "Expected metadata file .maven-scm-local does not exist", metadataFile.exists() );
87 Reader reader = new FileReader( metadataFile );
88 LocalScmMetadata metadata;
89 try
90 {
91 metadata = new LocalScmMetadataXpp3Reader().read( reader );
92 }
93 finally
94 {
95 IOUtil.close( reader );
96 }
97 File root = new File( getRepositoryRoot() + "/" + module );
98 @SuppressWarnings( "unchecked" )
99 List<String> fileNames = FileUtils.getFileNames( root, "**", null, false );
100 assertEquals( fileNames, metadata.getRepositoryFileNames() );
101 }
102 }