public async Task ReturnCorrectTypeOfEntity() { //Arrange var options = TestUtilities.GetOptions(nameof(ReturnCorrectTypeOfEntity)); 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 cocktail = new Cocktail { Id = testGuid, Name = "TestOneName", ImagePath = "ImagePathOne" }; var cocktailDto = new CocktailDto { Id = testGuid, Name = "TestOneName", ImagePath = "ImagePathOne" }; mapperMock.Setup(x => x.MapFrom(It.IsAny <Cocktail>())).Returns(cocktailDto); using (var arrangeContext = new CWContext(options)) { 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.EditAsync(testGuid, "newTestName", "newTestInfo"); Assert.IsInstanceOfType(result, typeof(CocktailDto)); } }
public async Task CorrectlyUpdateEntity() { //Arrange var options = TestUtilities.GetOptions(nameof(CorrectlyUpdateEntity)); 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 cocktail = new Cocktail { Id = testGuid, Name = "TestOneName", ImagePath = "ImagePathOne", Info = "Info" }; using (var arrangeContext = new CWContext(options)) { await arrangeContext.Cocktails.AddAsync(cocktail); await arrangeContext.SaveChangesAsync(); } mapperMock.Setup(x => x.MapFrom(It.IsAny <Cocktail>())).Returns(It.IsAny <CocktailDto>); using (var assertContext = new CWContext(options)) { var sut = new CocktailService(assertContext, mapperMock.Object, barMapperMock.Object, cocktailDetailsMapperMock.Object, ingredientServiceMock.Object, cocktailIngredientServiceMock.Object); var result = await sut.EditAsync(testGuid, "newTestName", "newTestInfo"); var edittedCocktail = await assertContext.Cocktails.FirstAsync(); Assert.AreEqual("newTestName", edittedCocktail.Name); Assert.AreEqual("newTestInfo", edittedCocktail.Info); } }
public async Task ThrowWhen_NoCocktailFound() { //Arrange var options = TestUtilities.GetOptions(nameof(ThrowWhen_NoCocktailFound)); 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 testGuid2 = Guid.NewGuid(); var cocktail = new Cocktail { Id = testGuid, Name = "TestOneName", ImagePath = "ImagePathOne" }; mapperMock.Setup(x => x.MapFrom(It.IsAny <Cocktail>())).Returns(It.IsAny <CocktailDto>); using (var arrangeContext = new CWContext(options)) { 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); await Assert.ThrowsExceptionAsync <BusinessLogicException>(() => sut.EditAsync(testGuid2, "newTestName", "newTestInfo")); } }