-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathRxICacheImplTest.java
More file actions
115 lines (94 loc) · 3.5 KB
/
RxICacheImplTest.java
File metadata and controls
115 lines (94 loc) · 3.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
package com.hazelcast.rxjava.impl;
import com.hazelcast.cache.ICache;
import com.hazelcast.cache.impl.HazelcastServerCachingProvider;
import com.hazelcast.core.HazelcastInstance;
import com.hazelcast.rxjava.RxHazelcast;
import com.hazelcast.rxjava.RxICache;
import com.hazelcast.test.HazelcastParallelClassRunner;
import com.hazelcast.test.HazelcastTestSupport;
import com.hazelcast.test.annotation.ParallelTest;
import com.hazelcast.test.annotation.QuickTest;
import org.junit.Before;
import org.junit.Test;
import org.junit.experimental.categories.Category;
import org.junit.runner.RunWith;
import rx.observers.TestSubscriber;
import javax.cache.configuration.MutableConfiguration;
import javax.cache.expiry.CreatedExpiryPolicy;
import javax.cache.expiry.Duration;
import static java.util.concurrent.TimeUnit.SECONDS;
import static org.junit.Assert.assertEquals;
/**
* TODO
*
* @author Viktor Gamov on 7/29/16.
* Twitter: @gamussa
* @since 0.0.1
*/
@RunWith(HazelcastParallelClassRunner.class)
@Category({QuickTest.class, ParallelTest.class})
public class RxICacheImplTest extends HazelcastTestSupport {
private ICache<String, String> cache;
private RxICache<String, String> rxCache;
@Before
public void before() {
final HazelcastInstance hazelcastInstance = createHazelcastInstance();
final MutableConfiguration<String, String> configuration = new MutableConfiguration<String, String>();
HazelcastServerCachingProvider.createCachingProvider(hazelcastInstance)
.getCacheManager().createCache("RxJava", configuration);
cache = hazelcastInstance.getCacheManager().getCache("RxJava");
cache.put("RxJava", "cool");
rxCache = RxHazelcast.from(cache);
}
@Test
public void fromICache() {
// WHEN
RxICache<String, String> rxICache = RxHazelcast.from(cache);
// THEN
assertEquals(cache, rxICache.getDelegate());
}
@Test
public void get() {
// WHEN
TestSubscriber<String> subscriber = new TestSubscriber<String>();
rxCache.get("RxJava").subscribe(subscriber);
// THEN
RxTestUtils.assertSingleResult("cool", subscriber);
}
@Test
public void put() {
// WHEN
TestSubscriber<Void> subscriber = new TestSubscriber<Void>();
rxCache.put("Reactive", "rocks").subscribe(subscriber);
// THEN
RxTestUtils.assertVoidResult(subscriber);
}
@Test
public void putWithTtl() {
// WHEN
TestSubscriber<Void> subscriber = new TestSubscriber<Void>();
rxCache.put("Reactive", "rocks", new CreatedExpiryPolicy(new Duration(SECONDS, 120)))
.subscribe(subscriber);
// THEN
RxTestUtils.assertSingleResult(null, subscriber);
}
@Test
public void getAndPut() {
//WHEN
final TestSubscriber<String> subscriber = new TestSubscriber<String>();
rxCache.put("Reactive", "rocks").subscribe();
rxCache.getAndPut("Reactive", "rocks!!!").subscribe(subscriber);
// THEN
RxTestUtils.assertSingleResult("rocks", subscriber);
}
@Test
public void getAndPut_wthTtl() {
//WHEN
final TestSubscriber<String> subscriber = new TestSubscriber<String>();
rxCache.put("Reactive", "rocks").subscribe();
rxCache.getAndPut("Reactive", "rocks!!!", new CreatedExpiryPolicy(new Duration(SECONDS, 120))).subscribe
(subscriber);
// THEN
RxTestUtils.assertSingleResult("rocks", subscriber);
}
}