public async Task SetValue_ShouldCallAddOrUpdate( [Frozen]ThrowingTestScheduler scheduler, [Frozen]Mock<IAsyncStorage> table, Services.SettingsService sut, string key, object expected) { //arrange var verifiable = table.Setup(t => t.AddOrUpdate(key, expected, It.IsAny<CancellationToken>())).ReturnsDefaultTaskVerifiable(); //act await sut.SetValue(key, expected, CancellationToken.None); //assert verifiable.Verify(); }
public async Task ObserveValue_WhenCallSet_ShouldReturnValue( [Frozen]ThrowingTestScheduler scheduler, [Frozen]Mock<IAsyncStorage> table, Services.SettingsService sut, string key, object expected) { //arrange table.Setup(t => t.Contains<string, object>(key, It.IsAny<CancellationToken>())).ReturnsTask(false); table.Setup(t => t.AddOrUpdate(key, It.IsAny<object>(), It.IsAny<CancellationToken>())).ReturnsDefaultTask(); //act var observer = scheduler.CreateObserver<object>(); sut.ObserveValue(key, () => default(object)).Skip(1).Subscribe(observer); await sut.SetValue(key, expected, CancellationToken.None); //assert observer.Values().Last().Should().Be(expected); }