public void TestGameControllerInstance()
 {
     ICellFactory factory = new GridCellFactory(4,4);
     IPlayField playField = new GridPlayField(factory, 4, 4);
     IGameRule rule = new ClassicRule();
     var controller = new GameController(playField, rule);
     Assert.IsNotNull(controller);
 }
        public void TestGameFieldInitialization()
        {
            ICellFactory factory = new GridCellFactory(4, 4);
            IPlayField playField = new GridPlayField(factory, 4, 4);
            IGameRule rule = new ClassicRule();
            var controller = new GameController(playField, rule);
            string state = "0100111011001010";
            controller.SetState(state);

            Assert.AreEqual(controller.GetState(), state);
        }
 public void TestNextGeneration()
 {
     ICellFactory factory = new GridCellFactory(4, 4);
     IPlayField playField = new GridPlayField(factory, 4, 4);
     IGameRule rule = new ClassicRule();
     var controller = new GameController(playField, rule);
     const string state = "0100010001000000"; // blinker 
     const string nextState = "0000111000000000";
     controller.SetState(state);
     controller.MoveToNextGeneration();
     Assert.AreEqual(nextState, controller.GetState());
 }
 public void TestGameControllerInstanceNullPlayField()
 {
     try
     {
         IGameRule rule = new ClassicRule();
         var controller = new GameController(null, rule);
     }
     catch (Exception exception)
     {
         Assert.AreEqual("Value cannot be null.\r\nParameter name: playField", exception.Message);
         throw;
     }
 }
        public void TestGameControllerInstanceNullGameRule()
        {
            try
            {
                ICellFactory factory = new GridCellFactory(4, 4);
                IPlayField playField = new GridPlayField(factory,4, 4);

                var controller = new GameController(playField, null);
            }
            catch (Exception exception)
            {
                Assert.AreEqual("Value cannot be null.\r\nParameter name: gameRule", exception.Message);
                throw;
            }
        }