public void MakeMoveModifier_Modify() { _modifier = new MakeMoveModifier(_board.Object) { From = new Point3d() { X = 0, Y = 0 }, To = new Point3d() { X = 1, Y = 1 } }; _modifier.Modify(); _cell1.VerifySet(c1 => c1.State = PolygonState.Empty); _cell1.Object.Coordintes.X.Should().Be(0); _cell1.Object.Coordintes.Y.Should().Be(0); _cell1.Object.Coordintes.Z.Should().Be(0); _cell2.VerifySet(c2 => c2.State = PolygonState.Filled); _cell2.Object.Coordintes.X.Should().Be(1); _cell2.Object.Coordintes.Y.Should().Be(1); _cell2.Object.Coordintes.Z.Should().Be(0); }
public void StandardRules_AdviseMoveCorrectlyHorizontallyFrontGameInProgress_Test() { var cellToFill = _board.Object.Cells.Where(c => c.Coordintes.X == 1 && c.Coordintes.Y == 2).First(); cellToFill.State = PolygonState.Filled; var modifier = new MakeMoveModifier(_board.Object) { From = new Point3d() { X = 1, Y = 2 }, To = new Point3d() { X = 3, Y = 2 } }; var scenario = _rules.Advise(modifier); scenario.Modifiers.Count.Should().Be(2); scenario.Modifiers[0].Should().Be(modifier); (scenario.Modifiers[1] as EmptyCellModifier).Should().NotBe(null); (scenario.Modifiers[1] as EmptyCellModifier).Target.Coordintes.X.Should().Be(2); (scenario.Modifiers[1] as EmptyCellModifier).Target.Coordintes.Y.Should().Be(2); (scenario.Modifiers[1] as EmptyCellModifier).Target.Coordintes.Z.Should().Be(0); }
private IScenario MoveScenario(MakeMoveModifier moveModifier) { CheckMoveCoordiantes(moveModifier.From, moveModifier.To); var cell = GetMiddleCell(moveModifier.From, moveModifier.To); var emptyModifier = new EmptyCellModifier(cell) { Source = this }; var scenario = new SimpleScenario(); scenario.Modifiers.Add(moveModifier); scenario.Modifiers.Add(emptyModifier); return scenario; }
public void StandardRules_AdviseMoveCorrectlyOutsideBoard_Test() { var cellToFill = _board.Object.Cells.Where(c => c.Coordintes.X == 6 && c.Coordintes.Y == 3).First(); cellToFill.State = PolygonState.Filled; cellToFill = _board.Object.Cells.Where(c => c.Coordintes.X == 5 && c.Coordintes.Y == 3).First(); cellToFill.State = PolygonState.Filled; var modifier = new MakeMoveModifier(_board.Object) { From = new Point3d() { X = 5, Y = 3 }, To = new Point3d() { X = 7, Y = 0 } }; var scenario = _rules.Advise(modifier); }
public void StandardRules_AdviseMoveOnNeighbourCellDiagonallyNW_Test() { var modifier = new MakeMoveModifier(_board.Object) { From = new Point3d() { X = 2, Y = 2 }, To = new Point3d() { X = 1, Y = 1 } }; var scenario = _rules.Advise(modifier); }
public void StandardRules_AdviseMoveOnNeighbourCellHorizontallyFront_Test() { var modifier = new MakeMoveModifier(_board.Object) { From = new Point3d() { X = 2, Y = 1 }, To = new Point3d() { X = 3, Y = 1 } }; var scenario = _rules.Advise(modifier); }