예제 #1
0
        public async Task ElectricAsyncReturnsOnlyElctricBikesAndOrderThemCorrectly()
        {
            //Arrange
            var db = this.GetDatabase();

            var electricBikeOne = new Bike {
                Id = 1, Make = Make.Drag, Model = "Dragomir Electric", Price = 1700.90m, BatteryMake = "Toshiba", BatteryPower = 1400
            };
            var electricBikeTwo = new Bike {
                Id = 2, Make = Make.Drag, Model = "Shock", Price = 1800.90m, BatteryMake = "Toshiba", BatteryPower = 1400
            };
            var electricBikeThree = new Bike {
                Id = 3, Make = Make.Drag, Model = "Byung", Price = 1760.90m, BatteryMake = "Toshiba", BatteryPower = 1400
            };
            var nonElectric = new Bike {
                Id = 4, Make = Make.Pinarello, Model = "Dogma F8", Price = 18000.790m
            };

            db.AddRange(electricBikeOne, electricBikeTwo, electricBikeThree, nonElectric);

            await db.SaveChangesAsync();

            var bikeService = new BikeService(db);

            //Act
            var electrics = await bikeService.ElectricAsync();

            //Assert
            electrics
            .Should()
            .Match(b => b.ElementAt(0).Id == 3 &&
                   b.ElementAt(1).Id == 2 &&
                   b.ElementAt(2).Id == 1)
            .And
            .HaveCount(3);
        }