Exemple #1
0
        public void IteratorReturnsOnlyRefineriesAbleToProduceIngotType()
        {
            var worklist = new RefineryWorklist(staticState.OreTypes, staticState.IngotTypes, staticState.RefineryFactory, staticState.Blueprints);

            worklist.Initialise(new List <Refinery> {
                Refinery.Get(Mocks.MockRefinery(), Constants.REFINERY_TYPES.Single(t => t.BlockDefinitionName.EndsWith("LargeRefinery")), 1),
                Refinery.Get(Mocks.MockRefinery(), Constants.REFINERY_TYPES.Single(t => t.BlockDefinitionName.EndsWith("Blast Furnace")), 1),
                Refinery.Get(Mocks.MockRefinery(), Constants.REFINERY_TYPES.Single(t => t.BlockDefinitionName.EndsWith("LargeRefinery")), 1)
            });

            IRefineryIterator iterator;

            Assert.True(worklist.TrySelectIngot(new ItemType("Ingot/Gold"), out iterator));

            Assert.True(iterator.CanAllocate());
            Assert.That(iterator.Current.BlockDefinitionString, Does.EndWith("LargeRefinery"));

            iterator.Next();

            Assert.True(iterator.CanAllocate());
            Assert.That(iterator.Current.BlockDefinitionString, Does.EndWith("LargeRefinery"));

            iterator.Next();

            Assert.False(iterator.CanAllocate());
        }
Exemple #2
0
        public void IteratorCannotAllocateWhenNoRefineriesAvailable()
        {
            var worklist = new RefineryWorklist(staticState.OreTypes, staticState.IngotTypes, staticState.RefineryFactory, staticState.Blueprints);

            worklist.Initialise(new List <Refinery>());

            IRefineryIterator iterator;

            Assert.False(worklist.TrySelectIngot(new ItemType("Ingot/Gold"), out iterator));

            Assert.False(iterator.CanAllocate());
        }
            public void IteratorReturnsOnlyRefineriesAbleToProduceIngotType()
            {
                var worklist = new RefineryWorklist(staticState.OreTypes, staticState.IngotTypes, staticState.RefineryFactory, staticState.Blueprints);
                worklist.Initialise(new List<Refinery> {
                    Refinery.Get(MockRefinery(), REFINERY_TYPES.Single(t => t.BlockDefinitionName.EndsWith("LargeRefinery")), 1),
                    Refinery.Get(MockRefinery(), REFINERY_TYPES.Single(t => t.BlockDefinitionName.EndsWith("Blast Furnace")), 1),
                    Refinery.Get(MockRefinery(), REFINERY_TYPES.Single(t => t.BlockDefinitionName.EndsWith("LargeRefinery")), 1)
                });

                IRefineryIterator iterator;
                Assert.True(worklist.TrySelectIngot(new ItemType("Ingot/Gold"), out iterator));

                Assert.True(iterator.CanAllocate());
                Assert.That(iterator.Current.BlockDefinitionString, Is.StringEnding("LargeRefinery"));

                iterator.Skip();

                Assert.True(iterator.CanAllocate());
                Assert.That(iterator.Current.BlockDefinitionString, Is.StringEnding("LargeRefinery"));

                iterator.Skip();

                Assert.False(iterator.CanAllocate());
            }