예제 #1
0
    public void Execute_WhenFlagTrue_ShouldSetProgramCounterToValue()
    {
        ushort expectedProgramCounter = 0x3141;

        FlagsMock.SetupGet(f => f.GreaterThan).Returns(true);
        var sut = CreateSut(expectedProgramCounter);

        sut.Execute(CpuMock.Object);
        RegistersMock.VerifySet(reg => reg.ProgramCounter = expectedProgramCounter);
    }
예제 #2
0
    public void Execute_WhenFlagFalse_ShouldNotSetProgramCounter()
    {
        ushort expectedProgramCounter = 0x3141;

        FlagsMock.SetupGet(f => f.GreaterThan).Returns(false);
        var sut = CreateSut(expectedProgramCounter);

        sut.Execute(CpuMock.Object);
        RegistersMock.VerifySet(reg => reg.ProgramCounter = expectedProgramCounter, Times.Never);
    }
    public void Execute_WhenInvoked_ShouldSetFlagsCorrectly(int lvalue, int rvalue, bool eq, bool lt, bool gt)
    {
        // CMP r1, 0xNNNN
        byte leftRegister = 1;

        RegistersMock.SetupGet(r => r[leftRegister]).Returns((ushort)lvalue);

        var sut = CreateSut(leftRegister, (ushort)rvalue);

        sut.Execute(CpuMock.Object);

        FlagsMock.VerifySet(f => f.Equal       = eq);
        FlagsMock.VerifySet(f => f.GreaterThan = gt);
        FlagsMock.VerifySet(f => f.LessThan    = lt);
    }