コード例 #1
0
        public void Given_RackWithOneBike_When_TryToRentBikeTwice_Then_SecondRentFails()
        {
            // given
            Bike     bike     = NonBrokenBike();
            Client   client   = ClientWithSufficientFunds();
            BikeRack bikeRack = BikeTestsObjectMother.BikeRackWithSingleBike(bike);

            // when
            bikeRack.RentBikeBy(client, bike.Id);
            var result = bikeRack.RentBikeBy(client, bike.Id);

            // then
            Check.That(result.BikeRent).IsNull();
            Check.That(result.TriedToRentInvalidBike).IsNotNull();
        }
コード例 #2
0
        public void Given_EmptyBikeRack_When_RentABike_ThenRentFails()
        {
            // given
            BikeRack bikeRack = EmptyBikeRack();
            Client   client   = ClientWithSufficientFunds();
            Bike     bike     = NonBrokenBike();
            // when
            BikeRentResult result = bikeRack.RentBikeBy(client, bike.Id);

            // then
            Check.That(result.BikeRent).IsNull();
        }
コード例 #3
0
        public void Given_RackWithAtLeastOneBike_When_RentABikeByClientWithLessThan10Pln_ThenBikeRentFails()
        {
            // given
            BikeRack bikeRack = BikeRackWithAtLeastSingleBike();
            Client   client   = ClientWith(PlnOf(9.00m));
            Bike     bike     = NonBrokenBike();

            // when
            var result = bikeRack.RentBikeBy(client, bike.Id);

            // then
            Check.That(result.BikeRent).IsNull();
        }
コード例 #4
0
        public void Given_InvalidBikeId_ThenBikeRentFails()
        {
            // given
            var      invalidId = AnyBikeId();
            Bike     bike      = NonBrokenBike();
            Client   client    = ClientWithSufficientFunds();
            BikeRack bikeRack  = BikeTestsObjectMother.BikeRackWithSingleBike(bike);

            // when
            var result = bikeRack.RentBikeBy(client, invalidId);

            // then
            Check.That(result.TriedToRentInvalidBike).IsNotNull();
        }
コード例 #5
0
        public void Given_RackWithSingleBike_When_RentABike_ThenBikeIsRent()
        {
            // given
            Bike     bike   = NonBrokenBike();
            BikeRack rack   = BikeTestsObjectMother.BikeRackWithSingleBike(bike);
            Client   client = ClientWithSufficientFunds();


            // when
            BikeRentResult result = rack.RentBikeBy(client, bike.Id);

            // then
            Check.That(result.BikeRent).IsNotNull();
        }
コード例 #6
0
        public void Given_RackWithAtLeastOneBike_When_RentedBikeIsBroken_ThenBikeRentFails()
        {
            // given
            Bike     brokenBike = BrokenBike();
            BikeRack bikeRack   = BikeWithBrokenSingleBike(brokenBike);
            Client   client     = ClientWithSufficientFunds();

            // when
            var result = bikeRack.RentBikeBy(client, brokenBike.Id);

            // then
            Check.That(result.BikeRent).IsNull();
            Check.That(result.BikeBroken).IsNotNull();
        }
コード例 #7
0
        public void Given_RackWithAtLeastOneBike_When_RentABikeByClientWithAtLeast10Pln_ThenBikeIsRent()
        {
            // given
            Bike     bike     = NonBrokenBike();
            BikeRack bikeRack = BikeTestsObjectMother.BikeRackWithSingleBike(bike);
            Client   client   = ClientWith(PlnOf(10.00m));


            // when
            var bikeRentResult = bikeRack.RentBikeBy(client, bike.Id);

            // then
            Check.That(bikeRentResult.BikeRent).IsNotNull();
        }
コード例 #8
0
        public void Given_ClientWithRentedTwoBikes_TryToRentAnotherBike_Then_RentFails()
        {
            // given
            Bike     bike     = NonBrokenBike();
            Client   client   = ClientWithActivesTwoBikes(PlnOf(10.00m));
            BikeRack bikeRack = BikeTestsObjectMother.BikeRackWithSingleBike(bike);

            // when
            var result = bikeRack.RentBikeBy(client, bike.Id);

            // then
            Check.That(result.BikeRent).IsNull();
            Check.That(result.RentLimitExceeded).IsNotNull();
        }