1 package com.atlassian.cache.impl;
2
3 import com.atlassian.cache.CachedReferenceListener;
4
5 import org.junit.Test;
6
7 import static com.atlassian.cache.impl.CachedReferenceEventMatcher.event;
8 import static org.mockito.Mockito.mock;
9 import static org.mockito.Mockito.verify;
10 import static org.mockito.Mockito.verifyNoMoreInteractions;
11
12 public class DefaultCachedReferenceListenerSupportTest
13 {
14 @Test
15 public void testAdd()
16 {
17 DefaultCachedReferenceListenerSupport<String> listenerSupport = new DefaultCachedReferenceListenerSupport<String>();
18
19 listenerSupport.notifySet("SET");
20
21 CachedReferenceListener<String> listener = mock(CachedReferenceListener.class);
22 listenerSupport.add(listener, true);
23
24 listenerSupport.notifySet("SET");
25
26 verify(listener).onSet(event("SET"));
27 verifyNoMoreInteractions(listener);
28 }
29
30 @Test
31 public void testRemove()
32 {
33 DefaultCachedReferenceListenerSupport<String> listenerSupport = new DefaultCachedReferenceListenerSupport<String>();
34
35 listenerSupport.notifySet("SET");
36
37 CachedReferenceListener<String> listener = mock(CachedReferenceListener.class);
38 listenerSupport.add(listener, true);
39
40 listenerSupport.notifySet("SET");
41
42 listenerSupport.remove(listener);
43
44 listenerSupport.notifySet("SET");
45
46 verify(listener).onSet(event("SET"));
47 verifyNoMoreInteractions(listener);
48 }
49
50 @Test
51 public void testNotifyEvict()
52 {
53 DefaultCachedReferenceListenerSupport<String> listenerSupport = new DefaultCachedReferenceListenerSupport<String>();
54
55 CachedReferenceListener<String> listener = mock(CachedReferenceListener.class);
56 listenerSupport.add(listener, true);
57
58 listenerSupport.notifyEvict("EVICT");
59
60 verify(listener).onEvict(event("EVICT"));
61 verifyNoMoreInteractions(listener);
62 }
63
64 @Test
65 public void testNotifySet()
66 {
67 DefaultCachedReferenceListenerSupport<String> listenerSupport = new DefaultCachedReferenceListenerSupport<String>();
68
69 CachedReferenceListener<String> listener = mock(CachedReferenceListener.class);
70 listenerSupport.add(listener, true);
71
72 listenerSupport.notifySet("SET");
73
74 verify(listener).onSet(event("SET"));
75 verifyNoMoreInteractions(listener);
76 }
77
78 @Test
79 public void testNotifyReset()
80 {
81 DefaultCachedReferenceListenerSupport<String> listenerSupport = new DefaultCachedReferenceListenerSupport<String>();
82
83 CachedReferenceListener<String> listener = mock(CachedReferenceListener.class);
84 listenerSupport.add(listener, true);
85
86 listenerSupport.notifyReset("RESET");
87
88 verify(listener).onReset(event("RESET"));
89 verifyNoMoreInteractions(listener);
90 }
91 }