@@ -24,6 +24,14 @@ async def clear_data(self) -> None:
24
24
async def test_data (self ) -> int :
25
25
...
26
26
27
+ @actormethod (name = 'AddState' )
28
+ async def add_state (self , name : str , data : object ) -> None :
29
+ ...
30
+
31
+ @actormethod (name = 'UpdateState' )
32
+ async def update_state (self , name : str , data : object ) -> None :
33
+ ...
34
+
27
35
@actormethod (name = 'AddDataNoSave' )
28
36
async def add_data_no_save (self , data : object ) -> None :
29
37
...
@@ -77,6 +85,15 @@ async def test_data(self) -> int:
77
85
return 3
78
86
return 4
79
87
88
+ async def add_state (self , name : str , data : object ) -> None :
89
+ await self ._state_manager .add_state (name , data )
90
+
91
+ async def update_state (self , name : str , data : object ) -> None :
92
+ def double (_ : str , x : int ) -> int :
93
+ return 2 * x
94
+
95
+ await self ._state_manager .add_or_update_state (name , data , double )
96
+
80
97
async def add_data_no_save (self , data : object ) -> None :
81
98
await self ._state_manager .set_state ('state' , data )
82
99
@@ -227,6 +244,31 @@ async def test_test_data(self):
227
244
result = await mockactor .test_data ()
228
245
self .assertEqual (result , 3 )
229
246
247
+ async def test_add_state (self ):
248
+ mockactor = create_mock_actor (MockTestActor , '1' )
249
+ print (mockactor ._state_manager ._mock_state )
250
+ self .assertFalse (mockactor ._state_manager ._mock_state )
251
+ await mockactor .add_state ('test' , 5 )
252
+ self .assertTrue ('test' in mockactor ._state_manager ._mock_state )
253
+ self .assertEqual (mockactor ._state_manager ._mock_state ['test' ], 5 )
254
+ await mockactor .add_state ('test2' , 10 )
255
+ self .assertTrue ('test2' in mockactor ._state_manager ._mock_state )
256
+ self .assertEqual (mockactor ._state_manager ._mock_state ['test2' ], 10 )
257
+ self .assertEqual (len (mockactor ._state_manager ._mock_state ), 2 )
258
+ with self .assertRaises (ValueError ):
259
+ await mockactor .add_state ('test' , 10 )
260
+
261
+ async def test_update_state (self ):
262
+ mockactor = create_mock_actor (MockTestActor , '1' )
263
+ self .assertFalse (mockactor ._state_manager ._mock_state )
264
+ await mockactor .update_state ('test' , 10 )
265
+ self .assertTrue ('test' in mockactor ._state_manager ._mock_state )
266
+ self .assertEqual (mockactor ._state_manager ._mock_state ['test' ], 10 )
267
+ await mockactor .update_state ('test' , 10 )
268
+ self .assertTrue ('test' in mockactor ._state_manager ._mock_state )
269
+ self .assertEqual (mockactor ._state_manager ._mock_state ['test' ], 20 )
270
+ self .assertEqual (len (mockactor ._state_manager ._mock_state ), 1 )
271
+
230
272
async def test_state_change_tracker (self ):
231
273
mockactor = create_mock_actor (MockTestActor , '1' )
232
274
self .assertEqual (len (mockactor ._state_manager ._default_state_change_tracker ), 0 )
0 commit comments