public async Task DeleteByIdAsync_ShouldSuccessfullyDelete()
        {
            MapperInitializer.InitializeMapper();
            var context = ApplicationDbContextInMemoryFactory.InitializeContext();

            await this.SeedDataAsync(context);

            var truckService            = new TruckService(context);
            var deleteTruckServiceModel = new DeleteTruckServiceModel();

            deleteTruckServiceModel.Id = 1;

            await truckService.DeleteByIdAsync(deleteTruckServiceModel.Id);

            var expectedResult = 1;
            var actualResult   = truckService
                                 .All()
                                 .Count();
            var expectedResult2 = "TRN 2";
            var actualResult2   = truckService
                                  .All()
                                  .First()
                                  .RegistrationNumber;

            Assert.True(expectedResult == actualResult);
            Assert.True(expectedResult2 == actualResult2);
        }
        public async Task EditAsync_ShouldSuccessfullyEdit()
        {
            MapperInitializer.InitializeMapper();
            var context = ApplicationDbContextInMemoryFactory.InitializeContext();

            await this.SeedDataAsync(context);

            var truckService          = new TruckService(context);
            var editTruckServiceModel = new EditTruckServiceModel();
            var truckId = 1;
            var truckRegistrationNumber = "FN 3";

            editTruckServiceModel.Id = truckId;
            editTruckServiceModel.RegistrationNumber = truckRegistrationNumber;

            await truckService.EditAsync(editTruckServiceModel);

            var expectedResult = truckRegistrationNumber;
            var actualResult   = truckService
                                 .All()
                                 .First()
                                 .RegistrationNumber;

            Assert.True(expectedResult == actualResult);
        }
        public void All_ShouldReturnEmptyResult()
        {
            MapperInitializer.InitializeMapper();
            var context      = ApplicationDbContextInMemoryFactory.InitializeContext();
            var truckService = new TruckService(context);

            var actualResult = truckService.All();

            Assert.True(actualResult.Count() == 0);
        }
        public async Task All_ShouldReturnCorrectResult()
        {
            MapperInitializer.InitializeMapper();
            var context = ApplicationDbContextInMemoryFactory.InitializeContext();

            await this.SeedDataAsync(context);

            var truckService = new TruckService(context);

            var actualResult   = truckService.All().Select(x => x.RegistrationNumber).ToList();
            var expectedResult = this.GetDummyData().Select(x => x.RegistrationNumber).ToList();

            for (int i = 0; i < actualResult.Count; i++)
            {
                Assert.True(expectedResult[i] == actualResult[i]);
            }
        }
        public async Task CreateAsync_ShouldSuccessfullyCreate()
        {
            MapperInitializer.InitializeMapper();
            var context                 = ApplicationDbContextInMemoryFactory.InitializeContext();
            var truckService            = new TruckService(context);
            var createTruckServiceModel = new CreateTruckServiceModel();
            var truckRegistrationNumber = "TRN 1";

            createTruckServiceModel.RegistrationNumber = truckRegistrationNumber;

            await truckService.CreateAsync(createTruckServiceModel);

            var expectedResult = truckRegistrationNumber;
            var actualResult   = truckService
                                 .All()
                                 .First()
                                 .RegistrationNumber;

            Assert.True(expectedResult == actualResult);
        }