コード例 #1
0
ファイル: AllocationService.cs プロジェクト: 17-09/FSAM
        public AllocateResult Allocate(AllocateSpec spec)
        {
            var businessUsage = AllocateBusinessOffers(spec.BusinessOffersDesc.ToList(), spec.BusinessSeats);

            var remainingFreeBusinessSeats = Math.Max(spec.BusinessSeats - businessUsage.Seats, 0);
            var economyUsage = AllocateEconomyOffers(spec.EconomyOffersDesc.ToList(), remainingFreeBusinessSeats,
                                                     spec.EconomySeats);

            return(new AllocateResult
            {
                BusinessUsage = businessUsage,
                EconomyUsage = economyUsage
            });
        }
コード例 #2
0
ファイル: AllocationServiceTests.cs プロジェクト: 17-09/FSAM
        public void AllocateTests(int businessSeats, int economySeats, AllocateResult expected)
        {
            // Arrange
            var offers            = new[] { 374, 209, 155, 115, 101, 100, 99, 45, 23, 22 };
            var spec              = new AllocateSpec(offers, businessSeats, economySeats, 100);
            var allocationService = new AllocationService();
            var comparer          = new UsageEqualityComparer();

            // Act
            var actual = allocationService.Allocate(spec);

            // Assert
            Assert.Equal(actual.BusinessUsage, expected.BusinessUsage, comparer);
            Assert.Equal(actual.EconomyUsage, expected.EconomyUsage, comparer);
        }