Skip to content

Commit 7a84e21

Browse files
Add comprehensive unit tests for CachePolicy, Config, and Contentstack classes
1 parent 841f0ef commit 7a84e21

3 files changed

Lines changed: 809 additions & 0 deletions

File tree

Lines changed: 174 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,174 @@
1+
package com.contentstack.sdk;
2+
3+
import org.junit.Test;
4+
import org.junit.runner.RunWith;
5+
import org.robolectric.RobolectricTestRunner;
6+
7+
import static org.junit.Assert.*;
8+
9+
/**
10+
* Comprehensive tests for CachePolicy enum.
11+
*/
12+
@RunWith(RobolectricTestRunner.class)
13+
public class TestCachePolicy {
14+
15+
@Test
16+
public void testEnumValues() {
17+
CachePolicy[] values = CachePolicy.values();
18+
assertEquals("Should have 6 cache policy values", 6, values.length);
19+
}
20+
21+
@Test
22+
public void testCacheOnly() {
23+
CachePolicy policy = CachePolicy.CACHE_ONLY;
24+
assertNotNull(policy);
25+
assertEquals("CACHE_ONLY", policy.name());
26+
assertEquals(0, policy.ordinal());
27+
}
28+
29+
@Test
30+
public void testNetworkOnly() {
31+
CachePolicy policy = CachePolicy.NETWORK_ONLY;
32+
assertNotNull(policy);
33+
assertEquals("NETWORK_ONLY", policy.name());
34+
assertEquals(1, policy.ordinal());
35+
}
36+
37+
@Test
38+
public void testCacheElseNetwork() {
39+
CachePolicy policy = CachePolicy.CACHE_ELSE_NETWORK;
40+
assertNotNull(policy);
41+
assertEquals("CACHE_ELSE_NETWORK", policy.name());
42+
assertEquals(2, policy.ordinal());
43+
}
44+
45+
@Test
46+
public void testNetworkElseCache() {
47+
CachePolicy policy = CachePolicy.NETWORK_ELSE_CACHE;
48+
assertNotNull(policy);
49+
assertEquals("NETWORK_ELSE_CACHE", policy.name());
50+
assertEquals(3, policy.ordinal());
51+
}
52+
53+
@Test
54+
public void testCacheThenNetwork() {
55+
CachePolicy policy = CachePolicy.CACHE_THEN_NETWORK;
56+
assertNotNull(policy);
57+
assertEquals("CACHE_THEN_NETWORK", policy.name());
58+
assertEquals(4, policy.ordinal());
59+
}
60+
61+
@Test
62+
public void testIgnoreCache() {
63+
CachePolicy policy = CachePolicy.IGNORE_CACHE;
64+
assertNotNull(policy);
65+
assertEquals("IGNORE_CACHE", policy.name());
66+
assertEquals(5, policy.ordinal());
67+
}
68+
69+
@Test
70+
public void testValueOf() {
71+
assertEquals(CachePolicy.CACHE_ONLY, CachePolicy.valueOf("CACHE_ONLY"));
72+
assertEquals(CachePolicy.NETWORK_ONLY, CachePolicy.valueOf("NETWORK_ONLY"));
73+
assertEquals(CachePolicy.CACHE_ELSE_NETWORK, CachePolicy.valueOf("CACHE_ELSE_NETWORK"));
74+
assertEquals(CachePolicy.NETWORK_ELSE_CACHE, CachePolicy.valueOf("NETWORK_ELSE_CACHE"));
75+
assertEquals(CachePolicy.CACHE_THEN_NETWORK, CachePolicy.valueOf("CACHE_THEN_NETWORK"));
76+
assertEquals(CachePolicy.IGNORE_CACHE, CachePolicy.valueOf("IGNORE_CACHE"));
77+
}
78+
79+
@Test
80+
public void testEnumToString() {
81+
assertEquals("CACHE_ONLY", CachePolicy.CACHE_ONLY.toString());
82+
assertEquals("NETWORK_ONLY", CachePolicy.NETWORK_ONLY.toString());
83+
assertEquals("CACHE_ELSE_NETWORK", CachePolicy.CACHE_ELSE_NETWORK.toString());
84+
assertEquals("NETWORK_ELSE_CACHE", CachePolicy.NETWORK_ELSE_CACHE.toString());
85+
assertEquals("CACHE_THEN_NETWORK", CachePolicy.CACHE_THEN_NETWORK.toString());
86+
assertEquals("IGNORE_CACHE", CachePolicy.IGNORE_CACHE.toString());
87+
}
88+
89+
@Test
90+
public void testEnumEquality() {
91+
CachePolicy policy1 = CachePolicy.CACHE_ONLY;
92+
CachePolicy policy2 = CachePolicy.CACHE_ONLY;
93+
assertEquals(policy1, policy2);
94+
assertSame(policy1, policy2);
95+
}
96+
97+
@Test
98+
public void testEnumInequality() {
99+
assertNotEquals(CachePolicy.CACHE_ONLY, CachePolicy.NETWORK_ONLY);
100+
assertNotEquals(CachePolicy.CACHE_ELSE_NETWORK, CachePolicy.NETWORK_ELSE_CACHE);
101+
assertNotEquals(CachePolicy.CACHE_THEN_NETWORK, CachePolicy.IGNORE_CACHE);
102+
}
103+
104+
@Test
105+
public void testSwitchStatement() {
106+
CachePolicy policy = CachePolicy.CACHE_ELSE_NETWORK;
107+
String result;
108+
109+
switch (policy) {
110+
case CACHE_ONLY:
111+
result = "Cache Only";
112+
break;
113+
case NETWORK_ONLY:
114+
result = "Network Only";
115+
break;
116+
case CACHE_ELSE_NETWORK:
117+
result = "Cache Else Network";
118+
break;
119+
case NETWORK_ELSE_CACHE:
120+
result = "Network Else Cache";
121+
break;
122+
case CACHE_THEN_NETWORK:
123+
result = "Cache Then Network";
124+
break;
125+
case IGNORE_CACHE:
126+
result = "Ignore Cache";
127+
break;
128+
default:
129+
result = "Unknown";
130+
break;
131+
}
132+
133+
assertEquals("Cache Else Network", result);
134+
}
135+
136+
@Test
137+
public void testAllValuesIteration() {
138+
int count = 0;
139+
for (CachePolicy policy : CachePolicy.values()) {
140+
assertNotNull(policy);
141+
count++;
142+
}
143+
assertEquals(6, count);
144+
}
145+
146+
@Test(expected = IllegalArgumentException.class)
147+
public void testInvalidValueOf() {
148+
CachePolicy.valueOf("INVALID_POLICY");
149+
}
150+
151+
@Test(expected = NullPointerException.class)
152+
public void testNullValueOf() {
153+
CachePolicy.valueOf(null);
154+
}
155+
156+
@Test
157+
public void testPolicySemantics() {
158+
// Test that policies have expected semantics
159+
assertNotNull("CACHE_ONLY should exist", CachePolicy.CACHE_ONLY);
160+
assertNotNull("NETWORK_ONLY should exist", CachePolicy.NETWORK_ONLY);
161+
assertNotNull("CACHE_ELSE_NETWORK should exist", CachePolicy.CACHE_ELSE_NETWORK);
162+
assertNotNull("NETWORK_ELSE_CACHE should exist", CachePolicy.NETWORK_ELSE_CACHE);
163+
assertNotNull("CACHE_THEN_NETWORK should exist", CachePolicy.CACHE_THEN_NETWORK);
164+
assertNotNull("IGNORE_CACHE should exist", CachePolicy.IGNORE_CACHE);
165+
}
166+
167+
@Test
168+
public void testEnumComparison() {
169+
assertTrue(CachePolicy.CACHE_ONLY.compareTo(CachePolicy.NETWORK_ONLY) < 0);
170+
assertTrue(CachePolicy.IGNORE_CACHE.compareTo(CachePolicy.CACHE_ONLY) > 0);
171+
assertEquals(0, CachePolicy.CACHE_ELSE_NETWORK.compareTo(CachePolicy.CACHE_ELSE_NETWORK));
172+
}
173+
}
174+

0 commit comments

Comments
 (0)