1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 package net.grinder.console.distribution;
23
24 import static org.junit.Assert.assertEquals;
25 import static org.junit.Assert.assertSame;
26 import static org.mockito.Mockito.mock;
27 import static org.mockito.Mockito.verify;
28 import static org.mockito.Mockito.verifyNoMoreInteractions;
29 import static org.mockito.Mockito.when;
30
31 import java.io.File;
32 import java.util.HashMap;
33 import java.util.TimerTask;
34 import java.util.regex.Pattern;
35
36 import net.grinder.communication.MessageDispatchRegistry;
37 import net.grinder.console.common.Resources;
38 import net.grinder.console.common.StubResources;
39 import net.grinder.console.communication.ConsoleCommunication;
40 import net.grinder.console.model.ConsoleProperties;
41 import net.grinder.testutility.AbstractJUnit4FileTestCase;
42 import net.grinder.testutility.StubTimer;
43 import net.grinder.util.Directory;
44
45 import org.junit.Before;
46 import org.junit.Test;
47 import org.mockito.ArgumentCaptor;
48 import org.mockito.Mock;
49 import org.mockito.MockitoAnnotations;
50
51
52
53
54
55
56
57 public class TestWireFileDistribution extends AbstractJUnit4FileTestCase {
58
59 @Mock private MessageDispatchRegistry m_messageDispatchRegistry;
60 @Mock private ConsoleCommunication m_consoleCommunication;
61
62 @Before public void setUp() {
63 MockitoAnnotations.initMocks(this);
64
65 when(m_consoleCommunication.getMessageDispatchRegistry())
66 .thenReturn(m_messageDispatchRegistry);
67 }
68
69 private final Resources m_resources =
70 new StubResources<Object>(new HashMap<String, Object>() {{
71 }});
72
73 @Test public void testWireFileDistribution() throws Exception {
74
75 final FileDistribution fileDistribution = mock(FileDistribution.class);
76
77 final ConsoleProperties consoleProperties =
78 new ConsoleProperties(m_resources, new File(getDirectory(), "props"));
79
80 final StubTimer timer = new StubTimer();
81
82 new WireFileDistribution(fileDistribution,
83 consoleProperties,
84 timer);
85
86 assertEquals(6000, timer.getLastDelay());
87 assertEquals(6000, timer.getLastPeriod());
88
89 final TimerTask scanFileTask = timer.getLastScheduledTimerTask();
90 scanFileTask.run();
91 verify(fileDistribution).scanDistributionFiles();
92
93 consoleProperties.setDistributionFileFilterExpression(".*");
94
95 final ArgumentCaptor<Pattern> patternCaptor =
96 ArgumentCaptor.forClass(Pattern.class);
97
98 verify(fileDistribution).setFileFilterPattern(patternCaptor.capture());
99 assertEquals(".*", patternCaptor.getValue().pattern());
100
101 final ArgumentCaptor<Directory> directoryCaptor =
102 ArgumentCaptor.forClass(Directory.class);
103
104 final Directory directory = new Directory(new File(getDirectory(), "foo"));
105 consoleProperties.setAndSaveDistributionDirectory(directory);
106
107 verify(fileDistribution).setDirectory(directoryCaptor.capture());
108 assertSame(directory, directoryCaptor.getValue());
109
110 consoleProperties.setConsolePort(999);
111
112 verifyNoMoreInteractions(fileDistribution);
113 }
114 }