Esempio n. 1
0
        public void CreateCreature_ShouldThrow_IfPassedStringIsNullOrEmpty()
        {
            // Arrange
            var creatureTypeName = string.Empty;
            var creaturesFactory = new CreaturesFactory();

            // Act and Assert
            var resultingException = Assert.Throws <ArgumentNullException>(() => creaturesFactory.CreateCreature(creatureTypeName));

            Assert.IsTrue(resultingException.Message.Contains("Creature Name is null or empty"));
        }
Esempio n. 2
0
        public void CreateCreature_ShouldThrow_IfPassedAStringWithAnUnexistingType()
        {
            // Arrange
            var creatureTypeName = "unexisting type";
            var creaturesFactory = new CreaturesFactory();

            // Act and Assert
            var resultingException = Assert.Throws <ArgumentException>(() => creaturesFactory.CreateCreature(creatureTypeName));

            Assert.IsTrue(resultingException.Message.Contains("Invalid creature type"));
        }
Esempio n. 3
0
        public void CreateCreature_CreatesAnInstanceOfTheCorrectType(string creatureTypeName, Type expectedType)
        {
            // Arrange
            var creaturesFactory = new CreaturesFactory();

            // Act
            var resultingInstance  = creaturesFactory.CreateCreature(creatureTypeName);
            var actualInstanceType = resultingInstance.GetType();

            // Assert
            Assert.AreEqual(expectedType, actualInstanceType);
        }
        public static void Main()
        {
            Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture;

            ICreaturesFactory creaturesFactory = new CreaturesFactory();
            ILogger           logger           = new ConsoleLogger();
            IBattleManager    battleManager    = new BattleManager(creaturesFactory, logger);

            // Process commands
            ICommandManager commandManager = new CommandManager();

            while (true)
            {
                var commandLine = Console.ReadLine();
                commandManager.ProcessCommand(commandLine, battleManager);
            }
        }