@@ -47,3 +47,40 @@ def test_can_get_notification_about_counter_increment(self):
4747 self .assertIsNotNone (counter_change .change_vector )
4848
4949 close_method ()
50+
51+ def test_can_get_notification_about_counter_delete (self ):
52+ changes_queue = Queue ()
53+ observer = self .store .changes ().for_counters_of_document ("users/1" )
54+ close_method = observer .subscribe (changes_queue .put )
55+
56+ with self .store .open_session () as session :
57+ session .store (User (), "users/1" )
58+ session .save_changes ()
59+
60+ with self .store .open_session () as session :
61+ session .counters_for ("users/1" ).increment ("likes" )
62+ session .save_changes ()
63+
64+ counter_change : CounterChange = changes_queue .get (timeout = 2 )
65+ self .assertIsNotNone (counter_change )
66+
67+ self .assertEqual ("users/1" , counter_change .document_id )
68+ self .assertEqual ("Users" , counter_change .collection_name )
69+ self .assertEqual (CounterChangeTypes .PUT , counter_change .type_of_change )
70+ self .assertEqual ("likes" , counter_change .name )
71+ self .assertEqual (1 , counter_change .value )
72+ self .assertIsNotNone (counter_change .change_vector )
73+
74+ with self .store .open_session () as session :
75+ session .counters_for ("users/1" ).delete ("likes" )
76+ session .save_changes ()
77+
78+ counter_change = changes_queue .get (timeout = 2 )
79+ self .assertIsNotNone (counter_change )
80+
81+ self .assertEqual ("users/1" , counter_change .document_id )
82+ self .assertEqual (CounterChangeTypes .DELETE , counter_change .type_of_change )
83+ self .assertEqual ("likes" , counter_change .name )
84+ self .assertEqual (0 , counter_change .value )
85+ self .assertIsNotNone (counter_change .change_vector )
86+ close_method ()
0 commit comments