Пример #1
0
    public async Task OnEnterAsyncShouldUpdateState()
    {
        var context = A.Dummy <INavigationContext>();

        context.State.MusicName = "sad_story";

        var sut = new MusicNode("open_sky", null);
        await sut.EnterAsync(context);

        context.State.MusicName.Should().Be("open_sky");
    }
Пример #2
0
    public async Task OnEnterAsyncShouldReturnLastMusicName()
    {
        var context = A.Dummy <INavigationContext>();

        context.State.MusicName = "enigma";

        var sut = new MusicNode("free_mind", null);

        var ret = await sut.EnterAsync(context);

        ret.Should().Be("enigma");
    }
Пример #3
0
    public async Task ShouldRaiseEventWithStateArg(string stateArg)
    {
        var context = A.Dummy <INavigationContext>();

        context.State.MusicName = "theme";

        var invoker = new TestInvoker(context);

        var sut = new MusicNode("goodbye", null);
        await sut.EnterAsync(context, stateArg);

        invoker.ShouldContainSingle <IMusicChangeEvent>(
            i => i.Should().BeEquivalentTo(new { MusicName = stateArg })
            );
    }
Пример #4
0
    public async Task OnEnterAsyncShouldNotRaiseEventIfMusicWasNotChanged()
    {
        var context = A.Dummy <INavigationContext>();

        context.State.MusicName = "crime_fighter";

        var invoker = new TestInvoker(context);

        var sut = new MusicNode("crime_fighter", null);
        var ret = await sut.EnterAsync(context);

        ret.Should().Be("crime_fighter");

        invoker.Count.Should().Be(0);
    }