yep
This commit is contained in:
31
Shogi.Domain.UnitTests/StandardRulesShould.cs
Normal file
31
Shogi.Domain.UnitTests/StandardRulesShould.cs
Normal file
@@ -0,0 +1,31 @@
|
||||
using FluentAssertions;
|
||||
using FluentAssertions.Execution;
|
||||
using Xunit;
|
||||
|
||||
namespace Shogi.Domain.UnitTests
|
||||
{
|
||||
public class StandardRulesShould
|
||||
{
|
||||
[Fact]
|
||||
public void AllowValidMoves_AfterCheck()
|
||||
{
|
||||
// Arrange
|
||||
var board = new ShogiBoardState();
|
||||
var rules = new StandardRules(board);
|
||||
rules.Move("C3", "C4"); // P1 Pawn
|
||||
rules.Move("G7", "G6"); // P2 Pawn
|
||||
rules.Move("B2", "G7"); // P1 Bishop puts P2 in check
|
||||
board.InCheck.Should().Be(WhichPlayer.Player2);
|
||||
|
||||
// Act - P2 is able to un-check theirself.
|
||||
/// P2 King moves out of check
|
||||
var moveSuccess = rules.Move("E9", "E8");
|
||||
|
||||
// Assert
|
||||
using var _ = new AssertionScope();
|
||||
moveSuccess.Success.Should().BeTrue();
|
||||
moveSuccess.Reason.Should().BeEmpty();
|
||||
board.InCheck.Should().BeNull();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user