Skip to content

Commit 3cf9982

Browse files
committed
Ported hazelcast json value test
1 parent 58783dc commit 3cf9982

File tree

1 file changed

+74
-0
lines changed

1 file changed

+74
-0
lines changed
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
from hazelcast.core import HazelcastJsonValue
2+
from hazelcast.predicate import greater, equal
3+
from tests.integration.asyncio.base import SingleMemberTestCase
4+
5+
6+
class HazelcastJsonValueWithMapTest(SingleMemberTestCase):
7+
@classmethod
8+
def setUpClass(cls):
9+
super(HazelcastJsonValueWithMapTest, cls).setUpClass()
10+
cls.json_str = '{"key": "value"}'
11+
cls.json_obj = {"key": "value"}
12+
13+
@classmethod
14+
def configure_client(cls, config):
15+
config["cluster_name"] = cls.cluster.id
16+
return config
17+
18+
async def asyncSetUp(self):
19+
await super().asyncSetUp()
20+
self.map = await self.client.get_map("json-test")
21+
22+
async def asyncTearDown(self):
23+
await self.map.destroy()
24+
25+
async def test_storing_hazelcast_json_value_as_key(self):
26+
json_value = HazelcastJsonValue(self.json_str)
27+
await self.map.put(json_value, 0)
28+
self.assertEqual(0, await self.map.get(json_value))
29+
30+
async def test_storing_hazelcast_json_value_as_value(self):
31+
json_value = HazelcastJsonValue(self.json_str)
32+
await self.map.put(0, json_value)
33+
self.assertEqual(json_value.to_string(), (await self.map.get(0)).to_string())
34+
35+
async def test_storing_hazelcast_json_value_with_invalid_str(self):
36+
json_value = HazelcastJsonValue('{"a')
37+
await self.map.put(0, json_value)
38+
self.assertEqual(json_value.to_string(), (await self.map.get(0)).to_string())
39+
40+
async def test_querying_over_keys_with_hazelcast_json_value(self):
41+
json_value = HazelcastJsonValue({"a": 1})
42+
json_value2 = HazelcastJsonValue({"a": 3})
43+
await self.map.put(json_value, 1)
44+
await self.map.put(json_value2, 2)
45+
results = await self.map.key_set(greater("__key.a", 2))
46+
self.assertEqual(1, len(results))
47+
self.assertEqual(json_value2.to_string(), results[0].to_string())
48+
49+
async def test_querying_nested_attr_over_keys_with_hazelcast_json_value(self):
50+
json_value = HazelcastJsonValue({"a": 1, "b": {"c": "d"}})
51+
json_value2 = HazelcastJsonValue({"a": 2, "b": {"c": "e"}})
52+
await self.map.put(json_value, 1)
53+
await self.map.put(json_value2, 2)
54+
results = await self.map.key_set(equal("__key.b.c", "d"))
55+
self.assertEqual(1, len(results))
56+
self.assertEqual(json_value.to_string(), results[0].to_string())
57+
58+
async def test_querying_over_values_with_hazelcast_json_value(self):
59+
json_value = HazelcastJsonValue({"a": 1})
60+
json_value2 = HazelcastJsonValue({"a": 3})
61+
await self.map.put(1, json_value)
62+
await self.map.put(2, json_value2)
63+
results = await self.map.values(greater("a", 2))
64+
self.assertEqual(1, len(results))
65+
self.assertEqual(json_value2.to_string(), results[0].to_string())
66+
67+
async def test_querying_nested_attr_over_values_with_hazelcast_json_value(self):
68+
json_value = HazelcastJsonValue({"a": 1, "b": {"c": "d"}})
69+
json_value2 = HazelcastJsonValue({"a": 2, "b": {"c": "e"}})
70+
await self.map.put(1, json_value)
71+
await self.map.put(2, json_value2)
72+
results = await self.map.values(equal("b.c", "d"))
73+
self.assertEqual(1, len(results))
74+
self.assertEqual(json_value.to_string(), results[0].to_string())

0 commit comments

Comments
 (0)