public async Task CorrectlyRemoveCocktailsWhen_ParamsAreValid() { //Arrange var options = TestUtilities.GetOptions(nameof(CorrectlyRemoveCocktailsWhen_ParamsAreValid)); var mapperMock = new Mock <IDtoMapper <Bar, BarDto> >(); var searchMapperMock = new Mock <IDtoMapper <Bar, SearchBarDto> >(); var cocktailMapperMock = new Mock <IDtoMapper <Cocktail, CocktailDto> >(); var testGuid = Guid.NewGuid(); var cocktailGuid = Guid.NewGuid(); var bar1 = new Bar { Id = testGuid, Name = "testBar1", }; var barDto1 = new BarDto { Id = testGuid, Name = "testBar1", }; var list = new List <string> { "Boza" }; var cocktail = new Cocktail { Id = cocktailGuid, Name = "Boza" }; var barCocktail = new BarCocktail { BarId = bar1.Id, CocktailId = cocktailGuid }; mapperMock.Setup(x => x.MapFrom(It.IsAny <Bar>())).Returns(barDto1); using (var arrangeContext = new CWContext(options)) { await arrangeContext.Bars.AddAsync(bar1); await arrangeContext.Cocktails.AddAsync(cocktail); await arrangeContext.BarCocktails.AddAsync(barCocktail); await arrangeContext.SaveChangesAsync(); } using (var assertContext = new CWContext(options)) { //Act & Assert var sut = new BarService(assertContext, mapperMock.Object, searchMapperMock.Object, cocktailMapperMock.Object); var result = await sut.RemoveCocktailsAsync(barDto1, list); var barCocktailEntity = await assertContext.BarCocktails.FirstAsync(); Assert.IsInstanceOfType(result, typeof(BarDto)); Assert.AreEqual("testBar1", result.Name); Assert.AreEqual(true, barCocktailEntity.IsDeleted); } }
public async Task CorrectlyLoadAllDependenciesForLoadedCocktails_WhenCalledForHomePage() { var options = TestUtils.GetOptions(nameof(CorrectlyLoadAllDependenciesForLoadedCocktails_WhenCalledForHomePage)); var cocktailId = "15"; var barId = "51"; var barName = "Fofo"; var cocktailComponentId = "15"; var ingredientId = "15"; var ingredientName = "Bira"; var newIngredient = new Ingredient() { Id = ingredientId, Name = ingredientName }; var newCocktailComponent = new CocktailComponent() { Id = cocktailComponentId, IngredientId = ingredientId, Ingredient = newIngredient }; var listComponents = new List <CocktailComponent>(); listComponents.Add(newCocktailComponent); var newBar = new Bar() { Id = barId, Name = barName }; var newBarCocktail = new BarCocktail() { BarId = barId, Bar = newBar, CocktailId = cocktailId }; var barCocktails = new List <BarCocktail>(); barCocktails.Add(newBarCocktail); var newCocktail = new Cocktail() { Id = cocktailId, CocktailComponents = listComponents, BarCocktails = barCocktails }; using (var arrangeContext = new CMContext(options)) { arrangeContext.Add(newIngredient); arrangeContext.Add(newBar); arrangeContext.Add(newBarCocktail); arrangeContext.Add(newCocktailComponent); arrangeContext.Add(newCocktail); await arrangeContext.SaveChangesAsync(); } using (var assertContext = new CMContext(options)) { var sut = new CocktailServices(assertContext, _fileUploadService.Object, _ingredientServices.Object, _recipeServices.Object); var result = await sut.GetCocktailsForHomePage(); Assert.AreEqual(cocktailId, result.ToList()[0].Id); Assert.AreEqual(barId, result.ToList()[0].BarCocktails[0].BarId); Assert.AreEqual(barName, result.ToList()[0].BarCocktails[0].Bar.Name); Assert.AreEqual(ingredientName, result.ToList()[0].Ingredients[0].Ingredient); } }
public BarCocktail Create(int barId, int cocktailId) { var barCocktail = new BarCocktail { BarId = barId, CocktailId = cocktailId }; return(barCocktail); }
public static BarCocktail ToEntity(this BarCocktailDTO barCocktail) { var barCocktailDTO = new BarCocktail { BarId = barCocktail.BarId, CocktailId = barCocktail.CocktailId }; return(barCocktailDTO); }
public static BarCocktail ToEditEntity(this BarCocktailEditDTO barCocktail) { var barCocktailDTO = new BarCocktail { Bar = barCocktail.Bar, Cocktail = barCocktail.Cocktail }; return(barCocktailDTO); }
public async Task AddCocktailToBar_Throws_When_Cocktail_IsAreadyListed() { //Arrange var options = Utils.GetOptions(nameof(AddCocktailToBar_Throws_When_Cocktail_IsAreadyListed)); var bar = new Bar { Id = Guid.NewGuid(), Name = "Cosmos", Country = new Country { Id = Guid.NewGuid(), Name = "Bulgaria" } }; var cocktail = new Cocktail { Id = Guid.NewGuid(), Name = "Manhattan", }; var cocktailDTO = new CocktailDTO { Id = cocktail.Id, Name = cocktail.Name, }; var barCocktail = new BarCocktail { BarId = bar.Id, CocktailId = cocktail.Id, }; using (var arrangeContext = new CMContext(options)) { await arrangeContext.Bars.AddAsync(bar); await arrangeContext.Cocktails.AddAsync(cocktail); await arrangeContext.BarCocktails.AddAsync(barCocktail); await arrangeContext.SaveChangesAsync(); } //Act,Assert using (var assertContext = new CMContext(options)) { var sut = new BarServices(assertContext); await Assert.ThrowsExceptionAsync <InvalidOperationException>(() => sut.AddCocktailToBar(bar.Id, cocktailDTO.Id)); } }
public static BarCocktailDTO ToDTO(this BarCocktail barCocktail) { var barCocktailDTO = new BarCocktailDTO { BarId = barCocktail.BarId, CocktailId = barCocktail.CocktailId, CocktailName = barCocktail.Cocktail.Name }; return(barCocktailDTO); }
public async Task RemoveCocktailFromBar_Throws_When_Cocktail_NotFound_AtThisBar() { //Arrange var options = Utils.GetOptions(nameof(RemoveCocktailFromBar_Throws_When_Cocktail_NotFound_AtThisBar)); var bar = new Bar { Id = Guid.Parse("86cb5331-0035-4a52-b99b-08df779358e3"), Name = "Cosmos", Country = new Country { Id = Guid.Parse("fb837576-a066-43a1-9812-3c1eac4d449c"), Name = "Bulgaria" } }; var cocktail = new Cocktail { Id = Guid.Parse("bb4b4175-81c5-4828-bca4-3660f796eb3f"), Name = "Manhattan", }; var cocktailDTO = new CocktailDTO { Id = cocktail.Id, Name = cocktail.Name, }; var barCocktail = new BarCocktail { Id = Guid.Parse("ca28a84e-1885-4d1b-aee9-3ab4f9ade0f7"), CocktailId = cocktail.Id }; using (var arrangeContext = new CMContext(options)) { await arrangeContext.Bars.AddAsync(bar); await arrangeContext.Cocktails.AddAsync(cocktail); await arrangeContext.BarCocktails.AddAsync(barCocktail); await arrangeContext.SaveChangesAsync(); } //Act,Assert using (var assertContext = new CMContext(options)) { var sut = new BarServices(assertContext); await Assert.ThrowsExceptionAsync <InvalidOperationException>(() => sut.RemoveCocktailFromBar(bar.Id, cocktailDTO.Id)); } }
public static BarCocktailEditDTO ToEditDTO(this BarCocktail barCocktail) { var barCocktailDTO = new BarCocktailEditDTO { BarId = barCocktail.BarId, Bar = barCocktail.Bar, CocktailId = barCocktail.CocktailId, Cocktail = barCocktail.Cocktail }; return(barCocktailDTO); }
public async Task GetCocktailsForBar_Returns_Correct() { //Arrange var options = Utils.GetOptions(nameof(GetCocktailsForBar_Returns_Correct)); var bar = new Bar { Id = Guid.NewGuid(), Name = "Cosmos", Address = "Sofia", Rating = 2, Country = new Country { Name = "Bulgaria" } }; var cocktail = new Cocktail { Id = Guid.NewGuid(), Name = "Manhattan" }; var cocktail2 = new Cocktail { Id = Guid.NewGuid(), Name = "Cosmopolitan" }; var barCocktail = new BarCocktail { BarId = bar.Id, CocktailId = cocktail.Id }; var barCocktail2 = new BarCocktail { BarId = bar.Id, CocktailId = cocktail2.Id }; using (var arrangeContext = new CMContext(options)) { await arrangeContext.Bars.AddAsync(bar); await arrangeContext.Cocktails.AddRangeAsync(cocktail, cocktail2); await arrangeContext.BarCocktails.AddRangeAsync(barCocktail, barCocktail2); await arrangeContext.SaveChangesAsync(); } //Act, Assert using (var assertContext = new CMContext(options)) { var sut = new BarServices(assertContext); var result = await sut.GetCocktailsForBar(bar.Id); Assert.AreEqual(2, result.Count()); Assert.AreEqual(barCocktail.CocktailId, result.ToList()[0].CocktailId); Assert.AreEqual(barCocktail.BarId, result.ToList()[0].BarId); Assert.AreEqual(barCocktail2.BarId, result.ToList()[1].BarId); Assert.AreEqual(barCocktail2.BarId, result.ToList()[1].BarId); Assert.IsInstanceOfType(result, typeof(ICollection <BarCocktailDTO>)); } }
public static BarCocktailDTO BarCocktailMapToDTO(this BarCocktail barCocktail) { var barCocktailDTO = new BarCocktailDTO(); barCocktailDTO.BarId = barCocktail.BarId; barCocktailDTO.BarName = barCocktail.Bar.Name; barCocktailDTO.CocktailId = barCocktail.CocktailId; barCocktailDTO.CocktailName = barCocktail.Cocktail.Name; barCocktailDTO.UnlistedOn = barCocktail.UnlistedOn; return(barCocktailDTO); }
public async Task ThrowWhen_IngredientNotFound() { //Arrange var options = TestUtilities.GetOptions(nameof(ThrowWhen_IngredientNotFound)); var mapperMock = new Mock <IDtoMapper <Bar, BarDto> >(); var searchMapperMock = new Mock <IDtoMapper <Bar, SearchBarDto> >(); var cocktailMapperMock = new Mock <IDtoMapper <Cocktail, CocktailDto> >(); var testGuid = Guid.NewGuid(); var cocktailGuid = Guid.NewGuid(); var bar1 = new Bar { Id = testGuid, Name = "testBar1", }; var barDto1 = new BarDto { Id = testGuid, Name = "testBar1", }; var list = new List <string> { "Banica" }; var cocktail = new Cocktail { Id = cocktailGuid, Name = "Boza" }; var barCocktail = new BarCocktail { BarId = bar1.Id, CocktailId = cocktailGuid }; mapperMock.Setup(x => x.MapFrom(It.IsAny <Bar>())).Returns(barDto1); using (var arrangeContext = new CWContext(options)) { await arrangeContext.Bars.AddAsync(bar1); await arrangeContext.Cocktails.AddAsync(cocktail); await arrangeContext.BarCocktails.AddAsync(barCocktail); await arrangeContext.SaveChangesAsync(); } using (var assertContext = new CWContext(options)) { //Act & Assert var sut = new BarService(assertContext, mapperMock.Object, searchMapperMock.Object, cocktailMapperMock.Object); await Assert.ThrowsExceptionAsync <BusinessLogicException>(() => sut.RemoveCocktailsAsync(barDto1, list)); } }
public async Task Return_True_If_Bar_Has_Cocktail() { var options = Utils.GetOptions(nameof(Return_True_If_Bar_Has_Cocktail)); var bar = new Bar() { Id = Guid.Parse("1f573fa6-3cc0-48ad-8850-ee7675cc3096"), Name = "Konyushnite", Phone = "0899516116", Website = "-", Description = "Live music", CityId = Guid.Parse("e3e92ad8-b117-42a8-b263-ec351d9234fc"), Address = "40 Saborna Str." }; var cocktail = new Cocktail { Id = Guid.Parse("9ef97551-87f6-40ce-a88b-6c0e876ccb51"), Name = "Margarita", Description = "The Margarita is one of the most " + "popular cocktails in North America—for good reason. " + "Combining the tang of lime and the sweetness of o" + "range liqueur with the distinctive strength of " + "tequila, our classic Margarita strikes all of the right keys." }; var barCocktail = new BarCocktail { CocktailId = cocktail.Id, BarId = bar.Id, UnlistedOn = null }; using (var arrangeContext = new CMContext(options)) { arrangeContext.Bars.Add(bar); arrangeContext.Cocktails.Add(cocktail); arrangeContext.BarCocktails.Add(barCocktail); arrangeContext.SaveChanges(); } using (var assertContext = new CMContext(options)) { var sut = new CocktailService(assertContext); var result = await sut.IsCocktailAvailableInBar(barCocktail.BarId, barCocktail.CocktailId); Assert.IsTrue(result); } }
public async Task <CocktailDto> AddBarsAsync(CocktailDto cocktailDto, List <string> selectedBars) { var cocktail = await this.context.Cocktails .Where(b => b.IsDeleted == false) .FirstOrDefaultAsync(b => b.Id == cocktailDto.Id); if (cocktail == null) { throw new BusinessLogicException(ExceptionMessages.CocktailNull); } if (!selectedBars.Any()) { throw new BusinessLogicException(ExceptionMessages.BarNull); } foreach (var item in selectedBars) { var bar = await this.context.Bars .Where(c => c.IsDeleted == false) .FirstOrDefaultAsync(c => c.Name == item) ?? throw new BusinessLogicException(ExceptionMessages.BarNull); var barCocktail = await this.context.BarCocktails .Where(c => c.BarId == bar.Id && c.CocktailId == cocktail.Id) .FirstOrDefaultAsync(); if (barCocktail == null) { barCocktail = new BarCocktail { Bar = bar, Cocktail = cocktail, }; await this.context.BarCocktails.AddAsync(barCocktail); bar.BarCocktails.Add(barCocktail); cocktail.BarCocktails.Add(barCocktail); } else { barCocktail.IsDeleted = false; barCocktail.DeletedOn = DateTime.MinValue; } } await this.context.SaveChangesAsync(); return(cocktailDto); }
public async Task <BarCocktail> CreateAsync(Bar bar, Cocktail cocktail) { var barCocktail = new BarCocktail { Bar = bar, BarID = bar.Id, Cocktail = cocktail, CocktailID = cocktail.Id }; await _context.BarCocktail.AddAsync(barCocktail); await _context.SaveChangesAsync(); return(barCocktail); }
public async Task Return_Correct_Cocktail_WhenParamsAreValid() { //Arrange var options = TestUtilities.GetOptions(nameof(Return_Correct_Cocktail_WhenParamsAreValid)); var mockCocktailDtoMapper = new Mock <IDtoMapper <Cocktail, CocktailDto> >(); var mockCocktailIngretientService = new Mock <ICocktailIngredientService>(); var mockIngredientsService = new Mock <IIngredientService>(); var mockDateTimeProvider = new Mock <IDateTimeProvider>(); var bar = new Bar { Id = 1 }; var cocktail = new Cocktail { Id = 1, Name = "TestCocktail" }; var barCocktail = new BarCocktail { BarId = 1, CocktailId = 1 }; var cocktailDto = new CocktailDto { Id = 1, Name = "TestCocktail", }; mockCocktailDtoMapper.Setup(x => x.MapDto(It.IsAny <Cocktail>())).Returns(cocktailDto); using (var arrangeContext = new CocktailMagicianContext(options)) { await arrangeContext.BarCocktails.AddAsync(barCocktail); await arrangeContext.Cocktails.AddAsync(cocktail); await arrangeContext.Bars.AddAsync(bar); await arrangeContext.SaveChangesAsync(); } //Act and Assert using (var assertContext = new CocktailMagicianContext(options)) { var sut = new CocktailService(assertContext, mockCocktailDtoMapper.Object, mockDateTimeProvider.Object, mockCocktailIngretientService.Object, mockIngredientsService.Object); var result = await sut.GetBarCocktailsAsync(1); Assert.IsInstanceOfType(result, typeof(ICollection <CocktailDto>)); Assert.AreEqual(1, result.First().Id); Assert.AreEqual("TestCocktail", result.First().Name); } }
public async Task GetBarsOfCocktail_Returns_Correct() { //Arrange var options = Utils.GetOptions(nameof(GetBarsOfCocktail_Returns_Correct)); var cocktail = new Cocktail { Id = Guid.NewGuid(), Name = "Cuba Libre" }; var bar = new Bar { Id = Guid.NewGuid(), Name = "Rabbit Hole" }; var bar2 = new Bar { Id = Guid.NewGuid(), Name = "Cosmos" }; var barCocktail = new BarCocktail { BarId = bar.Id, CocktailId = cocktail.Id, IsListed = true }; var barCocktail2 = new BarCocktail { BarId = bar2.Id, CocktailId = cocktail.Id, IsListed = true }; using (var arrangeContext = new CMContext(options)) { await arrangeContext.Cocktails.AddAsync(cocktail); await arrangeContext.Bars.AddRangeAsync(bar, bar2); await arrangeContext.BarCocktails.AddRangeAsync(barCocktail, barCocktail2); await arrangeContext.SaveChangesAsync(); } //Act, Assert using (var assertContext = new CMContext(options)) { var sut = new CocktailServices(assertContext); var result = await sut.GetBarsOfCocktail(cocktail.Id); Assert.AreEqual(2, result.Count); Assert.AreEqual(barCocktail.BarId, result.ToList()[0].BarId); Assert.AreEqual(barCocktail.CocktailId, result.ToList()[0].CocktailId); Assert.AreEqual(barCocktail2.BarId, result.ToList()[1].BarId); Assert.AreEqual(barCocktail2.CocktailId, result.ToList()[1].CocktailId); Assert.IsInstanceOfType(result, typeof(ICollection <BarCocktailDTO>)); } }
public async Task AddCocktailToBarAsync_Existing_Combination_Correct() { //Arrange var options = Utils.GetOptions(nameof(AddCocktailToBarAsync_Existing_Combination_Correct)); var barId = Guid.Parse("92a05c62-6f33-4dc9-bcc1-c9c946bf693a"); var cocktailId = Guid.Parse("9ef97551-87f6-40ce-a88b-6c0e876ccb51"); var dateUnlistedOn = new DateTime(2020, 05, 01); var bar = new Bar() { Id = barId, Name = "Just another bar", Phone = "0898878465", CityId = Guid.Parse("cc44371d-594f-4c47-a82b-e606bede8d3b"), //Varna Address = "62 Prof. Marin Drinov Str.", }; var cocktail = new Cocktail() { Id = Guid.Parse("9ef97551-87f6-40ce-a88b-6c0e876ccb51"), Name = "Margarita", }; var barCocktails = new BarCocktail() { BarId = barId, CocktailId = cocktailId, UnlistedOn = dateUnlistedOn }; using (var arrangeContext = new CMContext(options)) { arrangeContext.Bars.Add(bar); arrangeContext.Cocktails.Add(cocktail); arrangeContext.BarCocktails.Add(barCocktails); await arrangeContext.SaveChangesAsync(); } //Act,Assert using (var assertContext = new CMContext(options)) { var sut = new BarService(assertContext); var result1 = await sut.AddCocktailToBarAsync(barId, cocktailId); var result2 = assertContext.BarCocktails.Any(bc => bc.BarId == barId && bc.CocktailId == cocktailId && bc.UnlistedOn == null); Assert.IsTrue(result1); Assert.IsTrue(result2); } }
public async Task AvailabilityAtBar_Return_Correct() { //Arrange var options = Utils.GetOptions(nameof(AvailabilityAtBar_Return_Correct)); var bar = new Bar { Id = Guid.NewGuid(), Name = "Manhattan", Country = new Country { Id = Guid.NewGuid(), Name = "USA" } }; var cocktail = new Cocktail { Id = Guid.NewGuid(), Name = "Cosmopolitan" }; var barCocktail2 = new BarCocktail { BarId = Guid.NewGuid(), CocktailId = cocktail.Id }; var barCocktail = new BarCocktail { BarId = bar.Id, CocktailId = cocktail.Id, IsListed = true }; using (var arrangeContext = new CMContext(options)) { await arrangeContext.BarCocktails.AddRangeAsync(barCocktail, barCocktail2); await arrangeContext.Cocktails.AddAsync(cocktail); await arrangeContext.Bars.AddAsync(bar); await arrangeContext.SaveChangesAsync(); } //Act,Assert using (var assertContext = new CMContext(options)) { var sut = new BarServices(assertContext); var result = await sut.AvailabilityAtBar(bar.Id); Assert.AreEqual(1, result.Count()); Assert.AreEqual(result.ToList()[0].BarId, bar.Id); } }
public async Task <BarCocktail> CreateBarCocktail(int barId, int cocktailId) { if (barId < 1 || cocktailId < 1) { return(null); } var barCocktail = new BarCocktail { BarId = barId, CocktailId = cocktailId, }; await this.contex.BarCocktails.AddAsync(barCocktail); await this.contex.SaveChangesAsync(); return(barCocktail); }
public GetBarForDetails_Should() { barForTest = new Bar() { BarId = "One", Address = "Solunska 2", Information = "Information", MapDirections = "Go south", Name = "Bar", Picture = "Picture" }; user = new User() { Id = "One", UserName = "******" }; cocktail = new Cocktail() { Id = "One", Name = "Cocktail" }; barCocktail = new BarCocktail() { BarId = barForTest.BarId, Bar = barForTest, CocktailId = cocktail.Id, Cocktail = cocktail }; barReview = new BarReview() { BarId = barForTest.BarId, Bar = barForTest, Comment = "Comment", CreatedOn = DateTime.MinValue, Grade = 5d, UserId = user.Id, User = user }; }
public static BarCocktailDTO GetDTO(this BarCocktail barCocktail) { if (barCocktail == null) { throw new ArgumentNullException(); } return(new BarCocktailDTO { BarId = barCocktail.BarId, Bar = barCocktail.Bar, CocktailId = barCocktail.CocktailId, Cocktail = barCocktail.Cocktail, IsListed = barCocktail.IsListed, IsDeleted = barCocktail.IsDeleted, DeletedOn = barCocktail.DeletedOn, ListedOn = barCocktail.ListedOn, UnlistedOn = barCocktail.UnlistedOn, ModifiedOn = barCocktail.ModifiedOn }); }
public async Task <bool> AddCocktailToBarAsync(Guid barId, Guid cocktailId) { if (!await _cmContext.Cocktails.AnyAsync(c => c.UnlistedOn == null && c.Id == cocktailId)) { throw new ArgumentNullException("Cocktail is not available."); } if (!await _cmContext.Bars.AnyAsync(b => b.UnlistedOn == null && b.Id == barId)) { throw new ArgumentNullException("Bar is not available."); } var barCocktail = await _cmContext.BarCocktails .Where(bc => bc.BarId == barId && bc.CocktailId == cocktailId) .FirstOrDefaultAsync(); if (barCocktail == null) { var barCocktailNew = new BarCocktail() { BarId = barId, CocktailId = cocktailId }; _cmContext.BarCocktails.Add(barCocktailNew); } else if (barCocktail.UnlistedOn != null) { barCocktail.UnlistedOn = null; } if (_cmContext.ChangeTracker.HasChanges()) { try { await _cmContext.SaveChangesAsync(); } catch (Exception) { throw; } } return(true); }
public async Task AddCocktailBarAsync(int barId, int cocktailId) { var bar = await FindBarByIdAsync(barId); var cocktail = await cocktailService.FindCocktailByIdAsync(cocktailId); if (bar != null && cocktail != null) { var barCocktail = new BarCocktail() { Bar = bar, Cocktail = cocktail, CocktailName = cocktail.Name, BarName = bar.Name }; await dbContext.BarCocktail.AddAsync(barCocktail); await dbContext.SaveChangesAsync(); } await nService.FavBarNotificationAsync(bar.Name, cocktail.Name); await nService.FavCocktailNotificationAsync(bar.Name, cocktail.Name, bar.City.Name); }
public async Task AddCocktailToBar_Throws_When_BarCocktail_IsNotNull() { //Arrange var options = Utils.GetOptions(nameof(AddCocktailToBar_Throws_When_BarCocktail_IsNotNull)); var barID = Guid.NewGuid(); var cocktailId = Guid.NewGuid(); var barCocktail = new BarCocktail { BarId = barID, CocktailId = cocktailId }; var cocktailDTO = new CocktailDTO { Id = cocktailId, Name = "Manhattan" }; using (var arrangeContext = new CMContext(options)) { await arrangeContext.BarCocktails.AddAsync(barCocktail); await arrangeContext.SaveChangesAsync(); } //Act,Assert using (var assertContext = new CMContext(options)) { var sut = new BarServices(assertContext); await Assert.ThrowsExceptionAsync <ArgumentNullException>(() => sut.AddCocktailToBar(barID, cocktailDTO.Id)); } }
public async Task CorrectlyLoadAllDependenciesForLoadedCocktail_WhenPassedIdIsCorrect() { var options = TestUtils.GetOptions(nameof(CorrectlyLoadAllDependenciesForLoadedCocktail_WhenPassedIdIsCorrect)); var cocktailId = "15"; var barId = "51"; var barName = "Fofo"; var cocktailComponentId = "15"; var ingredientId = "15"; var ingredientName = "Bira"; var newIngredient = new Ingredient() { Id = ingredientId, Name = ingredientName }; var newCocktailComponent = new CocktailComponent() { Id = cocktailComponentId, IngredientId = ingredientId, Ingredient = newIngredient }; var listComponents = new List <CocktailComponent>(); listComponents.Add(newCocktailComponent); var country = new Country() { Id = "1", Name = "Bulgaria" }; var adress = new Address() { Id = "1", City = "Sofia", Country = country }; var newBar = new Bar() { Id = barId, Name = barName, Address = adress }; var newBarCocktail = new BarCocktail() { BarId = barId, Bar = newBar, CocktailId = cocktailId }; var barCocktails = new List <BarCocktail>(); barCocktails.Add(newBarCocktail); var newCocktail = new Cocktail() { Id = cocktailId, CocktailComponents = listComponents, BarCocktails = barCocktails }; using (var arrangeContext = new CMContext(options)) { arrangeContext.Add(newIngredient); arrangeContext.Add(country); arrangeContext.Add(adress); arrangeContext.Add(newBar); arrangeContext.Add(newBarCocktail); arrangeContext.Add(newCocktailComponent); arrangeContext.Add(newCocktail); await arrangeContext.SaveChangesAsync(); } using (var assertContext = new CMContext(options)) { var sut = new CocktailServices(assertContext, _fileUploadService.Object, _ingredientServices.Object, _recipeServices.Object); var result = await sut.FindCocktailById(cocktailId); Assert.AreEqual(barId, result.BarCocktails[0].BarId); Assert.AreEqual(barName, result.BarCocktails[0].Bar.Name); Assert.AreEqual("Sofia", result.BarCocktails[0].Bar.Address.City); Assert.AreEqual("Bulgaria", result.BarCocktails[0].Bar.Address.Country.Name); Assert.AreEqual(ingredientName, result.Ingredients[0].Ingredient); } }
public void ReturnCollectionOfCorrectCocktailNames() { // Arrange var options = TestUtilities.GetOptions(nameof(ReturnCollectionOfCorrectCocktailNames)); // Act, Assert using (var assertContext = new CocktailDB(options)) { var sut = new BarServices(assertContext); var bar = new Bar { Name = "Barsy", Id = 1 }; var cocktail1 = new Cocktail { Name = "Mojito1", Id = 1 }; var cocktail2 = new Cocktail { Name = "Mojito2", Id = 2 }; var cocktail3 = new Cocktail { Name = "Mojito3", Id = 3 }; var pair1 = new BarCocktail { Bar = bar, BarID = bar.Id, Cocktail = cocktail1, CocktailID = cocktail1.Id }; var pair2 = new BarCocktail { Bar = bar, BarID = bar.Id, Cocktail = cocktail2, CocktailID = cocktail2.Id }; var pair3 = new BarCocktail { Bar = bar, BarID = bar.Id, Cocktail = cocktail3, CocktailID = cocktail3.Id }; assertContext.BarCocktail.Add(pair1); assertContext.BarCocktail.Add(pair2); assertContext.BarCocktail.Add(pair3); assertContext.SaveChanges(); var result = sut.LoadMoreCocktails(1, bar.Id).GetAwaiter().GetResult(); Assert.IsTrue(result.Count == 2 && result[0] == cocktail2.Name && result[1] == cocktail3.Name); } }
public async Task ReturnCorrectDtoWhen_ParamsAreValid() { //Arrange var options = TestUtilities.GetOptions(nameof(ReturnCorrectDtoWhen_ParamsAreValid)); var mapperMock = new Mock <IDtoMapper <Cocktail, CocktailDto> >(); var barMapperMock = new Mock <IDtoMapper <Bar, BarDto> >(); var cocktailDetailsMapperMock = new Mock <IDtoMapper <Cocktail, DetailsCocktailDto> >(); var ingredientMapperMock = new Mock <IDtoMapper <Ingredient, IngredientDto> >(); var ingredientServiceMock = new Mock <IIngredientService>(); var cocktailIngredientServiceMock = new Mock <ICocktailIngredientService>(); var testGuid = Guid.NewGuid(); var barGuid = Guid.NewGuid(); var cocktail = new Cocktail { Id = testGuid, Name = "TestOneName", ImagePath = "ImagePathOne" }; var cocktailDto = new DetailsCocktailDto { Id = testGuid, Name = "TestOneName", ImagePath = "ImagePathOne", AverageRating = 2, Info = "testInfo" }; var bar = new Bar { Id = barGuid, Name = "testName" }; var barCocktail = new BarCocktail { Bar = bar, Cocktail = cocktail, }; cocktailDetailsMapperMock.Setup(x => x.MapFrom(It.IsAny <Cocktail>())).Returns(cocktailDto); using (var arrangeContext = new CWContext(options)) { await arrangeContext.Bars.AddAsync(bar); await arrangeContext.BarCocktails.AddAsync(barCocktail); await arrangeContext.Cocktails.AddAsync(cocktail); await arrangeContext.SaveChangesAsync(); } using (var assertContext = new CWContext(options)) { //Act & Assert var sut = new CocktailService(assertContext, mapperMock.Object, barMapperMock.Object, cocktailDetailsMapperMock.Object, ingredientServiceMock.Object, cocktailIngredientServiceMock.Object); var result = await sut.GetCocktailBarsAsync(testGuid); Assert.IsInstanceOfType(result, typeof(DetailsCocktailDto)); Assert.AreEqual("TestOneName", result.Name); } }
public async Task CorrectlyRemoveBarsWhen_ParamsAreValid() { //Arrange var options = TestUtilities.GetOptions(nameof(CorrectlyRemoveBarsWhen_ParamsAreValid)); var mapper = new CocktailDtoMapper(); var mapperMock = new Mock <IDtoMapper <Cocktail, CocktailDto> >(); var barMapperMock = new Mock <IDtoMapper <Bar, BarDto> >(); var cocktailDetailsMapperMock = new Mock <IDtoMapper <Cocktail, DetailsCocktailDto> >(); var ingredientServiceMock = new Mock <IIngredientService>(); var cocktailIngredientServiceMock = new Mock <ICocktailIngredientService>(); var guid = Guid.NewGuid(); var barGuid = Guid.NewGuid(); var cocktail = new Cocktail { Id = guid, Name = "testCocktail", Info = "testCocktailInfo", }; var entityDto = new CocktailDto { Id = guid, Name = "testCocktail", Info = "testInfo", }; var list = new List <string> { "Baileys" }; var bar = new Bar { Id = barGuid, Name = "Baileys" }; var barCocktail = new BarCocktail { BarId = barGuid, CocktailId = cocktail.Id }; mapperMock.Setup(x => x.MapFrom(It.IsAny <Cocktail>())).Returns(entityDto); using (var arrangeContext = new CWContext(options)) { await arrangeContext.Cocktails.AddAsync(cocktail); await arrangeContext.Bars.AddAsync(bar); await arrangeContext.BarCocktails.AddAsync(barCocktail); await arrangeContext.SaveChangesAsync(); } using (var assertContext = new CWContext(options)) { //Act & Assert var sut = new CocktailService(assertContext, mapperMock.Object, barMapperMock.Object, cocktailDetailsMapperMock.Object, ingredientServiceMock.Object, cocktailIngredientServiceMock.Object); var result = await sut.RemoveBarsAsync(entityDto, list); var barCocktailEntity = await assertContext.BarCocktails.FirstAsync(); Assert.IsInstanceOfType(result, typeof(CocktailDto)); Assert.AreEqual("testCocktail", result.Name); Assert.AreEqual(true, barCocktailEntity.IsDeleted); } }
public async Task CorrectlyLoadAllDependenciesForCocktails_WhenCalled() { var sortOrder = "name_desc"; var user = new AppUser() { Id = "1", UserName = "******" }; var review = new CocktailReview() { Id = "11", User = user, Rating = 10f }; var reviews = new List <CocktailReview>(); reviews.Add(review); var options = TestUtils.GetOptions(nameof(CorrectlyLoadAllDependenciesForCocktails_WhenCalled)); var cocktailId = "15"; var barId = "51"; var barName = "Fofo"; var cocktailComponentId = "15"; var ingredientId = "15"; var ingredientName = "Bira"; var newIngredient = new Ingredient() { Id = ingredientId, Name = ingredientName }; var newCocktailComponent = new CocktailComponent() { Id = cocktailComponentId, IngredientId = ingredientId, Ingredient = newIngredient }; var listComponents = new List <CocktailComponent>(); listComponents.Add(newCocktailComponent); var newBar = new Bar() { Id = barId, Name = barName }; var newBarCocktail = new BarCocktail() { BarId = barId, Bar = newBar, CocktailId = cocktailId }; var barCocktails = new List <BarCocktail>(); barCocktails.Add(newBarCocktail); var newCocktail = new Cocktail() { Id = cocktailId, CocktailComponents = listComponents, BarCocktails = barCocktails, Reviews = reviews }; using (var arrangeContext = new CMContext(options)) { arrangeContext.Add(user); arrangeContext.Add(review); arrangeContext.Add(newIngredient); arrangeContext.Add(newBar); arrangeContext.Add(newBarCocktail); arrangeContext.Add(newCocktailComponent); arrangeContext.Add(newCocktail); await arrangeContext.SaveChangesAsync(); } using (var assertContext = new CMContext(options)) { var sut = new CocktailServices(assertContext, _fileUploadService.Object, _ingredientServices.Object, _recipeServices.Object); var result = await sut.GetFiveSortedCocktailsAsync(sortOrder); Assert.AreEqual(cocktailId, result.ToList()[0].Id); Assert.AreEqual(barId, result.ToList()[0].BarCocktails[0].BarId); Assert.AreEqual(barName, result.ToList()[0].BarCocktails[0].Bar.Name); Assert.AreEqual(ingredientName, result.ToList()[0].Ingredients[0].Ingredient); Assert.AreEqual("pesho", result.ToList()[0].CocktailReviews.ToList()[0].User.UserName); Assert.AreEqual(10, result.ToList()[0].CocktailReviews.ToList()[0].Rating); } }