View Javadoc

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          // Set up
30          final Properties mockProperties = mock(Properties.class);
31  
32          // Invoke
33          final CacheEventListener listener = factory.createCacheEventListener(mockProperties);
34  
35          // Check
36          assertEquals(RMIAsynchronousCacheReplicator.class, listener.getClass());
37      }
38  
39      @Test
40      public void replicationShouldBeAsynchronousWhenExplicitlySet() throws Exception
41      {
42          // Set up
43          final Properties mockProperties = mock(Properties.class);
44          when(mockProperties.get(REPLICATE_ASYNCHRONOUSLY)).thenReturn("TRUE");
45          when(mockProperties.size()).thenReturn(1);
46  
47          // Invoke
48          final CacheEventListener listener = factory.createCacheEventListener(mockProperties);
49  
50          // Check
51          assertEquals(RMIAsynchronousCacheReplicator.class, listener.getClass());
52      }
53  
54      @Test
55      public void replicationShouldBeSynchronousWhenExplicitlySet() throws Exception
56      {
57          // Set up
58          final Properties mockProperties = mock(Properties.class);
59          when(mockProperties.get(REPLICATE_ASYNCHRONOUSLY)).thenReturn("FALSE");
60          when(mockProperties.size()).thenReturn(1);
61  
62          // Invoke
63          final CacheEventListener listener = factory.createCacheEventListener(mockProperties);
64  
65          // Check
66          assertEquals(RMISynchronousCacheReplicator.class, listener.getClass());
67      }
68  }