Exemplo n.º 1
0
    public void Initialization()
    {
        var personName = "alice";
        var when       = A.Dummy <ICondition>();
        var sut        = new ProtagonistNode(personName, when);

        sut.ProtagonistName.Should().Be(personName);
        sut.When.Should().Be(when);
    }
Exemplo n.º 2
0
    public async Task OnEnterAsyncShouldUpdateState(string currentValue, string newValue)
    {
        var context = A.Dummy <INavigationContext>();

        context.State.ProtagonistName = currentValue;

        var sut = new ProtagonistNode(newValue, null);
        await sut.EnterAsync(context);

        context.State.ProtagonistName.Should().Be(newValue);
    }
Exemplo n.º 3
0
    public async Task OnEnterAsyncShouldReturnPreviousProtagonistName()
    {
        var context = A.Dummy <INavigationContext>();

        context.State.ProtagonistName = "rúcula";

        var sut = new ProtagonistNode("almeirão", null);

        var ret = await sut.EnterAsync(context);

        ret.Should().Be("rúcula");
    }
Exemplo n.º 4
0
    public async Task OnEnterAsyncShouldNotRaiseEventIfProtagonistWasNotChanged(string value)
    {
        var context = A.Dummy <INavigationContext>();

        context.State.ProtagonistName = value;

        var invoker = new TestInvoker(context);

        var sut = new ProtagonistNode(value, null);
        var ret = await sut.EnterAsync(context);

        ret.Should().Be(value);

        invoker.Count.Should().Be(0);
    }
Exemplo n.º 5
0
    public async Task OnEnterShouldRaiseEvent(string currentValue, string newValue)
    {
        var context = A.Dummy <INavigationContext>();

        context.State.ProtagonistName = currentValue;

        var invoker = new TestInvoker(context);

        var sut = new ProtagonistNode(newValue, null);
        await sut.EnterAsync(context);

        invoker.ShouldContainSingle <IProtagonistChangeEvent>(
            i => i.Should().BeEquivalentTo(new { PersonName = newValue })
            );
    }
Exemplo n.º 6
0
    public async Task ParseAsync(XmlReader reader, IParsingContext parsingContext, IParentParsingContext parentParsingContext)
    {
        var myContext = new TextParentParsingContext();
        await elementParser.ParseAsync(reader, parsingContext, myContext, Settings);

        var parsedText = myContext.ParsedText;

        if (parsedText is null)
        {
            return;
        }

        var node = new ProtagonistNode(parsedText.Length == 0 ? null : parsedText, myContext.When);

        parentParsingContext.AddNode(node);
        parsingContext.RegisterDismissNode(DismissNode);
    }
Exemplo n.º 7
0
    public async Task ShouldRaiseEventWithStateArg(string stageArg)
    {
        var context = A.Dummy <INavigationContext>();

        context.State.ProtagonistName = "alpha";

        var invoker = new TestInvoker(context);

        var sut = new ProtagonistNode("beta", null);
        await sut.EnterAsync(context, stageArg);

        invoker.ShouldContainSingle <IProtagonistChangeEvent>(
            i => i.Should().BeEquivalentTo(new { PersonName = stageArg })
            );

        context.State.ProtagonistName.Should().Be(stageArg);
    }