@@ -284,83 +284,4 @@ public void RegisterOnRestoring_SubscriptionCanBeDisposed()
284284 // Assert
285285 Assert . Empty ( callbacks ) ;
286286 }
287-
288- [ Fact ]
289- public async Task ComponentStatePersistenceManagerRestoreStateAsync_ValidatesOnlySupportUpdatesWhenRestoreContextValueUpdate ( )
290- {
291- // Arrange
292- var store = Mock . Of < IPersistentComponentStateStore > ( ) ;
293- Mock . Get ( store )
294- . Setup ( s => s . GetPersistedStateAsync ( ) )
295- . ReturnsAsync ( new Dictionary < string , byte [ ] > ( ) ) ;
296-
297- var persistenceManager = new ComponentStatePersistenceManager (
298- NullLogger < ComponentStatePersistenceManager > . Instance ,
299- CreateServiceProvider ( ) ) ;
300-
301- // Act & Assert
302- // First restore should work (initialize state)
303- await persistenceManager . RestoreStateAsync ( store , RestoreContext . InitialValue ) ;
304-
305- // Second restore with non-ValueUpdate context should throw
306- var exception = await Assert . ThrowsAsync < InvalidOperationException > ( ( ) =>
307- persistenceManager . RestoreStateAsync ( store , RestoreContext . InitialValue ) ) ;
308-
309- Assert . Equal ( "State already initialized." , exception . Message ) ;
310- }
311-
312- [ Fact ]
313- public async Task ComponentStatePersistenceManagerRestoreStateAsync_ValidatesRegisteredUpdateCallbacksAreInvokedOnValueUpdates ( )
314- {
315- // Arrange
316- var store = Mock . Of < IPersistentComponentStateStore > ( ) ;
317- Mock . Get ( store )
318- . Setup ( s => s . GetPersistedStateAsync ( ) )
319- . ReturnsAsync ( new Dictionary < string , byte [ ] > ( ) ) ;
320-
321- var persistenceManager = new ComponentStatePersistenceManager (
322- NullLogger < ComponentStatePersistenceManager > . Instance ,
323- CreateServiceProvider ( ) ) ;
324-
325- var callbackInvoked = false ;
326-
327- // Act
328- // First restore to initialize state
329- await persistenceManager . RestoreStateAsync ( store , RestoreContext . InitialValue ) ;
330-
331- // Register a callback for value updates through the state object
332- var options = new RestoreOptions { RestoreBehavior = RestoreBehavior . Default , AllowUpdates = true } ;
333- persistenceManager . State . RegisterOnRestoring ( ( ) => { callbackInvoked = true ; } , options ) ;
334-
335- // Second restore with ValueUpdate context should invoke callbacks
336- await persistenceManager . RestoreStateAsync ( store , RestoreContext . ValueUpdate ) ;
337-
338- // Assert
339- Assert . True ( callbackInvoked ) ;
340- }
341-
342- private static IServiceProvider CreateServiceProvider ( )
343- {
344- return new ServiceCollection ( )
345- . AddScoped ( sp => new TestStore ( new Dictionary < string , byte [ ] > ( ) ) )
346- . BuildServiceProvider ( ) ;
347- }
348-
349- private sealed class TestStore ( IDictionary < string , byte [ ] > data ) : IPersistentComponentStateStore
350- {
351- private readonly IDictionary < string , byte [ ] > _data = data ;
352-
353- public Task < IDictionary < string , byte [ ] > > GetPersistedStateAsync ( )
354- => Task . FromResult ( _data ) ;
355-
356- public Task PersistStateAsync ( IReadOnlyDictionary < string , byte [ ] > state )
357- {
358- foreach ( var ( key , value ) in state )
359- {
360- _data [ key ] = value ;
361- }
362-
363- return Task . CompletedTask ;
364- }
365- }
366287}
0 commit comments