|
@@ -24,34 +24,36 @@ package com.dmdirc.addons.logging;
|
24
|
24
|
|
25
|
25
|
import com.dmdirc.DMDircMBassador;
|
26
|
26
|
import com.dmdirc.config.ConfigBinder;
|
27
|
|
-import com.dmdirc.events.DisplayPropertyMap;
|
28
|
27
|
import com.dmdirc.interfaces.Connection;
|
29
|
28
|
import com.dmdirc.interfaces.WindowModel;
|
30
|
29
|
import com.dmdirc.interfaces.config.AggregateConfigProvider;
|
31
|
30
|
import com.dmdirc.ui.messages.BackBuffer;
|
32
|
31
|
import com.dmdirc.ui.messages.BackBufferFactory;
|
33
|
|
-import com.dmdirc.ui.messages.IRCDocument;
|
34
|
32
|
|
35
|
33
|
import java.nio.file.Paths;
|
36
|
|
-import java.text.SimpleDateFormat;
|
|
34
|
+import java.util.ArrayList;
|
|
35
|
+import java.util.List;
|
37
|
36
|
import java.util.Optional;
|
|
37
|
+import java.util.concurrent.CountDownLatch;
|
|
38
|
+import java.util.concurrent.TimeUnit;
|
38
|
39
|
|
39
|
40
|
import org.junit.Before;
|
40
|
41
|
import org.junit.Test;
|
41
|
42
|
import org.junit.runner.RunWith;
|
42
|
|
-import org.mockito.InOrder;
|
43
|
43
|
import org.mockito.Mock;
|
44
|
44
|
import org.mockito.runners.MockitoJUnitRunner;
|
45
|
45
|
|
|
46
|
+import net.engio.mbassy.listener.Handler;
|
|
47
|
+import net.engio.mbassy.listener.Listener;
|
|
48
|
+import net.engio.mbassy.listener.References;
|
|
49
|
+
|
46
|
50
|
import static junit.framework.TestCase.assertEquals;
|
|
51
|
+import static org.junit.Assert.assertTrue;
|
47
|
52
|
import static org.mockito.Matchers.any;
|
48
|
|
-import static org.mockito.Matchers.eq;
|
49
|
|
-import static org.mockito.Mockito.inOrder;
|
50
|
53
|
import static org.mockito.Mockito.when;
|
51
|
54
|
@RunWith(MockitoJUnitRunner.class)
|
52
|
55
|
public class HistoryWindowTest {
|
53
|
56
|
|
54
|
|
- @Mock private IRCDocument document;
|
55
|
57
|
@Mock private BackBuffer backBuffer;
|
56
|
58
|
@Mock private AggregateConfigProvider config;
|
57
|
59
|
@Mock private ConfigBinder configBinder;
|
|
@@ -64,7 +66,6 @@ public class HistoryWindowTest {
|
64
|
66
|
@Before
|
65
|
67
|
public void setUp() throws Exception {
|
66
|
68
|
when(backBufferFactory.getBackBuffer(any())).thenReturn(backBuffer);
|
67
|
|
- when(backBuffer.getDocument()).thenReturn(document);
|
68
|
69
|
when(config.getBinder()).thenReturn(configBinder);
|
69
|
70
|
when(frameContainer.getConfigManager()).thenReturn(config);
|
70
|
71
|
when(frameContainer.getConnection()).thenReturn(Optional.of(connection));
|
|
@@ -80,20 +81,28 @@ public class HistoryWindowTest {
|
80
|
81
|
|
81
|
82
|
@Test
|
82
|
83
|
public void testOutputLoggingBackBuffer() throws Exception {
|
|
84
|
+ final LineListener listener = new LineListener();
|
|
85
|
+ instance.getEventBus().subscribe(listener);
|
83
|
86
|
instance.outputLoggingBackBuffer(4);
|
84
|
|
- final InOrder inOrder = inOrder(document);
|
85
|
|
- inOrder.verify(document).addText(eq(new SimpleDateFormat("[dd/MM/yyyy HH:mm:ss]")
|
86
|
|
- .parse("[21/12/2015 12:58:02]").getTime()), eq
|
87
|
|
- (DisplayPropertyMap.EMPTY), eq("RAAR"));
|
88
|
|
- inOrder.verify(document).addText(eq(new SimpleDateFormat("[dd/MM/yyyy HH:mm:ss]")
|
89
|
|
- .parse("[21/12/2015 12:59:03]").getTime()), eq
|
90
|
|
- (DisplayPropertyMap.EMPTY), eq("RAAAR"));
|
91
|
|
- inOrder.verify(document).addText(eq(new SimpleDateFormat("[dd/MM/yyyy HH:mm:ss]")
|
92
|
|
- .parse("[21/12/2015 13:00:04]").getTime()), eq
|
93
|
|
- (DisplayPropertyMap.EMPTY), eq("RAAAAR"));
|
94
|
|
- inOrder.verify(document).addText(eq(new SimpleDateFormat("[dd/MM/yyyy HH:mm:ss]")
|
95
|
|
- .parse("[21/12/2015 13:01:05]").getTime()), eq
|
96
|
|
- (DisplayPropertyMap.EMPTY), eq("RAAAAAR"));
|
97
|
|
- inOrder.verifyNoMoreInteractions();
|
|
87
|
+
|
|
88
|
+ assertTrue(listener.latch.await(5, TimeUnit.SECONDS));
|
|
89
|
+ assertEquals("[21/12/2015 12:58:02] RAAR", listener.values.get(0).getLine());
|
|
90
|
+ assertEquals("[21/12/2015 12:59:03] RAAAR", listener.values.get(1).getLine());
|
|
91
|
+ assertEquals("[21/12/2015 13:00:04] RAAAAR", listener.values.get(2).getLine());
|
|
92
|
+ assertEquals("[21/12/2015 13:01:05] RAAAAAR", listener.values.get(3).getLine());
|
|
93
|
+ }
|
|
94
|
+
|
|
95
|
+ @Listener(references = References.Strong)
|
|
96
|
+ private static class LineListener {
|
|
97
|
+
|
|
98
|
+ public final List<HistoricalLineRestoredEvent> values = new ArrayList<>();
|
|
99
|
+ public final CountDownLatch latch = new CountDownLatch(4);
|
|
100
|
+
|
|
101
|
+ @Handler
|
|
102
|
+ private void handleLineRestored(final HistoricalLineRestoredEvent event) {
|
|
103
|
+ values.add(event);
|
|
104
|
+ latch.countDown();
|
|
105
|
+ }
|
|
106
|
+
|
98
|
107
|
}
|
99
|
108
|
}
|