Exemplo n.º 1
0
    public async Task PersistStateAsync_InvokesPauseCallbacksDuringPersist()
    {
        // Arrange
        var state    = new Dictionary <string, byte[]>();
        var store    = new TestStore(state);
        var lifetime = new ComponentStatePersistenceManager(NullLogger <ComponentStatePersistenceManager> .Instance);
        var renderer = new TestRenderer();
        var data     = new byte[] { 1, 2, 3, 4 };
        var invoked  = false;

        lifetime.State.RegisterOnPersisting(() => { invoked = true; return(default); });
Exemplo n.º 2
0
    public async Task RestoreStateAsync_ThrowsOnDoubleInitialization()
    {
        // Arrange
        var state = new Dictionary <string, byte[]>
        {
            ["MyState"] = new byte[] { 0, 1, 2, 3, 4 }
        };
        var store    = new TestStore(state);
        var lifetime = new ComponentStatePersistenceManager(NullLogger <ComponentStatePersistenceManager> .Instance);

        await lifetime.RestoreStateAsync(store);

        // Assert
        await Assert.ThrowsAsync <InvalidOperationException>(() => lifetime.RestoreStateAsync(store));
    }
Exemplo n.º 3
0
    public async Task RestoreStateAsync_InitializesStateWithDataFromTheProvidedStore()
    {
        // Arrange
        var data  = new byte[] { 0, 1, 2, 3, 4 };
        var state = new Dictionary <string, byte[]>
        {
            ["MyState"] = JsonSerializer.SerializeToUtf8Bytes(data)
        };
        var store    = new TestStore(state);
        var lifetime = new ComponentStatePersistenceManager(NullLogger <ComponentStatePersistenceManager> .Instance);

        // Act
        await lifetime.RestoreStateAsync(store);

        // Assert
        Assert.True(lifetime.State.TryTakeFromJson <byte[]>("MyState", out var retrieved));
        Assert.Empty(state);
        Assert.Equal(data, retrieved);
    }
Exemplo n.º 4
0
    public async Task PersistStateAsync_SavesPersistedStateToTheStore()
    {
        // Arrange
        var state    = new Dictionary <string, byte[]>();
        var store    = new TestStore(state);
        var lifetime = new ComponentStatePersistenceManager(NullLogger <ComponentStatePersistenceManager> .Instance);

        var renderer = new TestRenderer();
        var data     = new byte[] { 1, 2, 3, 4 };

        lifetime.State.RegisterOnPersisting(() =>
        {
            lifetime.State.PersistAsJson("MyState", new byte[] { 1, 2, 3, 4 });
            return(Task.CompletedTask);
        });

        // Act
        await lifetime.PersistStateAsync(store, renderer);

        // Assert
        Assert.True(store.State.TryGetValue("MyState", out var persisted));
        Assert.Equal(data, JsonSerializer.Deserialize <byte[]>(persisted.ToArray()));
    }