Esempio n. 1
0
        public void AddCreatures_WhenValidIdentifierIsPassed_WritelinShouldBeColled()
        {
            var mockedFactory = new Mock <ICreaturesFactory>();
            var mockedLogger  = new Mock <ILogger>();

            var battleManager = new BattleManager(mockedFactory.Object, mockedLogger.Object);


            //var fixture = new Fixture();


            // Test For abstract class
            //fixture.Customizations.Add(
            //        new TypeRelay(
            //            typeof(Creature),
            //            typeof(Angel)));

            //var creature = fixture.Create<Angel>();
            var creature = new Angel();

            mockedFactory.Setup(x => x.CreateCreature(It.IsAny <string>())).Returns(creature);

            mockedLogger.Setup(x => x.WriteLine(It.IsAny <string>()));

            //var identifier = fixture.Create<CreatureIdentifier>();
            var identifier = CreatureIdentifier.CreatureIdentifierFromString("Angel(1)");

            battleManager.AddCreatures(identifier, 1);

            mockedLogger.Verify(x => x.WriteLine(It.IsAny <string>()), Times.Once);
        }
        public void AddCreatures_WhenValidIdentifierIsPassed_WritelineShoulbeCalled()
        {
            var mockedFactory = new Mock <ICreaturesFactory>();
            var mockedLogger  = new Mock <ILogger>();

            var battleManager = new BattleManager(mockedFactory.Object, mockedLogger.Object);

            var fixture = new Fixture();

            fixture.Customizations.Add(
                new TypeRelay(
                    typeof(Creature),
                    typeof(Angel)));

            var creature = fixture.Create <Creature>();

            // var creature = new Angel();
            mockedFactory.Setup(x => x.CreateCreature(It.IsAny <string>())).Returns(creature);

            mockedLogger.Setup(x => x.WriteLine(It.IsAny <string>()));

            // The code itself should be refactored. Think about sealed class to be changed or the static method itself
            // You could use an unconstrained Mocking framework
            var identifier = CreatureIdentifier.CreatureIdentifierFromString("Angel(1)");

            // Act
            battleManager.AddCreatures(identifier, 1);

            // Assert
            mockedLogger.Verify(x => x.WriteLine(It.IsAny <string>()), Times.Exactly(1));
        }
        public void AddCreature_WhenValidIdentifierIsPassed_WriteLineShouldBeCalled()
        {
            //Arrange
            var mockedFactory = new Mock <ICreaturesFactory>();
            var mockedLogger  = new Mock <ILogger>();
            var battleManager = new BattleManager(mockedFactory.Object, mockedLogger.Object);

            //var fixture = new Fixture();

            //fixture.Customizations.Add(
            //    new TypeRelay(
            //        typeof(Creature),
            //        typeof(Angel)));

            //var cerature = fixture.Create<Creature>();

            var creature = new Angel();

            mockedFactory.Setup(x => x.CreateCreature(It.IsAny <string>())).Returns(creature);

            mockedLogger.Setup(x => x.WriteLine(It.IsAny <string>()));
            var identifier = CreatureIdentifier.CreatureIdentifierFromString("Angel(1)");

            //Act
            battleManager.AddCreatures(identifier, 1);

            //Assert
            mockedLogger.Verify(x => x.WriteLine(It.IsAny <string>()), Times.Exactly(1));
        }
        public void AddCreatures_WhenValidIdentifierPassed_FactoryShouldCallCreateCreature()
        {
            //Arrange
            var mockedFactory = new Mock <ICreaturesFactory>();
            var mockedLogger  = new Mock <ILogger>();
            var battleManager = new BattleManager(mockedFactory.Object, mockedLogger.Object);

            //  VARANT S FIXTURE - SYZDAVA INSTANCIQ NA ABSTRAKTEN KLAS !

            //var fixture = new Fixture();

            //fixture.Customizations.Add(
            //    new TypeRelay(
            //        typeof(Creature),
            //        typeof(Angel)));

            // var creature = fixture.Create<Creature>();



            var creature = new Angel();

            mockedFactory.Setup(x => x.CreateCreature(It.IsAny <string>())).Returns(creature);

            var identifier = CreatureIdentifier.CreatureIdentifierFromString("Angel(1)");

            //Act
            battleManager.AddCreatures(identifier, 1);

            //Assert
            mockedFactory.Verify(x => x.CreateCreature(It.IsAny <string>()), Times.Exactly(1));
        }
        public void ThrowArgumentNullException_WhenNullCreatureIdentifierIsPassed()
        {
            var mockedFactory = new Mock <ICreaturesFactory>();
            var mockedLogger  = new Mock <ILogger>();

            var bmanager = new BattleManager(mockedFactory.Object, mockedLogger.Object);

            Assert.Throws <ArgumentNullException>(() => bmanager.AddCreatures(null, 1));
        }
        public void AddCreatures_WhenCreatureIdentifierIsNull_SHouldTHrowArgumentNull()
        {
            var mockedFactory = new Mock <ICreaturesFactory>();
            var mockedLogger  = new Mock <ILogger>();

            var manager = new BattleManager(mockedFactory.Object, mockedLogger.Object);

            Assert.Throws <ArgumentNullException>(() => manager.AddCreatures(null, 1));
        }
Esempio n. 7
0
        public void AddCreatures_WhenValidIdentifierIsPassed_FactoryShouldCallCreateCreature()
        {
            var mockedFactory = new Mock <ICreaturesFactory>();
            var mockedLogger  = new Mock <ILogger>();

            var battleManager = new BattleManager(mockedFactory.Object, mockedLogger.Object);

            Assert.Throws <ArgumentNullException>(() => battleManager.AddCreatures(null, 1));
        }
Esempio n. 8
0
        public void AddCreatures_ShouldThrowArgumentNullException_WhenIdentifierIsNull()
        {
            var mockFactory  = new Mock <ICreaturesFactory>();
            var mockedLogger = new Mock <ILogger>();
            var manager      = new BattleManager(mockFactory.Object, mockedLogger.Object);

            Assert.That(
                () => manager.AddCreatures(null, 5),
                Throws.ArgumentNullException.With.Message.Contains("creatureIdentifier"));
        }
Esempio n. 9
0
        public void AddCreatures_ShouldThrowArgumentNullException_IfIdentifierIsNull()
        {
            int count = 5;

            var creaturesFactoryMock = new Mock <ICreaturesFactory>();
            var loggerMock           = new Mock <ILogger>();

            var battleManager = new BattleManager(creaturesFactoryMock.Object, loggerMock.Object);

            Assert.Throws <ArgumentNullException>(() => battleManager.AddCreatures(null, count));
        }
Esempio n. 10
0
        public void AddCreatures_ShouldThrowArgumentException_WhenInvalidArmyNumberIsProvided()
        {
            var mockedLogger = new Mock <ILogger>();
            var mockFactory  = new Mock <ICreaturesFactory>();

            mockFactory.Setup(x => x.CreateCreature(It.IsAny <string>())).Returns(new Angel());
            var manager    = new BattleManager(mockFactory.Object, mockedLogger.Object);
            var identifier = CreatureIdentifier.CreatureIdentifierFromString("Angel(3)");

            Assert.Throws <ArgumentException>(() => manager.AddCreatures(identifier, 1));
        }
        public void AddCreatures_WhenCreatureIdentifierIsNull_ShouldThrowArgumentNullException()
        {
            // Arrange
            var mockedFactory = new Mock <ICreaturesFactory>();
            var mockedLogger  = new Mock <ILogger>();

            var battleManager = new BattleManager(null, mockedLogger.Object);

            // Act & Assert
            Assert.Throws <ArgumentNullException>(() => battleManager.AddCreatures(null, 1));
        }
Esempio n. 12
0
        public void AddCreatures_ShouldCallCreateCreatureMethodOfFactory_WhenValidIdentifierIsProvided()
        {
            var mockedLogger = new Mock <ILogger>();
            var mockFactory  = new Mock <ICreaturesFactory>();
            var manager      = new BattleManager(mockFactory.Object, mockedLogger.Object);

            mockFactory.Setup(x => x.CreateCreature(It.IsAny <string>())).Returns(new Angel());
            var identifier = CreatureIdentifier.CreatureIdentifierFromString("Angel(1)");

            manager.AddCreatures(identifier, 1);

            mockFactory.Verify(x => x.CreateCreature(It.IsAny <string>()), Times.Once);
        }
Esempio n. 13
0
        public void AddCreature_ShouldThrowWithCorrectMessage_WhenCreatureIdentifierParameterIsNull()
        {
            var fakeFactory = new Mock <ICreaturesFactory>();
            var fakeLogger  = new Mock <ILogger>();

            CreatureIdentifier creatureIdentifier = null;
            var count = 1;

            var battleManager = new BattleManager(fakeFactory.Object, fakeLogger.Object);

            var actualException = Assert.Throws <ArgumentNullException>(() => battleManager.AddCreatures(creatureIdentifier, count));

            StringAssert.Contains("creatureIdentifier", actualException.Message);
        }
        public void CallCreateCreature_WhenValidIdentifierIsPassed()
        {
            var mockedFactory = new Mock <ICreaturesFactory>();
            var mockedLogger  = new Mock <ILogger>();

            var bmanager = new BattleManager(mockedFactory.Object, mockedLogger.Object);

            var identifier = CreatureIdentifier.CreatureIdentifierFromString("Angel(1)");

            var creature = new Angel();

            mockedFactory.Setup(x => x.CreateCreature(It.IsAny <string>())).Returns(creature);

            bmanager.AddCreatures(identifier, 1);

            mockedFactory.Verify(x => x.CreateCreature(It.IsAny <string>()), Times.Exactly(1));
        }
Esempio n. 15
0
        public void AddCreatures_ShouldCallCreteCreatureFromFactory_IfInputIsValid()
        {
            int count = 5;
            var creatureIdentifier = CreatureIdentifier.CreatureIdentifierFromString("AncientBehemoth(1)");

            var creaturesFactoryMock = new Mock <ICreaturesFactory>();
            var loggerMock           = new Mock <ILogger>();

            var battleManager = new BattleManager(creaturesFactoryMock.Object, loggerMock.Object);

            try
            {
                battleManager.AddCreatures(creatureIdentifier, count);
            }
            catch { }

            creaturesFactoryMock.Verify(x => x.CreateCreature(It.IsAny <string>()), Times.Once());
        }
Esempio n. 16
0
        public void AddCreature_ShouldCallICreaturesFactoryCreateCreatureWithCorrectCreatureNameString_WhenParametersAreValid()
        {
            var expectedCreatureName = "fake";

            var fakeFactory = new Mock <ICreaturesFactory>();

            fakeFactory.Setup(mock => mock.CreateCreature(expectedCreatureName)).Returns(new FakeCreature());

            var fakeLogger = new Mock <ILogger>();

            var creatureIdentifier = CreatureIdentifier.CreatureIdentifierFromString(expectedCreatureName + "(1)");
            var count = 1;

            var battleManager = new BattleManager(fakeFactory.Object, fakeLogger.Object);

            battleManager.AddCreatures(creatureIdentifier, count);

            fakeFactory.Verify(mock => mock.CreateCreature(expectedCreatureName), Times.Once());
        }
        public void AddCreatures_WhenValidIdentifierIsPassed_FactoryShouldCallCreateCreature()
        {
            var mockedFactory = new Mock <ICreaturesFactory>();
            var mockedLogger  = new Mock <ILogger>();

            var manager = new BattleManager(mockedFactory.Object, mockedLogger.Object);

            var fixture = new Fixture();

            fixture.Customizations.Add(new TypeRelay(typeof(Creature), typeof(Angel)));

            var creature = fixture.Create <Creature>();

            mockedFactory.Setup(x => x.CreateCreature(It.IsAny <string>())).Returns(creature);

            var identifier = CreatureIdentifier.CreatureIdentifierFromString("Angel(1)");

            manager.AddCreatures(identifier, 1);
            mockedFactory.Verify(x => x.CreateCreature(It.IsAny <string>()), Times.Exactly(1));
        }
Esempio n. 18
0
        public void AddCreatures_ShouldThrowArgumentException_IfCreatureIsAddedToNonexistentArmy()
        {
            int count = 5;
            var creatureIdentifier = CreatureIdentifier.CreatureIdentifierFromString("AncientBehemoth(3)");

            var creature = new Angel();

            //var fixture = new Fixture();
            //var creature = fixture.Create<Angel>();

            var creaturesFactoryMock = new Mock <ICreaturesFactory>();

            creaturesFactoryMock.Setup(x => x
                                       .CreateCreature(It.IsAny <string>()))
            .Returns(() => creature);

            var loggerMock = new Mock <ILogger>();

            var battleManager = new BattleManager(creaturesFactoryMock.Object, loggerMock.Object);

            Assert.Throws <ArgumentException>(() => battleManager.AddCreatures(creatureIdentifier, count));
        }
Esempio n. 19
0
        public void AddCreature_ShouldAddACreatureToFirstArmyCreatures_WhenCreatureIdentifierArmyNumberIsOne()
        {
            var creatureName = "fake";
            var armyNr       = "1";

            var fakeFactory = new Mock <ICreaturesFactory>();

            fakeFactory.Setup(moch => moch.CreateCreature(It.IsAny <string>())).Returns(new FakeCreature());

            var fakeLogger = new Mock <ILogger>();

            var identifier = CreatureIdentifier.CreatureIdentifierFromString(string.Format("{0}({1})", creatureName, armyNr));
            var count      = 1;

            var manager   = new BattleManager(fakeFactory.Object, fakeLogger.Object);
            var managerPO = new MSTest.PrivateObject(manager);

            var firstArmy = (ICollection <ICreaturesInBattle>)managerPO.GetField("firstArmyCreatures");

            manager.AddCreatures(identifier, count);

            Assert.AreEqual(1, firstArmy.Count);
        }
Esempio n. 20
0
        public void AddCreatures_ShouldCallWriteLineFromlogger_IfInputIsValid()
        {
            int count = 5;
            var creatureIdentifier = CreatureIdentifier.CreatureIdentifierFromString("AncientBehemoth(1)");

            var creature = new Angel();

            //var fixture = new Fixture();
            //var creature = fixture.Create<Angel>();

            var creaturesFactoryMock = new Mock <ICreaturesFactory>();

            creaturesFactoryMock.Setup(x => x
                                       .CreateCreature(It.IsAny <string>()))
            .Returns(() => creature);

            var loggerMock = new Mock <ILogger>();

            var battleManager = new BattleManager(creaturesFactoryMock.Object, loggerMock.Object);

            battleManager.AddCreatures(creatureIdentifier, count);

            loggerMock.Verify(x => x.WriteLine(It.IsAny <String>()), Times.Once());
        }