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