public void Should_validate_op_code_is_3() { var program = "1,0,99,0"; var transposeProgram = new TransposeProgram(new IntCodeValidator()); var ex = Assert.Throws <InvalidOpCodeException>(() => transposeProgram.Process(program, 1, 0)); Assert.That(ex.Message, Is.EqualTo("Invalid input: op code (first integer)")); }
public void Should_validate_input_is_a_valid_program() { var validatorSpy = A.Fake <IIntCodeValidator>(); var transposeProgram = new TransposeProgram(validatorSpy); var program = "3,0,99,0"; A.CallTo(() => validatorSpy.SplitString(program)).Returns(new IntCodeValidator().SplitString(program)); Assert.Throws <Exception>(() => transposeProgram.Process(program, 1, 0)); A.CallTo(() => validatorSpy.Validate(program)).MustHaveHappened(); }
public void Should_validate_op_code_in_program_configuration(string program) { var transposeProgram = new TransposeProgram(new IntCodeValidator()); Assert.DoesNotThrow(() => transposeProgram.Process(program, 1, 0)); }