1 package org.apache.maven.scm.provider.perforce.command.checkout;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import org.apache.maven.scm.ScmFile;
23 import org.apache.maven.scm.ScmFileStatus;
24 import org.apache.maven.scm.ScmTestCase;
25
26 import java.io.BufferedReader;
27 import java.io.File;
28 import java.io.FileInputStream;
29 import java.io.InputStreamReader;
30
31
32
33
34
35 public class PerforceCheckOutConsumerTest
36 extends ScmTestCase
37 {
38 public void testGoodParse()
39 throws Exception
40 {
41 File testFile = getTestFile( "src/test/resources/perforce/checkout_good.txt" );
42
43 PerforceCheckOutConsumer consumer = new PerforceCheckOutConsumer( "test-test-maven", "//depot/modules" );
44 consumer.consumeLine( "Client test-test-maven saved." );
45 assertEquals( "", consumer.getOutput() );
46 assertTrue( consumer.isSuccess() );
47
48 FileInputStream fis = new FileInputStream( testFile );
49 BufferedReader in = new BufferedReader( new InputStreamReader( fis ) );
50 String s = in.readLine();
51 while ( s != null )
52 {
53 consumer.consumeLine( s );
54 s = in.readLine();
55 }
56
57 assertTrue( consumer.getOutput(), consumer.isSuccess() );
58 assertEquals( "", consumer.getOutput() );
59 assertEquals( 4, consumer.getCheckedout().size() );
60 ScmFile file = (ScmFile) consumer.getCheckedout().get( 0 );
61 assertEquals( "cordoba/runtime-ear/.j2ee", file.getPath() );
62 assertEquals( ScmFileStatus.DELETED, file.getStatus() );
63 }
64
65 public void testBadParse()
66 throws Exception
67 {
68 File testFile = getTestFile( "src/test/resources/perforce/checkout_bad.txt" );
69
70 PerforceCheckOutConsumer consumer = new PerforceCheckOutConsumer( "test-test-maven", "//depot/modules" );
71 consumer.consumeLine( "Something bad happened." );
72 assertFalse( consumer.isSuccess() );
73
74 consumer = new PerforceCheckOutConsumer( "test-test-maven", "" );
75 consumer.consumeLine( "Client test-test-maven saved." );
76 assertTrue( consumer.isSuccess() );
77
78 FileInputStream fis = new FileInputStream( testFile );
79 BufferedReader in = new BufferedReader( new InputStreamReader( fis ) );
80 String s = in.readLine();
81 while ( s != null )
82 {
83 consumer.consumeLine( s );
84 s = in.readLine();
85 }
86
87 assertFalse( consumer.getOutput(), consumer.isSuccess() );
88 assertTrue( consumer.getOutput(), consumer.getOutput().length() > 0 );
89 assertContains( consumer.getOutput(), "Invalid" );
90 assertContains( consumer.getOutput(), "somelabel" );
91 }
92
93 private void assertContains( String block, String element )
94 {
95 if ( block.indexOf( element ) == -1 )
96 {
97 fail( "Block '" + block + "' does not contain element '" + element + "'" );
98 }
99 }
100 }