1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.cli.transfer;
20
21 import java.io.File;
22
23 import org.eclipse.aether.DefaultRepositorySystemSession;
24 import org.eclipse.aether.transfer.TransferCancelledException;
25 import org.eclipse.aether.transfer.TransferEvent;
26 import org.eclipse.aether.transfer.TransferListener;
27 import org.eclipse.aether.transfer.TransferResource;
28 import org.junit.jupiter.api.Test;
29
30 import static org.junit.jupiter.api.Assertions.assertThrows;
31
32 class SimplexTransferListenerTest {
33 @Test
34 void cancellation() throws InterruptedException {
35 TransferListener delegate = new TransferListener() {
36 @Override
37 public void transferInitiated(TransferEvent event) throws TransferCancelledException {
38 throw new TransferCancelledException();
39 }
40
41 @Override
42 public void transferStarted(TransferEvent event) throws TransferCancelledException {
43 throw new TransferCancelledException();
44 }
45
46 @Override
47 public void transferProgressed(TransferEvent event) throws TransferCancelledException {
48 throw new TransferCancelledException();
49 }
50
51 @Override
52 public void transferCorrupted(TransferEvent event) throws TransferCancelledException {
53 throw new TransferCancelledException();
54 }
55
56 @Override
57 public void transferSucceeded(TransferEvent event) {}
58
59 @Override
60 public void transferFailed(TransferEvent event) {}
61 };
62
63 SimplexTransferListener listener = new SimplexTransferListener(delegate);
64
65 TransferResource resource =
66 new TransferResource(null, null, "http://maven.org/test/test-resource", new File("file"), null);
67 DefaultRepositorySystemSession session = new DefaultRepositorySystemSession(h -> false);
68
69
70 listener.transferInitiated(new TransferEvent.Builder(session, resource)
71 .setType(TransferEvent.EventType.INITIATED)
72 .build());
73
74 Thread.sleep(500);
75
76
77 assertThrows(
78 TransferCancelledException.class,
79 () -> listener.transferStarted(new TransferEvent.Builder(session, resource)
80 .resetType(TransferEvent.EventType.STARTED)
81 .build()));
82 }
83 }