Пример #1
0
        public async Task GetAllCompanyTrucksByUserIdAsync_WithIncorectUserId_ShouldReturnArgumentNullException()
        {
            var           context    = SteuDbContextInMemoryFactory.InitializeContext();
            TrucksService service    = IntializeLoadService(context);
            var           repository = new EfDeletableEntityRepository <Order>(context);

            var order = new Order()
            {
                Id         = "orderId",
                IsDeleted  = false,
                ExpireTime = DateTime.UtcNow.AddDays(7),
                Truck      = new Truck(),
                SteuUser   = new SteuUser()
                {
                    Id      = "asdasd",
                    Company = new Company()
                    {
                        Id = "companyId",
                    },
                },
            };

            await repository.AddAsync(order);

            await repository.SaveChangesAsync();

            await Assert.ThrowsAsync <ArgumentNullException>(()
                                                             => service.GetAllCompanyTrucksByUserIdAsync(1, 10, "userId"));
        }
Пример #2
0
        public async Task GetTruckDetailsByIdAsync_WithCorrectData_ShouldReturnDetailsTruckViewModel()
        {
            var           context    = SteuDbContextInMemoryFactory.InitializeContext();
            TrucksService service    = IntializeLoadService(context);
            var           repository = new EfDeletableEntityRepository <Order>(context);

            var order = new Order()
            {
                Id         = "orderId",
                IsDeleted  = false,
                ExpireTime = DateTime.UtcNow.AddDays(7),
                Truck      = new Truck(),
                SteuUser   = new SteuUser()
                {
                    Id        = "asdasd",
                    FirstName = "Pesho",
                },
            };

            await repository.AddAsync(order);

            await repository.SaveChangesAsync();

            var actualresutlt = await service.GetTruckDetailsByIdAsync <DetailsTruckViewModel>("orderId");

            Assert.Equal("Pesho", actualresutlt.SteuUserFirstName);
        }
Пример #3
0
        public async Task GetCountOfTrucksAsync_WithData_ShouldReturnCount()
        {
            var           context    = SteuDbContextInMemoryFactory.InitializeContext();
            TrucksService service    = IntializeLoadService(context);
            var           repository = new EfDeletableEntityRepository <Order>(context);

            var order = new Order()
            {
                Id         = "orderId",
                IsDeleted  = false,
                ExpireTime = DateTime.UtcNow.AddDays(7),
                Truck      = new Truck(),
                SteuUser   = new SteuUser()
                {
                    Id = "userId",
                },
            };

            await repository.AddAsync(order);

            await repository.SaveChangesAsync();

            var actualResult = await service.GetCountOfTrucksAsync();

            Assert.Equal(1, actualResult);
        }
Пример #4
0
        public async Task EditTruckAsync_WithIncorectOrderId_ShouldReturnArgumentNullException()
        {
            var           context    = SteuDbContextInMemoryFactory.InitializeContext();
            TrucksService service    = IntializeLoadService(context);
            var           repository = new EfDeletableEntityRepository <Order>(context);

            await repository.AddAsync(new Order()
            {
                Id    = "asdasd",
                Truck = new Truck(),
            });

            await context.SaveChangesAsync();

            EditTruckViewModel model = new EditTruckViewModel()
            {
                Id            = "asd",
                CountryFrom   = "Bulgaria",
                TownFrom      = "Sofia",
                CountryTo     = "Croatia",
                TownTo        = "Zagreb",
                TruckTypeName = "Normal",
                Priority      = "Normal",
                Circle        = false,
                ExpireTime    = DateTime.UtcNow,
                LoadTime      = DateTime.UtcNow,
                MaxVolume     = 100,
                MaxLoad       = 20000,
                Price         = 12312231,
                Referer       = "dasada",
                InputModel    = new TruckEditViewModel(),
            };

            await Assert.ThrowsAsync <ArgumentNullException>(() => service.EditTruckAsync(model));
        }
Пример #5
0
        public async Task CreateTruckAsyncTest_WithCorrectData_ShouldReturnTruck()
        {
            var           context    = SteuDbContextInMemoryFactory.InitializeContext();
            TrucksService service    = IntializeLoadService(context);
            var           repository = new EfDeletableEntityRepository <Order>(context);

            AddTrucksInputModel model = new AddTrucksInputModel()
            {
                CountryFrom   = "Bulgaria",
                TownFrom      = "Sofia",
                CountryTo     = "Croatia",
                TownTo        = "Zagreb",
                TruckTypeName = "Normal",
                SteuUserId    = "asdasd",
                Priority      = "Normal",
                Circle        = false,
                ExpireTime    = DateTime.UtcNow,
                InputModel    = new TruckCreateViewModel(),
                LoadTime      = DateTime.UtcNow,
                MaxVolume     = 100,
                MaxLoad       = 20000,
                Price         = 12312231,
                Referer       = "dasada",
            };

            await service.CreateTruckAsync(model, "asdasd");

            var actualResult = await repository.All().ToListAsync();

            Assert.Single(actualResult);
        }
Пример #6
0
        public async Task CreateTruckAsyncTest_WithNullModelPropery_ShouldReturnArgumentNullException()
        {
            var           context = SteuDbContextInMemoryFactory.InitializeContext();
            TrucksService service = IntializeLoadService(context);

            AddTrucksInputModel model = new AddTrucksInputModel()
            {
                CountryFrom   = null,
                TownFrom      = "Sofia",
                CountryTo     = "Croatia",
                TownTo        = "Zagreb",
                TruckTypeName = "Normal",
                SteuUserId    = "asdasd",
                Priority      = "Normal",
                Circle        = false,
                ExpireTime    = DateTime.UtcNow,
                InputModel    = new TruckCreateViewModel(),
                LoadTime      = DateTime.UtcNow,
                MaxVolume     = 100,
                MaxLoad       = 20000,
                Price         = 12312231,
                Referer       = "dasada",
            };

            await Assert.ThrowsAsync <ArgumentNullException>(()
                                                             => service.CreateTruckAsync(model, "asdasd"));
        }
Пример #7
0
        public async Task GetTruckDetailsByIdAsync_WithNullOrderId_ShouldReturnArgumentNullException()
        {
            var           context    = SteuDbContextInMemoryFactory.InitializeContext();
            TrucksService service    = IntializeLoadService(context);
            var           repository = new EfDeletableEntityRepository <Order>(context);

            var order = new Order()
            {
                Id         = "orderId",
                IsDeleted  = false,
                ExpireTime = DateTime.UtcNow.AddDays(7),
                Truck      = new Truck(),
                SteuUser   = new SteuUser()
                {
                    Id        = "asdasd",
                    FirstName = "Pesho",
                },
            };

            await repository.AddAsync(order);

            await repository.SaveChangesAsync();

            await Assert.ThrowsAsync <ArgumentNullException>(()
                                                             => service.GetTruckDetailsByIdAsync <DetailsTruckViewModel>(null));
        }
Пример #8
0
        public async Task GetAllCompanyTrucksByUserIdAsync_WithNonUserTrucks_ShouldReturnEmptyList()
        {
            var           context    = SteuDbContextInMemoryFactory.InitializeContext();
            TrucksService service    = IntializeLoadService(context);
            var           repository = new EfDeletableEntityRepository <Order>(context);

            var order = new Order()
            {
                Id         = "orderId",
                IsDeleted  = false,
                ExpireTime = DateTime.UtcNow.AddDays(7),
                Truck      = new Truck(),
                SteuUser   = new SteuUser()
                {
                    Id      = "userId",
                    Company = new Company()
                    {
                        Id = "company",
                    },
                },
            };

            await repository.AddAsync(order);

            await repository.SaveChangesAsync();

            var actualResult = await service.GetAllCompanyTrucksByUserIdAsync(1, 10, "asdasd");

            Assert.Empty(actualResult);
        }
Пример #9
0
        public async Task GetCountOfTrucksAsync_WithOutData_ShouldReturnZero()
        {
            var           context = SteuDbContextInMemoryFactory.InitializeContext();
            TrucksService service = IntializeLoadService(context);

            var actualResult = await service.GetCountOfTrucksAsync();

            Assert.Equal(0, actualResult);
        }
Пример #10
0
        public async Task GetAllAvaibleTrucksAsync_WithoutData_ShouldReturnEmptyList()
        {
            var           context = SteuDbContextInMemoryFactory.InitializeContext();
            TrucksService service = IntializeLoadService(context);

            var actualResult = await service.GetAllAvaibleTrucksAsync(1, 10);

            Assert.Empty(actualResult);
        }
Пример #11
0
        private static TrucksService IntializeLoadService(SteuDbContext context)
        {
            MapperInitializer.InitializeMapper();
            var repository  = new EfDeletableEntityRepository <Order>(context);
            var userService = new Mock <IUsersService>();

            userService.Setup(x => x.GetUserByIdAsync("asdasd"))
            .ReturnsAsync(new SteuUser()
            {
                UserName  = "******",
                FirstName = "Pesho",
                Id        = "asdasd",
                Company   = new Company()
                {
                    Id = "companyId",
                },
            });
            var countriesService  = new Mock <ICountriesService>();
            var townService       = new Mock <ITownsService>();
            var truckTypesService = new Mock <ITruckTypesService>();

            truckTypesService.Setup(x => x.GetTruckTypeByNameAsync("Normal"))
            .Returns(Task.FromResult(new TruckType()
            {
                Name = "Normal"
            }));
            var priorityTypesService = new Mock <IPriorityTypesService>();

            priorityTypesService.Setup(x => x.GetPriorityTypeByNameAsync("Normal"))
            .Returns(Task.FromResult(new PriorityType()
            {
                Name = "Normal"
            }));
            var mapper = new Mock <IMapper>();

            mapper.Setup(
                x => x.Map <DetailsTruckViewModel>(It.IsAny <Order>()))
            .Returns(new DetailsTruckViewModel()
            {
                SteuUserFirstName = "Pesho"
            });
            var addressesService = new Mock <IAddressesService>();

            var service = new TrucksService(
                repository,
                addressesService.Object,
                mapper.Object,
                priorityTypesService.Object,
                truckTypesService.Object,
                userService.Object);

            return(service);
        }
Пример #12
0
        public async Task DeleteTruckByIdAsyncTest_WithIncorrectData_ShouldReturnArgumentNullException()
        {
            var           context    = SteuDbContextInMemoryFactory.InitializeContext();
            TrucksService service    = IntializeLoadService(context);
            var           repository = new EfDeletableEntityRepository <Order>(context);

            var order = new Order()
            {
                Id = "asdasd",
            };

            await repository.AddAsync(order);

            await repository.SaveChangesAsync();

            await Assert.ThrowsAsync <ArgumentNullException>(()
                                                             => service.DeleteTruckByIdAsync("asd"));
        }
Пример #13
0
        public async Task GetAllAvaibleTrucksAsync_WithCorrectData_ShouldReturnListOfTrucks()
        {
            var           context    = SteuDbContextInMemoryFactory.InitializeContext();
            TrucksService service    = IntializeLoadService(context);
            var           repository = new EfDeletableEntityRepository <Order>(context);

            await repository.AddAsync(new Order()
            {
                Id         = "asdasd",
                Truck      = new Truck(),
                ExpireTime = DateTime.UtcNow.AddDays(7),
                IsDeleted  = false,
            });

            await context.SaveChangesAsync();

            var actualResult = await service.GetAllAvaibleTrucksAsync(1, 10);

            Assert.Single(actualResult);
        }
Пример #14
0
        public async Task DeleteTruckByIdAsyncTest_WithCorrectData_ShouldTruckIsDeletedTrue()
        {
            var           context    = SteuDbContextInMemoryFactory.InitializeContext();
            TrucksService service    = IntializeLoadService(context);
            var           repository = new EfDeletableEntityRepository <Order>(context);

            var order = new Order()
            {
                Id = "asdasd",
            };

            await repository.AddAsync(order);

            await repository.SaveChangesAsync();

            var orders = await context.Orders.ToListAsync();

            await service.DeleteTruckByIdAsync("asdasd");

            Assert.True(orders[0].IsDeleted);
        }
Пример #15
0
        public async Task EditTruckAsync_WithCorrectData_ShouldEditTruck()
        {
            var           context    = SteuDbContextInMemoryFactory.InitializeContext();
            TrucksService service    = IntializeLoadService(context);
            var           repository = new EfDeletableEntityRepository <Order>(context);

            await repository.AddAsync(new Order()
            {
                Id    = "asdasd",
                Truck = new Truck(),
            });

            await context.SaveChangesAsync();

            EditTruckViewModel model = new EditTruckViewModel()
            {
                Id            = "asdasd",
                CountryFrom   = "Bulgaria",
                TownFrom      = "Sofia",
                CountryTo     = "Croatia",
                TownTo        = "Zagreb",
                TruckTypeName = "Normal",
                Priority      = "Normal",
                Circle        = false,
                ExpireTime    = DateTime.UtcNow,
                LoadTime      = DateTime.UtcNow,
                MaxVolume     = 100,
                MaxLoad       = 20000,
                Price         = 12312231,
                Referer       = "dasada",
                InputModel    = new TruckEditViewModel(),
            };

            await service.EditTruckAsync(model);

            var actualResult = await repository.All().ToListAsync();

            Assert.Equal(12312231, actualResult[0].Price);
        }
Пример #16
0
        public async Task GetAllAvaibleTrucksBySearchAsync_WhithNonExistingLoad_ShoulRetunEmptyList()
        {
            var           context    = SteuDbContextInMemoryFactory.InitializeContext();
            TrucksService service    = IntializeLoadService(context);
            var           repository = new EfDeletableEntityRepository <Order>(context);

            await repository.AddAsync(new Order()
            {
                AddressFrom = new Address()
                {
                    Country = new Country()
                    {
                        Name = "Bulgaria"
                    },
                    Town = new Town()
                    {
                        Name = "Sofia"
                    },
                },
                ExpireTime = DateTime.UtcNow.AddDays(7),
                IsDeleted  = false,
                Truck      = new Truck(),
            });

            await context.SaveChangesAsync();

            SearchTruckInputModel model = new SearchTruckInputModel()
            {
                CountryTo = "Bulgaria",
            };

            var actualResult =
                await service.GetAllAvaibleTrucksBySearchAsync <AllAvaibleTrucksBySearchViewModel>(model);

            Assert.Empty(actualResult);
        }
Пример #17
0
 public void SetUp()
 {
     _productRepository = A.Fake <IProductRepository>();
     _trucksService     = new TrucksService(_productRepository);
     A.CallTo(() => _productRepository.GetProductById(17)).Returns(TestProduct);
 }