public void InitializeExistingState_ThrowsIfAlreadyInitialized() { // Arrange var applicationState = new ComponentApplicationState(new Dictionary <string, byte[]>(), new List <ComponentApplicationState.OnPersistingCallback>()); var existingState = new Dictionary <string, byte[]> { ["MyState"] = new byte[] { 1, 2, 3, 4 } }; applicationState.InitializeExistingState(existingState); // Act & Assert Assert.Throws <InvalidOperationException>(() => applicationState.InitializeExistingState(existingState)); }
public void InitializeExistingState_SetupsState() { // Arrange var applicationState = new ComponentApplicationState(new Dictionary <string, byte[]>(), new List <ComponentApplicationState.OnPersistingCallback>()); var existingState = new Dictionary <string, byte[]> { ["MyState"] = new byte[] { 1, 2, 3, 4 } }; // Act applicationState.InitializeExistingState(existingState); // Assert Assert.True(applicationState.TryTakePersistedState("MyState", out var existing)); Assert.Equal(new byte[] { 1, 2, 3, 4 }, existing); }
public void TryRetrieveState_ReturnsStateWhenItExists() { // Arrange var applicationState = new ComponentApplicationState(new Dictionary <string, byte[]>(), new List <ComponentApplicationState.OnPersistingCallback>()); var existingState = new Dictionary <string, byte[]> { ["MyState"] = new byte[] { 1, 2, 3, 4 } }; // Act applicationState.InitializeExistingState(existingState); // Assert Assert.True(applicationState.TryRedeemPersistedState("MyState", out var existing)); Assert.Equal(new byte[] { 1, 2, 3, 4 }, existing); Assert.False(applicationState.TryRedeemPersistedState("MyState", out var gone)); }
public void TryRetrieveFromJson_NullValue() { // Arrange var serialized = JsonSerializer.SerializeToUtf8Bytes <byte []>(null); var existingState = new Dictionary <string, byte[]>() { ["MyState"] = serialized }; var applicationState = new ComponentApplicationState(new Dictionary <string, byte[]>(), new List <ComponentApplicationState.OnPersistingCallback>()); applicationState.InitializeExistingState(existingState); // Act Assert.True(applicationState.TryTakeAsJson <byte[]>("MyState", out var stored)); // Assert Assert.Null(stored); Assert.False(applicationState.TryTakeAsJson <byte[]>("MyState", out _)); }
public void TryRetrieveFromJson_DeserializesTheDataFromJson() { // Arrange var myState = new byte[] { 1, 2, 3, 4 }; var serialized = JsonSerializer.SerializeToUtf8Bytes(myState); var existingState = new Dictionary <string, byte[]>() { ["MyState"] = serialized }; var applicationState = new ComponentApplicationState(new Dictionary <string, byte[]>(), new List <ComponentApplicationState.OnPersistingCallback>()); applicationState.InitializeExistingState(existingState); // Act Assert.True(applicationState.TryTakeAsJson <byte []>("MyState", out var stored)); // Assert Assert.Equal(myState, stored); Assert.False(applicationState.TryTakeAsJson <byte[]>("MyState", out _)); }