public async Task OnLeaveAsyncShouldUpdateState() { var context = A.Dummy <INavigationContext>(); context.State.PersonName = "amaterasu"; context.State.MoodType = MoodType.Happy; var childBlock = A.Dummy <IBlock>(); var sut = new PersonNode("amaterasu", childBlock); await sut.LeaveAsync(context); context.State.PersonName.Should().BeNull(); context.State.MoodType.Should().BeNull(); }
public async Task OnLeaveAsyncShouldRaiseEvent(string personName, string protagonist) { var isProtagonist = personName == protagonist; var context = A.Dummy <INavigationContext>(); context.State.ProtagonistName = protagonist; var invoker = new TestInvoker(context); var childBlock = A.Dummy <IBlock>(); var sut = new PersonNode(personName, childBlock); await sut.LeaveAsync(context); invoker.ShouldContainSingle <IPersonLeaveEvent>( i => i.Should().BeEquivalentTo(new { PersonName = personName, IsProtagonist = isProtagonist }) ); }