public void TestCollectProfits_ShouldCollectCorrectly(int id)
        {
            var mockedPath     = new Mock <IPath>();
            var mockedLocation = new Mock <ILocation>();
            var map            = new List <IPath>()
            {
                mockedPath.Object
            };

            var  mockedResources = new Mock <IResources>();
            uint difference      = 10;

            mockedResources.SetupGet(x => x.SilverCoins).Returns(difference);
            mockedResources.SetupGet(x => x.GoldCoins).Returns(difference);
            mockedResources.SetupGet(x => x.BronzeCoins).Returns(difference);

            var mockedStation = new Mock <ITeleportStation>();
            var businessOwner = new BusinessOwner(id, "Big Boss", new List <ITeleportStation>()
            {
                mockedStation.Object
            });

            mockedStation.Setup(x => x.PayProfits(businessOwner)).Returns(mockedResources.Object);
            var bronze = businessOwner.Resources.BronzeCoins;
            var gold   = businessOwner.Resources.GoldCoins;
            var silver = businessOwner.Resources.SilverCoins;

            businessOwner.CollectProfits();

            Assert.AreEqual(businessOwner.Resources.GoldCoins, gold + difference);
            Assert.AreEqual(businessOwner.Resources.SilverCoins, silver + difference);
            Assert.AreEqual(businessOwner.Resources.BronzeCoins, bronze + difference);
        }
Exemple #2
0
        public void IncreaseTheOwnerResourcesByTheTotalAmountOfProfitsFromTheirStations_WhenInvoked()
        {
            // Arrange
            int    validIdentificationNumber = 1;
            string validNickName             = "Pesho";
            var    stationsList = new List <ITeleportStation>();

            var stationOwner = new BusinessOwner(validIdentificationNumber, validNickName, stationsList);

            stationOwner.Resources.BronzeCoins = 10;
            stationOwner.Resources.SilverCoins = 10;
            stationOwner.Resources.GoldCoins   = 10;

            var stationMapStub      = new List <IPath>();
            var stationLocationStub = new Mock <ILocation>();
            var teleportStationFake = new TeleportStationFake(stationOwner, stationMapStub, stationLocationStub.Object);

            teleportStationFake.ResoursesExposed.BronzeCoins = 20;
            teleportStationFake.ResoursesExposed.SilverCoins = 20;
            teleportStationFake.ResoursesExposed.GoldCoins   = 20;

            stationOwner.TeleportStations.Add(teleportStationFake);
            // Act
            stationOwner.CollectProfits();
            // Assert
            Assert.AreEqual((10 + 20), stationOwner.Resources.BronzeCoins);
            Assert.AreEqual((10 + 20), stationOwner.Resources.SilverCoins);
            Assert.AreEqual((10 + 20), stationOwner.Resources.GoldCoins);
        }
        public void TestCollectProfits_ShouldCollectCorrectly(int id)
        {
            var mockedPath = new Mock<IPath>();
            var mockedLocation = new Mock<ILocation>();
            var map = new List<IPath>() { mockedPath.Object };

            var mockedResources=new Mock<IResources>();
            uint difference = 10;
            mockedResources.SetupGet(x => x.SilverCoins).Returns(difference);
            mockedResources.SetupGet(x => x.GoldCoins).Returns(difference);
            mockedResources.SetupGet(x => x.BronzeCoins).Returns(difference);

            var mockedStation=new Mock<ITeleportStation>();
            var businessOwner=new BusinessOwner(id,"Big Boss", new List<ITeleportStation>(){mockedStation.Object});

            mockedStation.Setup(x => x.PayProfits(businessOwner)).Returns(mockedResources.Object);
            var bronze = businessOwner.Resources.BronzeCoins;
            var gold = businessOwner.Resources.GoldCoins;
            var silver = businessOwner.Resources.SilverCoins;

            businessOwner.CollectProfits();

            Assert.AreEqual(businessOwner.Resources.GoldCoins, gold+difference);
            Assert.AreEqual(businessOwner.Resources.SilverCoins, silver+difference);
            Assert.AreEqual(businessOwner.Resources.BronzeCoins, bronze+difference);
        }
Exemple #4
0
        public void CollectProfit_ShouldIncreaseOwnerResurses()
        {
            var anyname       = "ownerName";
            int anyId         = 5002;
            var tpStationList = new List <ITeleportStation>();

            uint expectedBronze = 10;
            uint expectedSilver = 20;
            uint expectedGold   = 30;

            var mockedresurces = Mock.Create <IResources>();

            Mock.Arrange(() => mockedresurces.BronzeCoins).Returns(expectedBronze);
            Mock.Arrange(() => mockedresurces.SilverCoins).Returns(expectedSilver);
            Mock.Arrange(() => mockedresurces.GoldCoins).Returns(expectedGold);

            var mockedTeleportStartion = Mock.Create <ITeleportStation>();

            Mock.Arrange(() => mockedTeleportStartion.PayProfits(Arg.IsAny <IBusinessOwner>())).Returns(mockedresurces);

            tpStationList.Add(mockedTeleportStartion);

            var owner = new BusinessOwner(anyId, anyname, tpStationList);

            owner.CollectProfits();

            Assert.AreEqual(expectedBronze, owner.Resources.BronzeCoins);
            Assert.AreEqual(expectedSilver, owner.Resources.SilverCoins);
            Assert.AreEqual(expectedGold, owner.Resources.GoldCoins);
        }
        public void CollectProfits_ShouldReturnTheSumOfProfitsInOwnersTeleportStations()
        {
            const int expectedBronzeCoins       = 2;
            const int expectedSilverCoins       = 4;
            const int expectedGoldCoins         = 6;
            const int halfOfExpectedBronzeCoins = expectedBronzeCoins / 2;
            const int halfOfExpectedSilverCoins = expectedSilverCoins / 2;
            const int halfOfExpectedGoldCoins   = expectedGoldCoins / 2;

            var mockedTeleportStation    = new Mock <ITeleportStation>();
            var mockedTeleportStationTwo = new Mock <ITeleportStation>();

            var mockedResources = new Mock <IResources>();

            mockedResources.Setup(x => x.BronzeCoins).Returns(halfOfExpectedBronzeCoins);
            mockedResources.Setup(x => x.SilverCoins).Returns(halfOfExpectedSilverCoins);
            mockedResources.Setup(x => x.GoldCoins).Returns(halfOfExpectedGoldCoins);

            var listOfTeleportStations = new List <ITeleportStation>()
            {
                mockedTeleportStation.Object,
                mockedTeleportStationTwo.Object
            };
            var businessOwner = new BusinessOwner(1, "Petar", listOfTeleportStations);

            mockedTeleportStation.Setup(x => x.PayProfits(businessOwner)).Returns(mockedResources.Object);
            mockedTeleportStationTwo.Setup(x => x.PayProfits(businessOwner)).Returns(mockedResources.Object);

            businessOwner.CollectProfits();

            Assert.AreEqual(expectedBronzeCoins, businessOwner.Resources.BronzeCoins);
            Assert.AreEqual(expectedSilverCoins, businessOwner.Resources.SilverCoins);
            Assert.AreEqual(expectedGoldCoins, businessOwner.Resources.GoldCoins);
        }
Exemple #6
0
        public void Pay_ShouldResourceObject_WhenPassedValidResources()
        {
            // Arrange
            var resourcesStub = new Mock <IResources>();

            resourcesStub.SetupGet(r => r.BronzeCoins).Returns(10);
            resourcesStub.SetupGet(r => r.SilverCoins).Returns(20);
            resourcesStub.SetupGet(r => r.GoldCoins).Returns(30);

            var teleportationStationStub = new Mock <ITeleportStation>();

            teleportationStationStub.Setup(t => t.PayProfits(It.IsAny <IBusinessOwner>())).Returns(resourcesStub.Object);

            var owner = new BusinessOwner(1, "Owner", new List <ITeleportStation>()
            {
                teleportationStationStub.Object
            });

            // Act
            owner.CollectProfits();
            var result = owner.Pay(resourcesStub.Object);

            // Assert
            Assert.IsInstanceOf <IResources>(result);
        }
Exemple #7
0
        public void IncreaseTheOwnersResourcesByTheTotalREsourcesAmount_WhenCalled()
        {
            // arrange
            var  stationStub   = new Mock <ITeleportStation>();
            uint allCoins      = 10;
            var  resourcesStub = new Mock <IResources>();

            resourcesStub.Setup(x => x.BronzeCoins).Returns(allCoins);
            resourcesStub.Setup(x => x.SilverCoins).Returns(allCoins);
            resourcesStub.Setup(x => x.GoldCoins).Returns(allCoins);

            stationStub.Setup(x => x.PayProfits(It.IsAny <IBusinessOwner>()))
            .Returns(resourcesStub.Object);

            var ownerStations = new List <ITeleportStation>()
            {
                stationStub.Object
            };

            int    id       = 1;
            string nickname = "TheBoss";
            var    owner    = new BusinessOwner(id, nickname, ownerStations);

            // act
            owner.CollectProfits();

            // assert
            Assert.AreEqual(owner.Resources.BronzeCoins, 10);
            Assert.AreEqual(owner.Resources.SilverCoins, 10);
            Assert.AreEqual(owner.Resources.GoldCoins, 10);
        }
Exemple #8
0
        public void Pay_ShouldDecreaseTheOwnersAmountOfResourcesByTheAmountOfTheCost_WhenPassedValidCostResources()
        {
            // Arrange
            var resourcesStub = new Mock <IResources>();

            resourcesStub.SetupGet(r => r.BronzeCoins).Returns(10);
            resourcesStub.SetupGet(r => r.SilverCoins).Returns(20);
            resourcesStub.SetupGet(r => r.GoldCoins).Returns(30);

            var teleportationStationStub = new Mock <ITeleportStation>();

            teleportationStationStub.Setup(t => t.PayProfits(It.IsAny <IBusinessOwner>())).Returns(resourcesStub.Object);

            var owner = new BusinessOwner(1, "Owner", new List <ITeleportStation>()
            {
                teleportationStationStub.Object
            });

            // Act
            owner.CollectProfits();
            owner.Pay(resourcesStub.Object);

            // Assert
            Assert.AreEqual(0, owner.Resources.BronzeCoins);
            Assert.AreEqual(0, owner.Resources.SilverCoins);
            Assert.AreEqual(0, owner.Resources.GoldCoins);
        }
        public void IncreaseTheOwnersResourcesFromHisTeleportStations()
        {
            // Arrange
            var firstStationMock = new Mock <ITeleportStation>();
            var stations         = new List <ITeleportStation>()
            {
                firstStationMock.Object
            };

            var owner = new BusinessOwner(1, "nickname", stations);

            var resourseMock = new Mock <IResources>();

            resourseMock.Setup(x => x.BronzeCoins).Returns(10);
            resourseMock.Setup(x => x.SilverCoins).Returns(10);
            resourseMock.Setup(x => x.GoldCoins).Returns(10);
            firstStationMock.Setup(x => x.PayProfits(owner)).Returns(resourseMock.Object);

            // Act
            owner.CollectProfits();

            // Assert
            Assert.AreEqual(10, owner.Resources.GoldCoins);
            Assert.AreEqual(10, owner.Resources.BronzeCoins);
            Assert.AreEqual(10, owner.Resources.SilverCoins);
        }
        public void CollectProfits_ShouldIncreaseOwnerResourses_ByTotalAmountGeneratedFromTeleportStationsInHisPossession()
        {
            // Arrange
            IEnumerable<ITeleportStation> teleportStations = new List<ITeleportStation>();

            var owner = new BusinessOwner(12, "Ivan", teleportStations);
            owner.Resources.Clear();
            var payment = new Resources(20,30,40);
            owner.Resources.Add(payment);

            // Act
            owner.CollectProfits();

            // Assert
            Assert.AreEqual(20, owner.Resources.BronzeCoins);
            Assert.AreEqual(30, owner.Resources.SilverCoins);
            Assert.AreEqual(40, owner.Resources.GoldCoins);
        }
Exemple #11
0
        public void CollectProfits_ShouldIncreaseTheOwnerResourcesByTheTotalAmountOfResourcesGeneratedFromTheTeleportStations()
        {
            var mockedGalacticMap        = new Mock <IEnumerable <IPath> >();
            var mockedLocationForStation = new Mock <ILocation>();

            var resoursFactory = new ResourcesFactory();
            var resourses      = resoursFactory.GetResources("create resources gold(20) silver(30) bronze(40)");

            var mockedColectionOfTeleportStation = new Mock <ICollection <ITeleportStation> >();

            var owner = new BusinessOwner(1, "Pesho", mockedColectionOfTeleportStation.Object);

            var teleportStation = new TeleportStation(owner, mockedGalacticMap.Object, mockedLocationForStation.Object);

            owner.CollectProfits();

            Assert.AreEqual(resourses.GoldCoins, owner.Resources.GoldCoins);
        }
Exemple #12
0
        public void CollectProfits_ShouldIcreaseResourcesByTheReturnedAmount()
        {
            // Arrange
            var id               = 1;
            var nickName         = "nikcName";
            var teleportStations = new List <ITeleportStation>();

            var mockStationAlphaProfit = new Mock <IResources>();

            mockStationAlphaProfit.SetupGet(mock => mock.GoldCoins).Returns(10);
            mockStationAlphaProfit.SetupGet(mock => mock.SilverCoins).Returns(10);
            mockStationAlphaProfit.SetupGet(mock => mock.BronzeCoins).Returns(10);

            var mockStationBetaProfit = new Mock <IResources>();

            mockStationBetaProfit.SetupGet(mock => mock.GoldCoins).Returns(20);
            mockStationBetaProfit.SetupGet(mock => mock.SilverCoins).Returns(20);
            mockStationBetaProfit.SetupGet(mock => mock.BronzeCoins).Returns(20);

            // Arrange two TeleportStation
            var mockStationAlpha = new Mock <ITeleportStation>();

            mockStationAlpha.Setup(mock => mock.PayProfits(It.IsAny <IBusinessOwner>())).Returns(mockStationAlphaProfit.Object);
            var mockStationBeta = new Mock <ITeleportStation>();

            mockStationBeta.Setup(mock => mock.PayProfits(It.IsAny <IBusinessOwner>())).Returns(mockStationBetaProfit.Object);

            teleportStations.Add(mockStationAlpha.Object);
            teleportStations.Add(mockStationBeta.Object);

            var owner = new BusinessOwner(id, nickName, teleportStations);

            // Act.
            owner.CollectProfits();
            var actualResources = owner.Resources;

            // Assert.
            Assert.That(actualResources,
                        Is.InstanceOf <IResources>()
                        .With.Property("GoldCoins").EqualTo((uint)30)
                        .And.Property("SilverCoins").EqualTo((uint)30)
                        .And.Property("BronzeCoins").EqualTo((uint)30));
        }
Exemple #13
0
        public void CollectProfits_ShouldIncreaseOwnerResourses_ByTotalAmountGeneratedFromTeleportStationsInHisPossession()
        {
            // Arrange
            IEnumerable <ITeleportStation> teleportStations = new List <ITeleportStation>();

            var owner = new BusinessOwner(12, "Ivan", teleportStations);

            owner.Resources.Clear();
            var payment = new Resources(20, 30, 40);

            owner.Resources.Add(payment);

            // Act
            owner.CollectProfits();

            // Assert
            Assert.AreEqual(20, owner.Resources.BronzeCoins);
            Assert.AreEqual(30, owner.Resources.SilverCoins);
            Assert.AreEqual(40, owner.Resources.GoldCoins);
        }
        public void IncreaseTheOwnerResourcesByTheTotalAmountGeneratedFromTheTStations_ThatAreInHisPossession()
        {
            // Arrange
            int    identificationNumber = 100;
            string nickName             = "Owner nickName";
            IEnumerable <ITeleportStation> teleportStations = this.ArrangeTeleportStations();

            BusinessOwner owner = new BusinessOwner(identificationNumber, nickName, teleportStations);
            uint          expectedBronzeCoins = BronzeCoins;
            uint          expectedSilverCoins = SilverCoins;
            uint          expectedGoldCoins   = GoldCoins;

            // Act
            owner.CollectProfits();
            uint actualBronzeCoins = owner.Resources.BronzeCoins;
            uint actualSilverCoins = owner.Resources.SilverCoins;
            uint actualGoldCoins   = owner.Resources.GoldCoins;

            // Assert
            Assert.AreEqual(expectedBronzeCoins, actualBronzeCoins);
            Assert.AreEqual(expectedSilverCoins, actualSilverCoins);
            Assert.AreEqual(expectedGoldCoins, actualGoldCoins);
        }
Exemple #15
0
        public void CollectProfits_ShouldIncreaseTheOwnerProfitsFromAllHisTeleportationStationsPayments_ShouldCollectAccurateGoldCoins()
        {
            // Arrange
            var resourcesMock = new Mock <IResources>();

            resourcesMock.SetupGet(r => r.BronzeCoins).Returns(10);
            resourcesMock.SetupGet(r => r.SilverCoins).Returns(20);
            resourcesMock.SetupGet(r => r.GoldCoins).Returns(30);

            var teleportStationMock = new Mock <ITeleportStation>();

            teleportStationMock.Setup(t => t.PayProfits(It.IsAny <IBusinessOwner>())).Returns(resourcesMock.Object);

            var owner = new BusinessOwner(1, "Owner", new List <ITeleportStation>()
            {
                teleportStationMock.Object
            });

            // Act
            owner.CollectProfits();

            // Assert
            Assert.AreEqual(30, owner.Resources.GoldCoins);
        }