public void Should_halt_on_InstructionDecodeError()
            {
                InstructionDecoderMock
                .Setup(x => x.Decode(It.IsAny <ComputerState>()))
                .Callback((ComputerState state) =>
                {
                    state.InstructionDecodeError = true;
                    state.Halt = true;
                });

                Computer.State.Memory = new[] { 0 };

                Computer.Run();

                Assert.True(Computer.State.Halt, "Not halted.");
            }
            public void Should_stop_execution_on_halt()
            {
                InstructionDecoderMock
                .Setup(x => x.Decode(It.IsAny <ComputerState>()))
                .Callback((ComputerState state) =>
                {
                    state.Instruction = new Halt();
                });

                Computer.State.Memory = new[] { 0 };

                AssertAsync
                .CompletesIn(1, () => Computer.Run())
                .Wait();

                Assert.True(Computer.State.Halt, "Not halted.");
            }