protected override void Because_of() { _destination = Mapper.Map <BarDTO>(new Bar { Foos = new Foo[5] }); }
public async Task ReturnBarDTO_WhenSuccesfull() { //Arrange var options = Utils.GetOptions(nameof(ReturnBarDTO_WhenSuccesfull)); using (var context = new BCcontext(options)) { } var bar = new BarDTO() { Name = "BestBar", Rating = 4, TimesRated = 1, ImageSrc = null, IsDeleted = false, Address = "Галичица 17", Country = "България", District = "Лозенец", Email = "*****@*****.**", Phone = "088888888", Town = "София" }; var mockMapper = new Mock <IBarMapper>(); mockMapper.Setup((x) => x.MapEntityToDTO(It.IsAny <Bar>())) .Returns((Bar b) => new BarDTO() { Id = b.Id, Name = b.Name, Rating = b.Rating, TimesRated = b.TimesRated, ImageSrc = b.ImageSrc, IsDeleted = b.IsDeleted, Address = b.Address, Country = b.Country, District = b.District, Email = b.Email, LocationId = b.LocationId, Phone = b.Phone, Town = b.Town }); mockMapper.Setup((x) => x.MapDTOToEntity(It.IsAny <BarDTO>())) .Returns((BarDTO b) => new Bar() { Id = b.Id, Name = b.Name, Rating = b.Rating, TimesRated = b.TimesRated, ImageSrc = b.ImageSrc, IsDeleted = b.IsDeleted, Address = b.Address, Country = b.Country, District = b.District, Email = b.Email, LocationId = b.LocationId, Phone = b.Phone, Town = b.Town }); var http = new Mock <IHttpClientFactory>(); var coctailMapper = new Mock <ICocktailMapper>(); //Act & Assert using (var context = new BCcontext(options)) { var sut = new BarsService(context, mockMapper.Object, http.Object, coctailMapper.Object); var result = await sut.CreateAsync(bar); var dbResult = await context.Bars.FirstOrDefaultAsync(x => x.Name == bar.Name); Assert.IsInstanceOfType(result, typeof(BarDTO)); } }
public Task <Bar> Update(BarDTO bar) { throw new NotImplementedException(); }
public async Task UndeletesBar_WhenBarExistAsync() { //Arrange var options = Utils.GetOptions("UndeletesBar_WhenBarExist"); var record = new Bar() { Name = "BestBar", Rating = 4, TimesRated = 1, ImageSrc = null, IsDeleted = true, Address = "Галичица 17.", Country = "България.", District = "Лозенец.", Email = "*****@*****.**", Phone = "088888888.", Town = "София.", LocationId = null, }; using (var context = new BCcontext(options)) { await context.Bars.AddAsync(record); await context.SaveChangesAsync(); } var bar = new BarDTO() { Name = "BestBar", Rating = 4, TimesRated = 1, ImageSrc = null, IsDeleted = false, Address = "Галичица 17", Country = "България", District = "Лозенец", Email = "*****@*****.**", Phone = "088888888", Town = "София" }; var mockMapper = new Mock <IBarMapper>(); mockMapper.Setup((x) => x.MapEntityToDTO(It.IsAny <Bar>())) .Returns((Bar b) => new BarDTO() { Id = b.Id, Name = b.Name, Rating = b.Rating, TimesRated = b.TimesRated, ImageSrc = b.ImageSrc, IsDeleted = b.IsDeleted, Address = b.Address, Country = b.Country, District = b.District, Email = b.Email, LocationId = b.LocationId, Phone = b.Phone, Town = b.Town }); mockMapper.Setup((x) => x.MapDTOToEntity(It.IsAny <BarDTO>())) .Returns((BarDTO b) => new Bar() { Id = b.Id, Name = b.Name, Rating = b.Rating, TimesRated = b.TimesRated, ImageSrc = b.ImageSrc, IsDeleted = b.IsDeleted, Address = b.Address, Country = b.Country, District = b.District, Email = b.Email, LocationId = b.LocationId, Phone = b.Phone, Town = b.Town }); var http = new Mock <IHttpClientFactory>(); var coctailMapper = new Mock <ICocktailMapper>(); //Act & Assert using (var context = new BCcontext(options)) { var sut = new BarsService(context, mockMapper.Object, http.Object, coctailMapper.Object); await sut.CreateAsync(bar); var dbResult = await context.Bars.FirstOrDefaultAsync(x => x.Name == bar.Name); Assert.AreEqual(dbResult.Name, record.Name); Assert.AreEqual(dbResult.Rating, record.Rating); Assert.AreEqual(dbResult.TimesRated, record.TimesRated); Assert.AreEqual(dbResult.ImageSrc, record.ImageSrc); Assert.AreEqual(dbResult.IsDeleted, false); Assert.AreEqual(dbResult.Address, record.Address); Assert.AreEqual(dbResult.Country, record.Country); Assert.AreEqual(dbResult.District, record.District); Assert.AreEqual(dbResult.Email, record.Email); Assert.AreEqual(dbResult.Phone, record.Phone); Assert.AreEqual(dbResult.Town, record.Town); } }
/// <summary> /// Update the bar /// </summary> /// <param name="id">bar ID, Guid</param> /// <param name="barDTO">Object of updated information, BarDTO</param> /// <returns>The bar, DTO</returns> public async Task <BarDTO> UpdateAsync(Guid id, BarDTO barDTO) { try { var bar = await _context.Bars .FirstOrDefaultAsync(b => b.Id == id); if (bar == null) { return(null); } bar.Address = barDTO.Address; bar.Country = barDTO.Country; bar.District = barDTO.District; bar.Email = barDTO.Email; bar.ImageSrc = barDTO.ImageSrc; bar.Name = barDTO.Name; bar.Phone = barDTO.Phone; bar.Town = barDTO.Town; _context.Update(bar); await _context.SaveChangesAsync(); foreach (var item in barDTO.Cocktails) { var dbItem = await _context.CocktailBars .Include(c => c.Bar) .Include(c => c.Cocktail) .FirstOrDefaultAsync(i => i.CocktailId == item.CocktailId && i.BarId == id); if (dbItem == null) { var cocktail = new CocktailBar();// { CocktailId = item.CocktailId, BarId = id }; cocktail.Bar = await _context.Bars.FindAsync(id); cocktail.BarId = cocktail.Bar.Id; cocktail.Cocktail = await _context.Cocktails.FindAsync(item.CocktailId); cocktail.CocktailId = cocktail.Cocktail.Id; await _context.CocktailBars.AddAsync(cocktail); } else { if (item.Remove) { _context.CocktailBars.Remove(dbItem); } } } await _context.SaveChangesAsync(); return(barDTO); } catch (Exception) { throw new ArgumentNullException("Failed to update"); } }