public void ManageWorkers_OnlyGivesQualifiedWorkersAJob() { var slot = new ProductionBaySlot( new RegeneratingBank { Maximum = 1000, Quantity = 1000 }, new RegeneratingBank { Maximum = 1000, Quantity = 1000 }, new ResourceBank(100), 10); slot.Resources.Add(Scrap, 1000); for (int i = 0; i < 4; i++) { slot.AddWorker(new Citizen { Energy = new Bank { Quantity = 10000, Maximum = 10000, } }); } slot.AddWorker(new Citizen { Skills = new List <Skill> { MetalWork }, Energy = new Bank { Quantity = 10000, Maximum = 10000, } }); slot.ActivateRecipe(MetalRecipe_WithSkillReq); while (!slot.Resources.Contains(Metal)) { slot.Think( ); } for (int i = 0; i < 4; i++) { Assert.IsTrue(slot.Workers[i].Energy.IsFull, $"Took energy from worker {i}"); } Assert.IsFalse(slot.Workers[4].Energy.IsFull, "Worker 5 has full energy and should not."); }