public void ApplyRules_InvalidMovement_Fails()
        {
            var testBuilder = new RuleEngineTestBuilder();
            var engine      = testBuilder
                              .WithInvalidMovement()
                              .WithValidPiece()
                              .Build();

            Assert.Throws <ApplicationException>(() => engine.ApplyRules(testBuilder.Board, testBuilder.Piece, testBuilder.Movement));
        }
        public void ApplyRules_ValidMovement_Fails()
        {
            var testBuilder = new RuleEngineTestBuilder();
            var engine      = testBuilder
                              .WithValidMovement()
                              .WithValidPiece()
                              .Build();

            var exception = Record.Exception(() =>
                                             engine.ApplyRules(testBuilder.Board, testBuilder.Piece, testBuilder.Movement));

            Assert.Null(exception);
        }