예제 #1
0
        public async Task GetAsync_price_for_unknown_age_dayticket_endofday_for_a_monday_not_a_holiday_should_be_21()
        {
            // Arrange
            const string dayTicket = "day";
            var          monday    = GetNextMonday();
            var          sut       = new PricesControllerBuilder().WithDayTicket().WithRequestedDateIsNotAHoliday().WithEndOfDayDiscountTime().Build();

            // Act
            var price = await sut.GetAsync(null, dayTicket, monday);

            // Assert
            ((OkObjectResult)price).Value.Should().BeEquivalentTo(new { Cost = 21 });
        }
예제 #2
0
        public async Task GetAsync_price_for_adult_nightticket_should_be_full_price()
        {
            // Arrange
            const int    adult       = 25;
            const string nightTicket = "night";
            var          sut         = new PricesControllerBuilder().WithNightTicket().Build();

            // Act
            var price = await sut.GetAsync(adult, nightTicket, null);

            // Assert
            ((OkObjectResult)price).Value.Should().BeEquivalentTo(new { Cost = 19 });
        }
예제 #3
0
        public async Task GetAsync_price_for_senior_dayticket_earlybird_for_today_should_be_23()
        {
            // Arrange
            const int    senior    = 75;
            const string dayTicket = "day";
            var          sut       = new PricesControllerBuilder().WithDayTicket().WithEarlyBirdDiscountTime().Build();

            // Act
            var price = await sut.GetAsync(senior, dayTicket, DateTime.Today);

            // Assert
            ((OkObjectResult)price).Value.Should().BeEquivalentTo(new { Cost = 23 });
        }
예제 #4
0
        public async Task GetAsync_price_for_senior_dayticket_be_27()
        {
            // Arrange
            const int    senior    = 75;
            const string dayTicket = "day";
            var          sut       = new PricesControllerBuilder().WithDayTicket().Build();

            // Act
            var price = await sut.GetAsync(senior, dayTicket, null);

            // Assert
            ((OkObjectResult)price).Value.Should().Be("{ \"Cost\": 27}");
        }
예제 #5
0
        public async Task GetAsync_price_for_adult_dayticket_after_endofday_time_for_today_should_be_34()
        {
            // Arrange
            const int    adult     = 25;
            const string dayTicket = "day";
            var          sut       = new PricesControllerBuilder().WithDayTicket().WithEndOfDayDiscountTime().Build();

            // Act
            var price = await sut.GetAsync(adult, dayTicket, DateTime.Today);

            // Assert
            ((OkObjectResult)price).Value.Should().BeEquivalentTo(new { Cost = 34 });
        }
예제 #6
0
        public async Task GetAsync_price_for_below15_dayticket_should_be_25()
        {
            // Arrange
            const int    child     = 12;
            const string dayTicket = "day";
            var          sut       = new PricesControllerBuilder().WithDayTicket().Build();

            // Act
            var price = await sut.GetAsync(child, dayTicket, null);

            // Assert
            ((OkObjectResult)price).Value.Should().BeEquivalentTo(new { Cost = 25 });
        }
예제 #7
0
        public async Task GetAsync_price_for_child_dayticket_should_be_free()
        {
            // Arrange
            const int    child     = 5;
            const string dayTicket = "day";
            var          sut       = new PricesControllerBuilder().WithDayTicket().Build();

            // Act
            var price = await sut.GetAsync(child, dayTicket, null);

            // Assert
            ((OkObjectResult)price).Value.Should().Be("{ \"Cost\": 0}");
        }
예제 #8
0
        public async Task GetAsync_price_for_senior_nightticket_should_be_8()
        {
            // Arrange
            const int    senior      = 75;
            const string nightTicket = "night";
            var          sut         = new PricesControllerBuilder().WithNightTicket().Build();

            // Act
            var price = await sut.GetAsync(senior, nightTicket, null);

            // Assert
            ((OkObjectResult)price).Value.Should().Be("{ \"Cost\": 8}");
        }
예제 #9
0
        public async Task GetAsync_price_for_unknown_age_dayticket_a_monday_not_a_holiday_should_be_23()
        {
            // Arrange
            const string dayTicket = "day";
            var          monday    = GetNextMonday();
            var          sut       = new PricesControllerBuilder().WithDayTicket().WithRequestedDateIsNotAHoliday().Build();

            // Act
            var price = await sut.GetAsync(null, dayTicket, monday);

            // Assert
            ((OkObjectResult)price).Value.Should().Be("{ \"Cost\": 23}");
        }
예제 #10
0
        public async Task GetAsync_price_for_senior_dayticket_earlybird_for_a_monday_not_a_holiday_should_be_14()
        {
            // Arrange
            const int    senior    = 75;
            const string dayTicket = "day";
            var          monday    = GetNextMonday();
            var          sut       = new PricesControllerBuilder().WithDayTicket().WithEarlyBirdDiscountTime().WithRequestedDateIsNotAHoliday().Build();

            // Act
            var price = await sut.GetAsync(senior, dayTicket, monday);

            // Assert
            ((OkObjectResult)price).Value.Should().BeEquivalentTo(new { Cost = 14 });
        }
예제 #11
0
        public async Task GetAsync_price_for_adult_dayticket_for_a_monday_not_a_holiday_should_be_23()
        {
            // Arrange
            const int    adult     = 25;
            const string dayTicket = "day";
            var          monday    = GetNextMonday();
            var          sut       = new PricesControllerBuilder().WithDayTicket().WithRequestedDateIsNotAHoliday().Build();

            // Act
            var price = await sut.GetAsync(adult, dayTicket, monday);

            // Assert
            ((OkObjectResult)price).Value.Should().BeEquivalentTo(new { Cost = 23 });
        }
예제 #12
0
        public async Task GetAsync_price_for_adult_dayticket_after_endofday_time_for_tomorrow_should_return_discounted_price()
        {
            // Arrange
            const int    adult     = 25;
            const string dayTicket = "day";
            var          tomorrow  = DateTime.Today.AddDays(1);
            var          sut       = new PricesControllerBuilder().WithDayTicket().WithEndOfDayDiscountTime().Build();

            // Act
            var price = await sut.GetAsync(adult, dayTicket, tomorrow);

            // Assert
            ((OkObjectResult)price).Value.Should().Be("{ \"Cost\": 34}");
        }
예제 #13
0
        public async Task GetAsync_price_for_adult_dayticket_after_endofday_time_for_a_monday_not_a_holiday_should_be_21()
        {
            // Arrange
            const int    adult     = 25;
            const string dayTicket = "day";
            var          monday    = GetNextMonday();
            var          sut       = new PricesControllerBuilder().WithDayTicket().WithEndOfDayDiscountTime().WithRequestedDateIsNotAHoliday().Build();

            // Act
            var price = await sut.GetAsync(adult, dayTicket, monday);

            // Assert
            ((OkObjectResult)price).Value.Should().Be("{ \"Cost\": 21}");
        }