public int GetSlotsAvailableToCityTests(WorkerDistributionTestData testData)
        {
            var city = BuildCity(testData.City);

            var distributionLogic = Container.Resolve <WorkerDistributionLogic>();

            return(distributionLogic.GetSlotsAvailableToCity(city).Count());
        }
        public void DistributeWorkersIntoSlotsTests(WorkerDistributionTestData testData)
        {
            var city = BuildCity(testData.City);

            var distributionLogic = Container.Resolve <WorkerDistributionLogic>();

            var availableSlots = distributionLogic.GetSlotsAvailableToCity(city);

            distributionLogic.DistributeWorkersIntoSlots(
                testData.WorkersToDistribute, availableSlots, city, testData.YieldFocus
                );

            foreach (var slot in OccupationExpectations.Keys)
            {
                Assert.AreEqual(
                    OccupationExpectations[slot], slot.IsOccupied,
                    string.Format("IsOccupied property of slot {0} has an unexpected value.", slot)
                    );
            }
        }