public async Task CreateAsync_WithValidModel_WorksCorrectly() { // Arrange var context = new PoolItDbContext(new DbContextOptionsBuilder <PoolItDbContext>() .UseInMemoryDatabase(Guid.NewGuid().ToString()) .Options); var ride = new Ride { Title = "TestRide" }; await context.Rides.AddAsync(ride); var user = new PoolItUser { UserName = "******" }; await context.Users.AddAsync(user); await context.SaveChangesAsync(); var joinRequestsService = new JoinRequestsService( new EfRepository <JoinRequest>(context), new EfRepository <Ride>(context), new EfRepository <PoolItUser>(context), null); var serviceModel = new JoinRequestServiceModel { RideId = ride.Id, User = new PoolItUserServiceModel { UserName = user.UserName }, Message = "Test Message" }; // Act var result = await joinRequestsService.CreateAsync(serviceModel); // Assert Assert.True(result); var dbModel = await context.JoinRequests.SingleOrDefaultAsync(); Assert.NotNull(dbModel); Assert.Equal(user.Id, dbModel.UserId); }
public async Task CreateAsync_WithInvalidModel_ReturnsFalse() { // Arrange var context = new PoolItDbContext(new DbContextOptionsBuilder <PoolItDbContext>() .UseInMemoryDatabase(Guid.NewGuid().ToString()) .Options); var ride = new Ride { Title = "TestRide" }; await context.Rides.AddAsync(ride); var user = new PoolItUser { UserName = "******" }; await context.Users.AddAsync(user); await context.SaveChangesAsync(); var joinRequestsService = new JoinRequestsService( new EfRepository <JoinRequest>(context), new EfRepository <Ride>(context), new EfRepository <PoolItUser>(context), null); var serviceModel = new JoinRequestServiceModel { RideId = ride.Id, User = new PoolItUserServiceModel { UserName = user.UserName } }; // Act var result = await joinRequestsService.CreateAsync(serviceModel); // Assert Assert.False(result); var existsInDb = await context.JoinRequests.AnyAsync(); Assert.False(existsInDb); }