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 import org.apache.maven.scm.util.ConsumerUtils;
26
27 import java.io.File;
28
29
30
31
32
33 public class PerforceCheckOutConsumerTest
34 extends ScmTestCase
35 {
36 public void testGoodParse()
37 throws Exception
38 {
39 File testFile = getTestFile( "src/test/resources/perforce/checkout_good.txt" );
40
41 PerforceCheckOutConsumer consumer = new PerforceCheckOutConsumer( "test-test-maven", "//depot/modules" );
42 consumer.consumeLine( "Client test-test-maven saved." );
43 assertEquals( "", consumer.getOutput() );
44 assertTrue( consumer.isSuccess() );
45
46 ConsumerUtils.consumeFile( testFile, consumer );
47
48 assertTrue( consumer.getOutput(), consumer.isSuccess() );
49 assertEquals( "", consumer.getOutput() );
50 assertEquals( 4, consumer.getCheckedout().size() );
51 ScmFile file = (ScmFile) consumer.getCheckedout().get( 0 );
52 assertEquals( "cordoba/runtime-ear/.j2ee", file.getPath() );
53 assertEquals( ScmFileStatus.DELETED, file.getStatus() );
54 }
55
56 public void testBadParse()
57 throws Exception
58 {
59 File testFile = getTestFile( "src/test/resources/perforce/checkout_bad.txt" );
60
61 PerforceCheckOutConsumer consumer = new PerforceCheckOutConsumer( "test-test-maven", "//depot/modules" );
62 consumer.consumeLine( "Something bad happened." );
63 assertFalse( consumer.isSuccess() );
64
65 consumer = new PerforceCheckOutConsumer( "test-test-maven", "" );
66 consumer.consumeLine( "Client test-test-maven saved." );
67 assertTrue( consumer.isSuccess() );
68
69 ConsumerUtils.consumeFile( testFile, consumer );
70
71 assertFalse( consumer.getOutput(), consumer.isSuccess() );
72 assertTrue( consumer.getOutput(), consumer.getOutput().length() > 0 );
73 assertContains( consumer.getOutput(), "Invalid" );
74 assertContains( consumer.getOutput(), "somelabel" );
75 }
76
77 private void assertContains( String block, String element )
78 {
79 if ( block.indexOf( element ) == -1 )
80 {
81 fail( "Block '" + block + "' does not contain element '" + element + "'" );
82 }
83 }
84 }