/// <summary> /// Deletes specified record of brewery /// </summary> /// <param name="id">Id of record</param> /// <returns>Bool</returns> public async Task <bool> DeleteAsync(int?id) { try { var brewery = await _context.Breweries.Include(b => b.Beers).FirstAsync(b => b.ID == id) ?? throw new ArgumentNullException("Brewery not found."); brewery.IsDeleted = true; brewery.DeletedOn = brewery.ModifiedOn = DateTime.UtcNow; foreach (var beer in brewery.Beers) { var newBeerService = new BeerService(this._context); await newBeerService.DeleteAsync(beer.ID); } _context.Breweries.Update(brewery); _context.SaveChanges(); return(true); } catch (Exception) { return(false); } }
public void GetAllUsersShould_ReturnCorrectUser() { //Arrange var options = InMemory.GetOptions("GetAllUsersShould_ReturnCorrectUser"); using (var context = new BOContext(options)) { var cut = new User() { Id = 1, Name = "SuperMan", Password = "******", ReviewList = new List <Review>(), CommentList = new List <Comment>(), DrankLists = new List <DrankList>(), WishLists = new List <WishList>(), }; context.Users.Add(cut); context.SaveChanges(); } using (var context = new BOContext(options)) { //Act var sut = new UsersService(context); var result = sut.GetAllUsers().Result.ToList(); //Assert Assert.AreEqual(result.Count, 1); Assert.AreEqual(result[0].Name, "SuperMan"); } }
public void DeleteUserShould_ReturnFalse_whenNotDeletedUser() { //Arrange var options = InMemory.GetOptions("DeleteUserShould_ReturnFalse_whenNotDeletedUser"); using (var context = new BOContext(options)) { var cut = new User() { Id = 1, Name = "SuperMan", Password = "******", }; context.Users.Add(cut); context.SaveChanges(); } using (var context = new BOContext(options)) { //Act var sut = new UsersService(context); var result = sut.DeleteUser(55).Result; //Assert var deletedUsers = context.Users.Where(u => u.IsDeleted == true).Count(); var activeUsers = context.Users.Where(u => u.IsDeleted == false).Count(); Assert.IsFalse(result); Assert.AreEqual(0, deletedUsers); Assert.AreEqual(1, activeUsers); } }
public void RateShould_WriteRating_WhenValid() { //Arrange var options = InMemory.GetOptions("RateShould_WriteRating_WhenValid"); using (var context = new BOContext(options)) { var user = new User() { Id = 1, IDOld = 1, Name = "SuperMan", Password = "******", }; var beer = new Beer() { ID = 1, ABV = 4.5f, Name = "Carlsberg", Country = new Country() { Name = "Germany" }, Style = new BeerStyle() { Name = "Ale" } }; context.Users.Add(user); context.Beers.Add(beer); context.SaveChanges(); } using (var context = new BOContext(options)) { //Act var sut = new UsersService(context); var result = sut.Rate(1, 1, 5).Result; var beerWithNewRating = context.Beers.Find(1); //Assert Assert.AreEqual(5, beerWithNewRating.Rating); } }
public void UpdateUserAsyncShould_ReturnCorrectUser() { //Arrange var options = InMemory.GetOptions("UpdateUserAsyncShould_ReturnCorrectUser"); using (var context = new BOContext(options)) { var cut = new User() { Id = 1, Name = "SuperMan", Password = "******", ReviewList = new List <Review>(), CommentList = new List <Comment>(), DrankLists = new List <DrankList>(), WishLists = new List <WishList>(), }; context.Users.Add(cut); context.SaveChanges(); } var updatedUser = new UserDTO() { Name = "Batman", Password = "******", }; using (var context = new BOContext(options)) { //Act var sut = new UsersService(context); var result = sut.UpdateUserAsync(1, updatedUser).Result; //Assert Assert.AreEqual(updatedUser.Name, result.Name); Assert.AreEqual(updatedUser.Password, result.Password); //Assert.IsNotNull(result.ModifiedOn); } }