public static TestInstances CreateTestInstances(MockDice mockNumGenerator, PlayerSetup playerSetup, IDevelopmentCardHolder developmentCardHolder, GameBoard gameBoard) { MockDice mockNumberGenerator = null; if (mockNumGenerator != null) { mockNumberGenerator = mockNumGenerator; } else { mockNumberGenerator = LocalGameControllerTestCreator.CreateMockNumberGenerator(); } MockPlayer player; MockComputerPlayer firstOpponent, secondOpponent, thirdOpponent; IPlayerFactory playerPool = null; if (playerSetup != null) { player = playerSetup.Player; firstOpponent = playerSetup.FirstOpponent; secondOpponent = playerSetup.SecondOpponent; thirdOpponent = playerSetup.ThirdOpponent; playerPool = playerSetup.PlayerPool; } else { LocalGameControllerTestCreator.CreateDefaultPlayerInstances(out player, out firstOpponent, out secondOpponent, out thirdOpponent); playerPool = LocalGameControllerTestCreator.CreateMockPlayerPool(player, firstOpponent, secondOpponent, thirdOpponent); } if (developmentCardHolder == null) { developmentCardHolder = new DevelopmentCardHolder(); } if (gameBoard == null) { gameBoard = new GameBoard(BoardSizes.Standard); } var localGameController = new LocalGameController(mockNumberGenerator, playerPool, gameBoard, developmentCardHolder); localGameController.ErrorRaisedEvent = (ErrorDetails e) => { throw new Exception(e.Message); }; var testInstances = new TestInstances(localGameController, player, firstOpponent, secondOpponent, thirdOpponent, mockNumberGenerator); return(testInstances); }
public void InstanceTests() { var logger = new MockLogger(); var o = new TestInstances(logger); logger.Reset(); o.M0(); Assert.Null(logger.LastException); Assert.Equal("M0", logger.LastFormattedString); Assert.Equal(LogLevel.Error, logger.LastLogLevel); Assert.Equal(1, logger.CallCount); logger.Reset(); o.M1("Foo"); Assert.Null(logger.LastException); Assert.Equal("M1 Foo", logger.LastFormattedString); Assert.Equal(LogLevel.Trace, logger.LastLogLevel); Assert.Equal(1, logger.CallCount); }
public void DuplicatedElementIndexTest() { var validator = TestInstances.SudokuInputValidator(); int?[] values1 = new int?[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; Assert.AreEqual(-1, validator.GetDuplicatedElementIndex(values1)); int?[] values2 = new int?[] { 1, 2, 3, null, 5, null, null, null, 9 }; Assert.AreEqual(-1, validator.GetDuplicatedElementIndex(values2)); int?[] values3 = new int?[] { 1, 2, 3, 3, 3, 6, 7, 8, 9 }; Assert.AreEqual(2, validator.GetDuplicatedElementIndex(values3)); int?[] values4 = new int?[] { null, 2, 3, null, 3, 6, 7, 8, 9 }; Assert.AreEqual(2, validator.GetDuplicatedElementIndex(values4)); int?[] values5 = new int?[] { null, 9, 8, null, 3, 3, 5, 7, 6 }; Assert.AreEqual(4, validator.GetDuplicatedElementIndex(values5)); int?[] values6 = new int?[] { 1, 1, null, null, null, null, null, null, null }; Assert.AreEqual(0, validator.GetDuplicatedElementIndex(values6)); }
public void ElementLineIndexTest() { var validator = TestInstances.SudokuInputValidator(); Assert.IsTrue(Enumerable.SequenceEqual( new Tuple <int, int>[] { Tuple.Create(6, 3), Tuple.Create(6, 4), Tuple.Create(6, 5), Tuple.Create(7, 3), Tuple.Create(7, 4), Tuple.Create(7, 5), Tuple.Create(8, 3), Tuple.Create(8, 4), Tuple.Create(8, 5), }, validator.GetElementsInRow(6, 3)), "Row"); Assert.IsTrue(Enumerable.SequenceEqual( new Tuple <int, int>[] { Tuple.Create(2, 1), Tuple.Create(2, 4), Tuple.Create(2, 7), Tuple.Create(5, 1), Tuple.Create(5, 4), Tuple.Create(5, 7), Tuple.Create(8, 1), Tuple.Create(8, 4), Tuple.Create(8, 7), }, validator.GetElementsInColumn(5, 7)), "Column"); }