1 package org.apache.maven.scm.provider.accurev.cli;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 import static org.hamcrest.Matchers.hasItem;
17 import static org.hamcrest.Matchers.is;
18 import static org.junit.Assert.assertThat;
19
20 import java.io.File;
21 import java.util.ArrayList;
22 import java.util.List;
23
24 import org.codehaus.plexus.util.cli.StreamConsumer;
25 import org.junit.Test;
26
27 public class FileConsumerTest
28 {
29
30 @Test
31 public void testConsumeAdd()
32 {
33 List<File> extractedFiles = new ArrayList<File>();
34
35 StreamConsumer consumer = new FileConsumer( extractedFiles, FileConsumer.ADD_PATTERN );
36
37 consumer.consumeLine( "Added and kept element /./src/main/java/Application.java" );
38 consumer.consumeLine( "Added and kept element \\.\\src\\main\\java\\Windows.java" );
39
40 assertThat( extractedFiles.size(), is( 2 ) );
41 assertThat( extractedFiles, hasItem( new File( "src/main/java/Application.java" ) ) );
42 assertThat( extractedFiles, hasItem( new File( "src\\main\\java\\Windows.java" ) ) );
43 }
44
45 @Test
46 public void testConsumeUpdate()
47 {
48 List<File> extractedFiles = new ArrayList<File>();
49 StreamConsumer consumer = new FileConsumer( extractedFiles, FileConsumer.UPDATE_PATTERN );
50
51 consumer.consumeLine( "Content (1 K) of \"readme.txt\" - ok" );
52 consumer.consumeLine( "Creating dir \"src/main/java/org\" ." );
53 consumer.consumeLine( "Updating (creating) dir /./src/test/java" );
54 consumer.consumeLine( "Updating element \\.\\src\\main\\java\\Application.java" );
55
56 assertThat( extractedFiles.size(), is( 2 ) );
57 assertThat( extractedFiles, hasItem( new File( "readme.txt" ) ) );
58 assertThat( extractedFiles, hasItem( new File( "src\\main\\java\\Application.java" ) ) );
59 }
60
61 @Test
62 public void testConsumePromoted()
63 {
64 List<File> extractedFiles = new ArrayList<File>();
65
66 StreamConsumer consumer = new FileConsumer( extractedFiles, FileConsumer.PROMOTE_PATTERN );
67
68 consumer.consumeLine( "Promoted element /./src/main/java/Application.java" );
69 consumer.consumeLine( "Promoted element \\.\\src\\main\\java\\Windows.java" );
70
71 assertThat( extractedFiles.size(), is( 2 ) );
72 assertThat( extractedFiles, hasItem( new File( "src/main/java/Application.java" ) ) );
73 assertThat( extractedFiles, hasItem( new File( "src\\main\\java\\Windows.java" ) ) );
74 }
75
76 @Test
77 public void testConsumeRemoved()
78 {
79 List<File> extractedFiles = new ArrayList<File>();
80 StreamConsumer consumer = new FileConsumer( extractedFiles, FileConsumer.DEFUNCT_PATTERN );
81
82 consumer.consumeLine( "Recursively removing \"tcktests/src\" ." );
83 consumer.consumeLine( "Removing \"tcktests/src/main/java/Application.java\" ." );
84 consumer.consumeLine( "Removing \"tcktests/src/main/java\" ." );
85 consumer.consumeLine( "Removing \"tcktests/src/main\" ." );
86 consumer.consumeLine( "Removing \"tcktests/src\" ." );
87
88 assertThat( extractedFiles.size(), is( 4 ) );
89 assertThat( extractedFiles, hasItem( new File( "tcktests/src" ) ) );
90 assertThat( extractedFiles, hasItem( new File( "tcktests/src/main/java/Application.java" ) ) );
91 }
92 }