1 package com.atlassian.plugin.loaders.classloading;
2
3 import org.junit.After;
4 import org.junit.Before;
5 import org.junit.Test;
6 import org.junit.runner.RunWith;
7 import org.mockito.Mock;
8 import org.mockito.junit.MockitoJUnitRunner;
9
10 import java.io.File;
11 import java.util.Arrays;
12 import java.util.Collection;
13
14 import static org.junit.Assert.assertEquals;
15 import static org.mockito.Mockito.verify;
16 import static org.mockito.Mockito.when;
17
18 @RunWith(MockitoJUnitRunner.class)
19 public class TestForwardingScanner {
20 private ForwardingScanner forwardingScanner;
21
22 @Mock
23 private Scanner mockScanner;
24
25 final DeploymentUnit unitA = new DeploymentUnit(new File("unitA"));
26
27 final DeploymentUnit unitB = new DeploymentUnit(new File("unitB"));
28
29 @Before
30 public void setUp() {
31 forwardingScanner = new ForwardingScanner(mockScanner);
32 }
33
34 @After
35 public void tearDown() {
36 forwardingScanner = null;
37 }
38
39 @Test
40 public void scanIsForwarded() {
41 when(mockScanner.scan()).thenReturn(Arrays.asList(unitA));
42 final Collection<DeploymentUnit> deploymentUnits = forwardingScanner.scan();
43 verify(mockScanner).scan();
44 assertEquals(deploymentUnits, Arrays.asList(unitA));
45 }
46
47 @Test
48 public void getDeploymentUnitsIsForwarded() {
49 when(mockScanner.getDeploymentUnits()).thenReturn(Arrays.asList(unitA, unitB));
50 final Collection<DeploymentUnit> deploymentUnits = forwardingScanner.getDeploymentUnits();
51 verify(mockScanner).getDeploymentUnits();
52 assertEquals(deploymentUnits, Arrays.asList(unitA, unitB));
53 }
54
55 @Test
56 public void resetIsForwarded() {
57 forwardingScanner.reset();
58 verify(mockScanner).reset();
59 }
60
61 @Test
62 public void removeIsForwarded() {
63 forwardingScanner.remove(unitA);
64 verify(mockScanner).remove(unitA);
65 }
66 }