1 package org.apache.maven.wagon.observers;
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.IOException;
24 import java.security.NoSuchAlgorithmException;
25
26 import junit.framework.TestCase;
27
28 import org.apache.maven.wagon.ConnectionException;
29 import org.apache.maven.wagon.ResourceDoesNotExistException;
30 import org.apache.maven.wagon.TransferFailedException;
31 import org.apache.maven.wagon.Wagon;
32 import org.apache.maven.wagon.WagonMock;
33 import org.apache.maven.wagon.authorization.AuthorizationException;
34 import org.apache.maven.wagon.events.TransferEvent;
35 import org.apache.maven.wagon.events.TransferListener;
36 import org.apache.maven.wagon.repository.Repository;
37 import org.apache.maven.wagon.resource.Resource;
38
39 public class ChecksumObserverTest
40 extends TestCase
41 {
42 private Wagon wagon;
43
44 public void setUp()
45 throws Exception
46 {
47 super.setUp();
48
49 wagon = new WagonMock( true );
50
51 Repository repository = new Repository();
52 wagon.connect( repository );
53 }
54
55 public void tearDown()
56 throws Exception
57 {
58 wagon.disconnect();
59
60 super.tearDown();
61 }
62
63 public void testSubsequentTransfersAfterTransferError()
64 throws NoSuchAlgorithmException, ResourceDoesNotExistException, AuthorizationException, IOException
65 {
66 TransferListener listener = new ChecksumObserver();
67
68 wagon.addTransferListener( listener );
69
70 File testFile = File.createTempFile( "wagon", "tmp" );
71 testFile.deleteOnExit();
72
73 try
74 {
75 wagon.get( "resource", testFile );
76 fail();
77 }
78 catch ( TransferFailedException e )
79 {
80 assertTrue( true );
81 }
82
83 try
84 {
85 wagon.get( "resource", testFile );
86 fail();
87 }
88 catch ( TransferFailedException e )
89 {
90 assertTrue( true );
91 }
92
93 testFile.delete();
94 }
95
96 public void testChecksum()
97 throws NoSuchAlgorithmException
98 {
99 ChecksumObserver listener = new ChecksumObserver( "SHA-1" );
100
101 Resource resource = new Resource( "resource" );
102
103 TransferEvent transferEvent =
104 new TransferEvent( wagon, resource, TransferEvent.TRANSFER_INITIATED, TransferEvent.REQUEST_GET );
105
106 listener.transferInitiated( transferEvent );
107
108 transferEvent = new TransferEvent( wagon, resource, TransferEvent.TRANSFER_STARTED, TransferEvent.REQUEST_GET );
109
110 listener.transferStarted( transferEvent );
111
112 transferEvent = new TransferEvent( wagon, resource, TransferEvent.TRANSFER_PROGRESS, TransferEvent.REQUEST_GET );
113
114 listener.transferProgress( transferEvent, "checksum\n".getBytes(), 9 );
115
116 transferEvent =
117 new TransferEvent( wagon, resource, TransferEvent.TRANSFER_COMPLETED, TransferEvent.REQUEST_GET );
118
119 listener.transferCompleted( transferEvent );
120
121 assertEquals( "2e5daf0201ddeb068a62d5e08da18657ab2c6be9", listener.getActualChecksum() );
122 }
123 }