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