View Javadoc

1   package org.apache.maven.wagon.observers;
2   
3   /*
4    * Licensed to the Apache Software Foundation (ASF) under one
5    * or more contributor license agreements.  See the NOTICE file
6    * distributed with this work for additional information
7    * regarding copyright ownership.  The ASF licenses this file
8    * to you under the Apache License, Version 2.0 (the
9    * "License"); you may not use this file except in compliance
10   * with the License.  You may obtain a copy of the License at
11   *
12   *   http://www.apache.org/licenses/LICENSE-2.0
13   *
14   * Unless required by applicable law or agreed to in writing,
15   * software distributed under the License is distributed on an
16   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
17   * KIND, either express or implied.  See the License for the
18   * specific language governing permissions and limitations
19   * under the License.
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 }