public async void GetAllApartmentByUserIdAsync_PositiveAndNegative_TestAsync() { var options = new DbContextOptionsBuilder <ApartmentContext>() .UseInMemoryDatabase(databaseName: "GetAllApartmentByUserIdAsync_PositiveAndNegative_TestAsync") .Options; User userWithApartments; using (var context = new ApartmentContext(options)) { context.AddRange(_users); await context.SaveChangesAsync(); userWithApartments = context.Users.AsNoTracking().FirstOrDefault(); foreach (var item in _addresses) { item.CountryId = context.Countries.FirstOrDefault().Id; } for (int i = 0; i < 2; i++) { _apartments[i].OwnerId = userWithApartments.Id; _apartments[i].Address = _addresses[i]; } context.AddRange(_apartments); await context.SaveChangesAsync(); } using (var context = new ApartmentContext(options)) { var service = new ApartmentUserService(context, _mapper); var apartmentsInBase = await context.Apartments.AsNoTracking().ToListAsync(); var userWithoutApartments = await context.Users.Where(_ => _.Id != userWithApartments.Id).FirstOrDefaultAsync(); var resultPositive = await service.GetAllApartmentByOwnerIdAsync(userWithApartments.Id.ToString(), new Common.PagedRequest()); var resultNegative = await service.GetAllApartmentByOwnerIdAsync(userWithoutApartments.Id.ToString(), new Common.PagedRequest()); foreach (var item in apartmentsInBase) { resultPositive.Data.Data .Where(_ => _.Apartment.Id == item.Id.ToString()) .FirstOrDefault() .Should().NotBeNull(); } resultNegative.Data.Data.Should().BeEmpty(); } }
public async void DeleteApartmentByIdAsync_PositiveAndNegative_TestAsync() { var options = new DbContextOptionsBuilder <ApartmentContext>() .UseInMemoryDatabase(databaseName: "DeleteApartmentByIdAsync_PositiveAndNegative_TestAsync") .Options; using (var context = new ApartmentContext(options)) { await context.AddRangeAsync(_users); await context.SaveChangesAsync(); var userWithApartments = context.Users.AsNoTracking().FirstOrDefault(); foreach (var item in _addresses) { item.CountryId = context.Countries.FirstOrDefault().Id; } for (int i = 0; i < 2; i++) { _apartments[i].OwnerId = userWithApartments.Id; _apartments[i].Address = _addresses[i]; } await context.AddRangeAsync(_apartments); await context.SaveChangesAsync(); } using (var context = new ApartmentContext(options)) { var apartmenr = await context.Apartments.AsNoTracking().FirstOrDefaultAsync(); var service = new ApartmentUserService(context, _mapper); var resultPositive = await service.DeleteApartmentByIdAsync(apartmenr.Id.ToString(), apartmenr.OwnerId.ToString()); var resultNegative = await service.DeleteApartmentByIdAsync(new Guid().ToString(), new Guid().ToString()); resultPositive.IsSuccess.Should().BeTrue(); resultPositive.Message.Should().BeNull(); resultNegative.IsSuccess.Should().BeFalse(); resultNegative.Message.Should().Contain("Apartment was not found"); } }
public async void GetApartmentByIdAsync_PositiveAndNegative_TestAsync() { var options = new DbContextOptionsBuilder <ApartmentContext>() .UseInMemoryDatabase(databaseName: "GetApartmentByIdAsync_PositiveAndNegative_TestAsync") .Options; using (var context = new ApartmentContext(options)) { context.AddRange(_users); await context.SaveChangesAsync(); var userWithApartments = context.Users.AsNoTracking().FirstOrDefault(); foreach (var item in _addresses) { item.CountryId = context.Countries.FirstOrDefault().Id; } for (int i = 0; i < 2; i++) { _apartments[i].OwnerId = userWithApartments.Id; _apartments[i].Address = _addresses[i]; } context.AddRange(_apartments); await context.SaveChangesAsync(); } using (var context = new ApartmentContext(options)) { var apartment = await context.Apartments.AsNoTracking() .Include(_ => _.Address.Country).FirstOrDefaultAsync(); var service = new ApartmentUserService(context, _mapper); var resultPositive = await service.GetApartmentByIdAsync(apartment.Id.ToString()); var resultNegative = await service.GetApartmentByIdAsync(new Guid().ToString()); resultPositive.IsSuccess.Should().BeTrue(); resultPositive.Data.Apartment.Title.Should().BeEquivalentTo(apartment.Title); resultPositive.Data.Country.Name.Should().BeEquivalentTo(apartment.Address.Country.Name); resultNegative.IsSuccess.Should().BeFalse(); resultNegative.Data.Should().BeNull(); } }
public async void CreateApartmentAsync_Positive_TestAsync() { var options = new DbContextOptionsBuilder <ApartmentContext>() .UseInMemoryDatabase(databaseName: "CreateApartmentAsync_PositiveAndNegative_TestAsync") .Options; using (var context = new ApartmentContext(options)) { context.AddRange(_users); await context.SaveChangesAsync(); } using (var context = new ApartmentContext(options)) { var service = new ApartmentUserService(context, _mapper); User user = await context.Users.FirstOrDefaultAsync(); AddAddress address = new AddAddress() { CountryId = context.Countries.FirstOrDefault().Id.ToString(), City = "MyCity", Street = "Street", Home = "Home", NumberOfApartment = 1 }; AddApartment apartmentOk = new AddApartment() { Address = address, Area = 54, IsOpen = true, Price = 15M, Title = "Apartment", Text = "AddedApartment", NumberOfRooms = 2 }; var resultPositive = await service.CreateApartmentAsync(apartmentOk, user.Id.ToString()); resultPositive.IsSuccess.Should().BeTrue(); resultPositive.Data.Country.Id.Should().BeEquivalentTo(address.CountryId); resultPositive.Data.Address.Street.Should().BeEquivalentTo(address.Street); resultPositive.Data.Apartment.Title.Should().BeEquivalentTo(apartmentOk.Title); } }
public async void UpdateApartmentAsync_Positive_TestAsync() { var options = new DbContextOptionsBuilder <ApartmentContext>() .UseInMemoryDatabase(databaseName: "UpdateApartmentAsync_PositiveAndNegative_TestAsync") .Options; using (var context = new ApartmentContext(options)) { await context.AddRangeAsync(_users); await context.SaveChangesAsync(); var userWithApartments = context.Users.AsNoTracking().FirstOrDefault(); foreach (var item in _addresses) { item.CountryId = context.Countries.FirstOrDefault().Id; } for (int i = 0; i < 2; i++) { _apartments[i].OwnerId = userWithApartments.Id; _apartments[i].Address = _addresses[i]; } await context.AddRangeAsync(_apartments); await context.SaveChangesAsync(); } using (var context = new ApartmentContext(options)) { var apartment = await context.Apartments .Include(_ => _.Address.Country).Include(_ => _.Address) .AsNoTracking().FirstOrDefaultAsync(); var newCountry = await context.Countries.Where(_ => _.Id != apartment.Address.CountryId).FirstOrDefaultAsync(); ApartmentView view = new ApartmentView() { Apartment = _mapper.Map <ApartmentDTO>(apartment), Address = _mapper.Map <AddressDTO>(apartment.Address), Country = _mapper.Map <CountryDTO>(apartment.Address.Country) }; view.Address.City = "Updated"; view.Apartment.Title = "Updated"; view.Country = _mapper.Map <CountryDTO>(newCountry); var service = new ApartmentUserService(context, _mapper); var resultPositive = await service.UpdateApartmentAsync(view); resultPositive.IsSuccess.Should().BeTrue(); resultPositive.Data.Apartment.Title.Should().BeEquivalentTo("Updated"); resultPositive.Data.Address.City.Should().BeEquivalentTo("Updated"); resultPositive.Data.Country.Name.Should().BeEquivalentTo(newCountry.Name); } }