public async Task Test_SuspendAsync_Throws_If_SuspendCoreSync_Returns_Null_State() { Obj = new TestSyncReActivatablObject(); await Assert.ThrowsAsync <InvalidReturnValueException>(async() => { await ReObj.GetStateAsync(); }); }
public async Task Test_Resumed_Emits_Most_Recent_State_For_Additional_Subscriptions() { var obj = new TestSyncReActivatablObject(); var first = new TestState(); List <TestState> resumedStates = new List <TestState>(2); Action subscribe = () => obj.Resumed.Subscribe(state => resumedStates.Add(state)); await obj.ResumeAsync(first); subscribe(); subscribe(); subscribe(); Assert.Collection(resumedStates, s => s.Should().Be(first), s => s.Should().Be(first), s => s.Should().Be(first)); }
public async Task Test_Resumed_Emits_State_After_ResumeCoreAsync_Is_Called() { var obj = new TestSyncReActivatablObject(); var first = new TestState(); var second = new TestState(); List <TestState> resumedStates = new List <TestState>(2); obj.Resumed.Subscribe(state => resumedStates.Add(state)); await obj.ResumeAsync(first); await obj.ResumeAsync(second); Assert.Collection(resumedStates, s => s.Should().Be(first), s => s.Should().Be(second)); }