Esempio n. 1
0
        public void OneTurnProgress_ResourcesObjectIsNull_ExceptionThrown()
        {
            var research =
                new TechnologyResearcher(new EmptyTechnology(), new ReadOnlyResources(), 10);

            Assert.Throws <ArgumentNullException>(() => research.OneTurnProgress(null));
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
        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);
        }
Esempio n. 6
0
 public void Remove(TechnologyResearcher research)
 {
     researchQueue.Remove(research);
 }
Esempio n. 7
0
 public void Add(TechnologyResearcher research)
 {
     researchQueue.Add(research);
 }