1 package com.atlassian.cache.ehcache;
2
3 import net.sf.ehcache.distribution.RMIAsynchronousCacheReplicator;
4 import net.sf.ehcache.event.CacheEventListener;
5 import net.sf.ehcache.event.CacheEventListenerFactory;
6 import org.junit.Before;
7 import org.junit.Test;
8
9 import java.util.Properties;
10
11 import static com.atlassian.cache.ehcache.RMICacheReplicatorFactory.REPLICATE_ASYNCHRONOUSLY;
12 import static org.junit.Assert.assertEquals;
13 import static org.mockito.Mockito.mock;
14 import static org.mockito.Mockito.when;
15
16 public class RMICacheReplicatorFactoryTest
17 {
18 private CacheEventListenerFactory factory;
19
20 @Before
21 public void setUp() throws Exception
22 {
23 factory = new RMICacheReplicatorFactory();
24 }
25
26 @Test
27 public void replicationShouldBeAsynchronousByDefault() throws Exception
28 {
29
30 final Properties mockProperties = mock(Properties.class);
31
32
33 final CacheEventListener listener = factory.createCacheEventListener(mockProperties);
34
35
36 assertEquals(RMIAsynchronousCacheReplicator.class, listener.getClass());
37 }
38
39 @Test
40 public void replicationShouldBeAsynchronousWhenExplicitlySet() throws Exception
41 {
42
43 final Properties mockProperties = mock(Properties.class);
44 when(mockProperties.get(REPLICATE_ASYNCHRONOUSLY)).thenReturn("TRUE");
45 when(mockProperties.size()).thenReturn(1);
46
47
48 final CacheEventListener listener = factory.createCacheEventListener(mockProperties);
49
50
51 assertEquals(RMIAsynchronousCacheReplicator.class, listener.getClass());
52 }
53
54 @Test
55 public void replicationShouldBeSynchronousWhenExplicitlySet() throws Exception
56 {
57
58 final Properties mockProperties = mock(Properties.class);
59 when(mockProperties.get(REPLICATE_ASYNCHRONOUSLY)).thenReturn("FALSE");
60 when(mockProperties.size()).thenReturn(1);
61
62
63 final CacheEventListener listener = factory.createCacheEventListener(mockProperties);
64
65
66 assertEquals(RMISynchronousCacheReplicator.class, listener.getClass());
67 }
68 }