View Javadoc
1   package com.atlassian.cache.ehcache.wrapper;
2   
3   import com.atlassian.cache.CacheLoader;
4   import org.junit.Before;
5   import org.junit.Rule;
6   import org.junit.Test;
7   import org.mockito.Mock;
8   import org.mockito.junit.MockitoJUnit;
9   import org.mockito.junit.MockitoRule;
10  
11  import static org.junit.Assert.*;
12  import static org.mockito.ArgumentMatchers.same;
13  import static org.mockito.Mockito.verify;
14  import static org.mockito.Mockito.verifyNoMoreInteractions;
15  import static org.mockito.Mockito.when;
16  
17  public class ValueProcessorAtlassianCacheLoaderDecoratorTest {
18  
19      @Rule
20      public MockitoRule mockitoRule = MockitoJUnit.rule();
21  
22      @Mock
23      private CacheLoader mockLoader;
24  
25      private ValueProcessorAtlassianCacheLoaderDecorator tested;
26  
27      @Before
28      public void init() {
29          tested = new ValueProcessorAtlassianCacheLoaderDecorator(mockLoader, WrapperTestUtils.getValueProcessor());
30      }
31  
32      @SuppressWarnings({"Duplicates", "unchecked"})
33      @Test
34      public void testLoadShouldUnwrapKeyAndWrapResult() {
35          Object key = new Object();
36          Object value = new Object();
37  
38          when(mockLoader.load(key)).thenReturn(value);
39  
40          Object loaded = tested.load(new MockWrappedValue(key));
41  
42          verify(mockLoader).load(same(key));
43          verifyNoMoreInteractions(mockLoader);
44          assertSame(MockWrappedValue.class, loaded.getClass());
45          assertSame(value, ((MockWrappedValue) loaded).getValue());
46      }
47  }