public void OneTurnProgress_ResourcesObjectIsNull_ExceptionThrown() { var research = new TechnologyResearcher(new EmptyTechnology(), new ReadOnlyResources(), 10); Assert.Throws <ArgumentNullException>(() => research.OneTurnProgress(null)); }
public void Add_FourResearchesAdded_CorrectDisrtibution() { var queue = new ResearchQueue(); var researchOne = new TechnologyResearcher(new EmptyTechnology(), new Resources(), 1); var researchTwo = new TechnologyResearcher(new EmptyTechnology(), new Resources(), 1); var researchThree = new TechnologyResearcher(new EmptyTechnology(), new Resources(), 1); var researchFour = new TechnologyResearcher(new EmptyTechnology(), new Resources(), 1); Assert.AreEqual(0, queue.BeingResearched); Assert.AreEqual(0, queue.WaitingInQueue); queue.Add(researchOne); Assert.AreEqual(1, queue.BeingResearched); Assert.AreEqual(0, queue.WaitingInQueue); queue.Add(researchTwo); Assert.AreEqual(2, queue.BeingResearched); Assert.AreEqual(0, queue.WaitingInQueue); queue.Add(researchThree); Assert.AreEqual(3, queue.BeingResearched); Assert.AreEqual(0, queue.WaitingInQueue); queue.Add(researchFour); Assert.AreEqual(3, queue.BeingResearched); Assert.AreEqual(1, queue.WaitingInQueue); }
public void OneTurnProgress_NotEnoughResources_NoProgressMade() { var resourcesMock = new Mock <IMutableResources>(); resourcesMock.Setup(x => x.CanSubtract(It.IsNotNull <IBasicResources>())).Returns(false); var research = new TechnologyResearcher(new EmptyTechnology(), new ReadOnlyResources(), 10); research.OneTurnProgress(resourcesMock.Object); research.OneTurnProgress(resourcesMock.Object); Assert.AreEqual(0, research.ResearchProgress); }
public void Add_ResearchAddedMoreThanOnce_OnlyAddedOnce() { var queue = new ResearchQueue(); var research = new TechnologyResearcher(new EmptyTechnology(), new Resources(), 1); Assert.AreEqual(0, queue.BeingResearched); Assert.AreEqual(0, queue.WaitingInQueue); queue.Add(research); Assert.AreEqual(1, queue.BeingResearched); Assert.AreEqual(0, queue.WaitingInQueue); }
public void OneTurnProgress_ResearchDone_EventRaised() { var resourcesMock = new Mock <IMutableResources>(); resourcesMock.Setup(x => x.CanSubtract(It.IsNotNull <IBasicResources>())).Returns(true); resourcesMock.Setup(x => x.Subtract(It.IsNotNull <IBasicResources>())); const int researchDuration = 10; var research = new TechnologyResearcher(new EmptyTechnology(), new ReadOnlyResources(), researchDuration); bool eventRaised = false; research.ResearchCompleted += (sender, args) => eventRaised = true; Assert.AreEqual(false, eventRaised); for (int i = 0; i < researchDuration; i++) { research.OneTurnProgress(resourcesMock.Object); } Assert.AreEqual(true, eventRaised); }
public void Remove(TechnologyResearcher research) { researchQueue.Remove(research); }
public void Add(TechnologyResearcher research) { researchQueue.Add(research); }