1 package org.apache.directmemory.cache;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import static org.junit.Assert.*;
23
24 import java.io.IOException;
25
26 import org.apache.directmemory.DirectMemory;
27 import org.apache.directmemory.memory.Pointer;
28 import org.apache.directmemory.memory.UnsafeMemoryManagerServiceImpl;
29 import org.junit.Test;
30
31 public class BasicTest
32 {
33 @Test
34 public void putRetrieveAndUpdate()
35 throws IOException
36 {
37 CacheService<String, Long> cache =
38 new DirectMemory<String, Long>().setNumberOfBuffers( 10 ).setSize( 1000 ).setInitialCapacity( 10000 ).setConcurrencyLevel( 4 ).newCacheService();
39
40 assertNull( cache.retrieve( "a" ) );
41 assertNotNull( cache.put( "a", 3L ) );
42 assertNotNull( cache.retrieve( "a" ) );
43 assertEquals( 3L, cache.retrieve( "a" ).longValue() );
44
45 Pointer<Long> ptr = cache.put( "a", 5L );
46 assertNotNull( ptr );
47 assertFalse( ptr.isExpired() );
48 assertFalse( ptr.isFree() );
49 assertNotNull( "pointer should not be null", cache.retrieve( "a" ) );
50 assertEquals( 5L, cache.retrieve( "a" ).longValue() );
51
52 cache.close();
53 }
54
55 @Test
56 public void putRetrieveAndUpdateWithUnsafe()
57 throws IOException
58 {
59 CacheService<String, Long> cache =
60 new DirectMemory<String, Long>().setNumberOfBuffers( 10 ).setSize( 1000 ).setInitialCapacity( 10000 ).setConcurrencyLevel( 4 ).setMemoryManager( new UnsafeMemoryManagerServiceImpl<Long>() ).newCacheService();
61
62 assertNull( cache.retrieve( "a" ) );
63 assertNotNull( cache.put( "a", 3L ) );
64 assertNotNull( cache.retrieve( "a" ) );
65 assertEquals( 3L, cache.retrieve( "a" ).longValue() );
66
67 Pointer<Long> ptr = cache.put( "a", 5L );
68 assertNotNull( ptr );
69 assertFalse( ptr.isExpired() );
70 assertFalse( ptr.isFree() );
71 assertNotNull( "pointer should not be null", cache.retrieve( "a" ) );
72 assertEquals( 5L, cache.retrieve( "a" ).longValue() );
73
74 cache.close();
75 }
76
77 }