public void DecomposeDiplomacy_AssemblesOngoingDealsThroughOngoingDealComposer()
        {
            var serialDealOne   = new SerializableOngoingDealData();
            var serialDealTwo   = new SerializableOngoingDealData();
            var serialDealThree = new SerializableOngoingDealData();

            var dealOne   = BuildOngoingDeal();
            var dealTwo   = BuildOngoingDeal();
            var dealThree = BuildOngoingDeal();

            var mapData = new SerializableMapData()
            {
                DiplomacyData = new SerializableDiplomacyData()
                {
                    ActiveOngoingDeals = new List <SerializableOngoingDealData>()
                    {
                        serialDealOne, serialDealTwo, serialDealThree
                    }
                }
            };

            MockOngoingDealComposer.Setup(composer => composer.DecomposeOngoingDeal(serialDealOne)).Returns(dealOne);
            MockOngoingDealComposer.Setup(composer => composer.DecomposeOngoingDeal(serialDealTwo)).Returns(dealTwo);
            MockOngoingDealComposer.Setup(composer => composer.DecomposeOngoingDeal(serialDealThree)).Returns(dealThree);

            var diplomacyComposer = Container.Resolve <DiplomacyComposer>();

            diplomacyComposer.DecomposeDiplomacy(mapData);

            MockDiplomacyCore.Verify(core => core.SubscribeOngoingDeal(dealOne), Times.Once, "DealOne was never sent");
            MockDiplomacyCore.Verify(core => core.SubscribeOngoingDeal(dealTwo), Times.Once, "DealTwo was never sent");
            MockDiplomacyCore.Verify(core => core.SubscribeOngoingDeal(dealThree), Times.Once, "DealThree was never sent");
        }
Exemple #2
0
        public void DecomposeOngoingDeal_LoadsTurnsLeftProperly()
        {
            BuildCivilization("Civ One");
            BuildCivilization("Civ Two");

            var serialDeal = new SerializableOngoingDealData()
            {
                Sender = "Civ One", Receiver = "Civ Two", TurnsLeft = 15
            };

            var proposalComposer = Container.Resolve <OngoingDealComposer>();

            var deal = proposalComposer.DecomposeOngoingDeal(serialDeal);

            Assert.AreEqual(15, deal.TurnsLeft);
        }
Exemple #3
0
        public void DecomposeOngoingDeal_LoadsSenderAndReceiverProperly()
        {
            var civOne = BuildCivilization("Civ One");
            var civTwo = BuildCivilization("Civ Two");

            var serialDeal = new SerializableOngoingDealData()
            {
                Sender = "Civ One", Receiver = "Civ Two"
            };

            var proposalComposer = Container.Resolve <OngoingDealComposer>();

            var deal = proposalComposer.DecomposeOngoingDeal(serialDeal);

            Assert.AreEqual(civOne, deal.Sender, "Unexpected sender in returned deal");
            Assert.AreEqual(civTwo, deal.Receiver, "Unexpected receiver in returned deal");
        }
        public void ComposeDiplomacy_ComposesOngoingDealsThroughOngoingDealComposer()
        {
            var civOne = BuildCivilization("Civ One");
            var civTwo = BuildCivilization("Civ Two");

            BuildCivilization("Civ Three");

            var serializableDealOne   = new SerializableOngoingDealData();
            var serializableDealTwo   = new SerializableOngoingDealData();
            var serializableDealThree = new SerializableOngoingDealData();

            var proposalOne   = BuildOngoingDeal();
            var proposalTwo   = BuildOngoingDeal();
            var proposalThree = BuildOngoingDeal();

            MockDiplomacyCore.Setup(core => core.GetOngoingDealsSentFromCiv(civOne))
            .Returns(new List <IOngoingDeal>()
            {
                proposalOne
            });

            MockDiplomacyCore.Setup(core => core.GetOngoingDealsSentFromCiv(civTwo))
            .Returns(new List <IOngoingDeal>()
            {
                proposalTwo, proposalThree
            });

            MockOngoingDealComposer.Setup(composer => composer.ComposeOngoingDeal(proposalOne)).Returns(serializableDealOne);
            MockOngoingDealComposer.Setup(composer => composer.ComposeOngoingDeal(proposalTwo)).Returns(serializableDealTwo);
            MockOngoingDealComposer.Setup(composer => composer.ComposeOngoingDeal(proposalThree)).Returns(serializableDealThree);

            var mapData = new SerializableMapData();

            var diplomacyComposer = Container.Resolve <DiplomacyComposer>();

            diplomacyComposer.ComposeDiplomacy(mapData);

            CollectionAssert.AreEquivalent(
                new List <SerializableOngoingDealData>()
            {
                serializableDealOne, serializableDealTwo, serializableDealThree
            },
                mapData.DiplomacyData.ActiveOngoingDeals
                );
        }
Exemple #5
0
        public void DecomposeOngoingDeal_LoadsBilateralsFromExchangeComposer()
        {
            BuildCivilization("Civ One");
            BuildCivilization("Civ Two");

            var exchangeOne = BuildExchange();
            var exchangeTwo = BuildExchange();

            var exchanges = new List <IOngoingDiplomaticExchange>()
            {
                exchangeOne, exchangeTwo
            };

            var serialExchangeOne = new SerializableOngoingDiplomaticExchange();
            var serialExchangeTwo = new SerializableOngoingDiplomaticExchange();

            var serialExchanges = new List <SerializableOngoingDiplomaticExchange>()
            {
                serialExchangeOne, serialExchangeTwo
            };

            MockOngoingExchangeComposer.Setup(composer => composer.DecomposeOngoingExchange(serialExchangeOne)).Returns(exchangeOne);
            MockOngoingExchangeComposer.Setup(composer => composer.DecomposeOngoingExchange(serialExchangeTwo)).Returns(exchangeTwo);

            var serialDeal = new SerializableOngoingDealData()
            {
                Sender = "Civ One", Receiver = "Civ Two",
                ExchangesFromSender   = new List <SerializableOngoingDiplomaticExchange>(),
                ExchangesFromReceiver = new List <SerializableOngoingDiplomaticExchange>(),
                BilateralExchanges    = serialExchanges,
                TurnsLeft             = 15
            };

            var proposalComposer = Container.Resolve <OngoingDealComposer>();

            var proposal = proposalComposer.DecomposeOngoingDeal(serialDeal);

            CollectionAssert.AreEquivalent(exchanges, proposal.BilateralExchanges);
        }