コード例 #1
0
        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.");
        }