Skip to content

Commit 57aa6ae

Browse files
committed
RDBC-685 QueryOnCountersTest::rawQueryJsProjectionWithCounterRawValues
1 parent c3109e0 commit 57aa6ae

File tree

1 file changed

+52
-0
lines changed

1 file changed

+52
-0
lines changed

ravendb/tests/counters_tests/test_query_on_counters.py

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,13 @@
44
from ravendb.tests.test_base import TestBase, Order, Employee, Company, User
55

66

7+
class CounterResult4:
8+
def __init__(self, downloads: int, name: str, likes: Dict[str, int]):
9+
self.downloads = downloads
10+
self.name = name
11+
self.likes = likes
12+
13+
714
class TestQueryOnCounters(TestBase):
815
def setUp(self):
916
super(TestQueryOnCounters, self).setUp()
@@ -603,3 +610,48 @@ def test_raw_query_js_with_counter_raw_values(self):
603610
self.assertSequenceContainsElements(names, "Jerry", "Bob", "Pigpen")
604611
self.assertSequenceContainsElements(downloads, 100, 300, None)
605612
self.assertSequenceContainsElements(likes, 200, 400, 500)
613+
614+
def test_raw_query_js_projection_with_counter_raw_values(self):
615+
with self.store.open_session() as session:
616+
user1 = User("Jerry")
617+
user2 = User("Bob")
618+
user3 = User("Pigpen")
619+
620+
session.store(user1, "users/1-A")
621+
session.store(user2, "users/2-A")
622+
session.store(user3, "users/3-A")
623+
624+
session.counters_for("users/1-A").increment("downloads", 100)
625+
session.counters_for("users/1-A").increment("likes", 200)
626+
627+
session.counters_for("users/2-A").increment("downloads", 300)
628+
session.counters_for("users/2-A").increment("likes", 400)
629+
630+
session.counters_for("users/3-A").increment("likes", 500)
631+
632+
session.save_changes()
633+
634+
with self.store.open_session() as session:
635+
query = list(
636+
session.advanced.raw_query(
637+
"from Users as u select { "
638+
"name: u.name, "
639+
"downloads: counter(u, 'downloads'), "
640+
"likes: counterRaw(u, 'likes') "
641+
"}",
642+
CounterResult4,
643+
)
644+
)
645+
646+
self.assertEqual(3, len(query))
647+
self.assertEqual("Jerry", query[0].name)
648+
self.assertEqual(100, query[0].downloads)
649+
self.assertEqual(200, query[0].likes.values().__iter__().__next__())
650+
651+
self.assertEqual("Bob", query[1].name)
652+
self.assertEqual(300, query[1].downloads)
653+
self.assertEqual(400, query[1].likes.values().__iter__().__next__())
654+
655+
self.assertEqual("Pigpen", query[2].name)
656+
self.assertEqual(500, query[2].likes.values().__iter__().__next__())
657+
self.assertIsNone(query[2].downloads)

0 commit comments

Comments
 (0)