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"); }
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); }
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 ); }
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); }