public async Task TestGetCarOwnersByUniqueNumber() { using (var transaction = Fixture.Connection.BeginTransaction()) { using (var context = Fixture.CreateContext(transaction)) { using var serviceScope = _serviceProvider.CreateScope(); var appEnvirontent = serviceScope.ServiceProvider.GetRequiredService <IWebHostEnvironment>(); var seed = new SeedData(new VehicleImageRetriever(), appEnvirontent); var userManager = serviceScope.ServiceProvider.GetRequiredService <ICustomUserManager>(); var userRoleManager = serviceScope.ServiceProvider.GetRequiredService <ICustomRoleManager>(); await seed.Initialize(userManager, userRoleManager, context); var carOwnerRepo = new CarOwnersRepository(context); Random rnd = new Random(); var index = rnd.Next(0, context.Cars.AsNoTracking().ToHashSet().Count); var car = context.Cars.AsNoTracking().ToList()[index]; var res = await carOwnerRepo.GetCarOwners(car.UniqueNumber); Assert.NotNull(res); Assert.IsAssignableFrom <List <CustomUser> >(res); var resJson = JsonConvert.SerializeObject(res); Assert.NotNull(resJson); Assert.IsAssignableFrom <string>(resJson); } } }
public async Task TestVehicleController_GetCarsByCarOwner() { using (var transaction = Fixture.Connection.BeginTransaction()) { using (var context = Fixture.CreateContext(transaction)) { using var serviceScope = _serviceProvider.CreateScope(); var appEnvirontent = serviceScope.ServiceProvider.GetRequiredService <IWebHostEnvironment>(); var seed = new SeedData(new VehicleImageRetriever(), appEnvirontent); var userManager = serviceScope.ServiceProvider.GetRequiredService <ICustomUserManager>(); var userRoleManager = serviceScope.ServiceProvider.GetRequiredService <ICustomRoleManager>(); await seed.Initialize(userManager, userRoleManager, context); var carsRepo = new CarsRepository(context); var carOwnerRepo = new CarOwnersRepository(context); var identitySevice = new Mock <IIdentityService>(); var carService = new CarService(carsRepo, carOwnerRepo, identitySevice.Object); var carOwnerService = new CarOwnerService(carOwnerRepo); var mockLogger = new Mock <ILogger <VehiclesController> >(); ILogger <VehiclesController> logger = mockLogger.Object; var mockWebHostingEnvironment = new Mock <IWebHostEnvironment>(); var mockCustomAuthorizationService = new Mock <ICustomAuthorizationService>(); mockCustomAuthorizationService .Setup(m => m.AuthorizeAsync( It.IsAny <ClaimsPrincipal>(), It.IsAny <object>(), It.IsAny <IAuthorizationRequirement>()) ).ReturnsAsync(AuthorizationResult.Success); var controller = new VehiclesController( carService, logger, new UriService("https://localhost:5010"), new CustomMapper( new VehicleImageRetriever()), mockWebHostingEnvironment.Object, new VehicleImageRetriever(), mockCustomAuthorizationService.Object ); Random rnd = new Random(); var index = rnd.Next(0, context.Users.AsNoTracking().ToHashSet().Count); var owner = context.Users.AsNoTracking().ToList()[index]; var resJson = JsonConvert.SerializeObject(owner); var deserializedOwner = JsonConvert.DeserializeObject <OwnerRequest>(resJson); var res = await controller.GetCarsByCarOwner(deserializedOwner); Assert.NotNull(res); Assert.IsAssignableFrom <OkObjectResult>(res); } } }
public async Task TestVehicleController_GetOwnersByCarUniqueNumber() { using (var transaction = Fixture.Connection.BeginTransaction()) { using (var context = Fixture.CreateContext(transaction)) { using var serviceScope = _serviceProvider.CreateScope(); var appEnvirontent = serviceScope.ServiceProvider.GetRequiredService <IWebHostEnvironment>(); var seed = new SeedData(new VehicleImageRetriever(), appEnvirontent); var userManager = serviceScope.ServiceProvider.GetRequiredService <ICustomUserManager>(); var userRoleManager = serviceScope.ServiceProvider.GetRequiredService <ICustomRoleManager>(); await seed.Initialize(userManager, userRoleManager, context); var carsRepo = new CarsRepository(context); var carOwnerRepo = new CarOwnersRepository(context); var identitySevice = new Mock <IIdentityService>(); var carService = new CarService(carsRepo, carOwnerRepo, identitySevice.Object); var carOwnerService = new CarOwnerService(carOwnerRepo); var mockLogger = new Mock <ILogger <VehiclesController> >(); ILogger <VehiclesController> logger = mockLogger.Object; var controller = new CarOwnersController( carOwnerService, logger, new UriService("https://localhost:5010"), new CustomMapper( new VehicleImageRetriever()) ); Random rnd = new Random(); var index = rnd.Next(0, context.Cars.AsNoTracking().ToHashSet().Count); var car = context.Cars.AsNoTracking().ToList()[index]; var res = await controller.GetOwnersByCarUniqueNumber(car.UniqueNumber); Assert.NotNull(res); Assert.IsAssignableFrom <OkObjectResult>(res); } } }
public virtual ICarOwnersRepository CreateRepository(MemoryType memory = MemoryType.InMemory, string connectionString = "") { ICarOwnersRepository carOwners = null; switch (memory) { case MemoryType.MongoDB: try{ carOwners = new CarOwnersRepository(connectionString); } catch { carOwners = new CarOwnersInMemRepository(); } break; default: carOwners = new CarOwnersInMemRepository(); break; } return(carOwners); }
public async Task TestGetCarOwnersby_UsingUniqueNumber_UsingIncudeThrowsExeption() { using (var transaction = Fixture.Connection.BeginTransaction()) { using (var context = Fixture.CreateContext(transaction)) { using var serviceScope = _serviceProvider.CreateScope(); var appEnvirontent = serviceScope.ServiceProvider.GetRequiredService <IWebHostEnvironment>(); var seed = new SeedData(new VehicleImageRetriever(), appEnvirontent); var userManager = serviceScope.ServiceProvider.GetRequiredService <ICustomUserManager>(); var userRoleManager = serviceScope.ServiceProvider.GetRequiredService <ICustomRoleManager>(); await seed.Initialize(userManager, userRoleManager, context); var carOwnerRepo = new CarOwnersRepository(context); Random rnd = new Random(); var index = rnd.Next(0, context.Cars.AsNoTracking().ToHashSet().Count); var car = context.Cars.AsNoTracking().ToList()[index]; var res = await context.Cars.AsNoTracking() .Include(c => c.ManyToManyCustomUserToVehicle) .ThenInclude(mtm => mtm.CarOwner) .FirstOrDefaultAsync(c => c.UniqueNumber == car.UniqueNumber); var owners = res.ManyToManyCustomUserToVehicle.Select(mtm => mtm.CarOwner).ToList(); Assert.NotNull(owners); Assert.IsAssignableFrom <List <CustomUser> >(owners); try { var resJson = JsonConvert.SerializeObject(owners); } catch (Exception ex) { Assert.NotNull(ex); Assert.IsAssignableFrom <JsonSerializationException>(ex); } } } }
public async Task TestVehicleController_PostVehicle() { using (var transaction = Fixture.Connection.BeginTransaction()) { using (var context = Fixture.CreateContext(transaction)) { using var serviceScope = _serviceProvider.CreateScope(); var appEnvirontent = serviceScope.ServiceProvider.GetRequiredService <IWebHostEnvironment>(); var seed = new SeedData(new VehicleImageRetriever(), appEnvirontent); var userManager = serviceScope.ServiceProvider.GetRequiredService <ICustomUserManager>(); var userRoleManager = serviceScope.ServiceProvider.GetRequiredService <ICustomRoleManager>(); await seed.Initialize(userManager, userRoleManager, context); var carsRepo = new CarsRepository(context); var carOwnerRepo = new CarOwnersRepository(context); var identitySevice = serviceScope.ServiceProvider.GetRequiredService <IIdentityService>(); var userLoginRequest = new UserLoginRequest() { Email = "*****@*****.**", Password = "******" }; var loginResponse = await identitySevice .LoginAsync(userLoginRequest.Email, userLoginRequest.Password); var carService = new CarService(carsRepo, carOwnerRepo, identitySevice); var mockLogger = new Mock <ILogger <VehiclesController> >(); ILogger <VehiclesController> logger = mockLogger.Object; var mockWebHostingEnvironment = new Mock <IWebHostEnvironment>(); var mockCustomAuthorizationService = new Mock <ICustomAuthorizationService>(); mockCustomAuthorizationService .Setup(m => m.AuthorizeAsync( It.IsAny <ClaimsPrincipal>(), It.IsAny <object>(), It.IsAny <IAuthorizationRequirement>())) .ReturnsAsync(AuthorizationResult.Success); var controller = new VehiclesController( carService, logger, new UriService("https://localhost:5010/"), new CustomMapper(new VehicleImageRetriever()), mockWebHostingEnvironment.Object, new VehicleImageRetriever(), mockCustomAuthorizationService.Object ); var testCar = new CarRequest { Brand = "Test", Price = 23.4m, Date = DateTime.Now, CarEngine = 3, Color = "Grey", Description = "test", Drive = "Mixed", Transmision = "Auto", UniqueNumber = SeedData.GenerateRandomRegistrationPlateNumber(), Token = loginResponse.Token }; var res = await controller.PostCarItem(testCar); Assert.NotNull(res); var car = await context.Cars.AsNoTracking().SingleOrDefaultAsync(c => c.UniqueNumber == testCar.UniqueNumber); Assert.NotNull(car); } } }