public async Task ThrowWhen_BarCocktailNotFound()
        {
            //Arrange
            var options            = TestUtilities.GetOptions(nameof(ThrowWhen_BarCocktailNotFound));
            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"
            };

            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.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));
            }
        }
示例#2
0
        public async Task ReturnCorrectBarCommentWhen_ParamsAreValid()
        {
            //Arrange
            var options = TestUtilities.GetOptions(nameof(ReturnCorrectBarCommentWhen_ParamsAreValid));

            var mapperMock = new Mock <IDtoMapper <BarComment, BarCommentDto> >();

            var id        = Guid.NewGuid();
            var barId     = Guid.NewGuid();
            var createdOn = DateTime.UtcNow;

            var entity = new BarComment
            {
                Id        = id,
                BarId     = barId,
                UserId    = Guid.NewGuid(),
                Body      = "testbody",
                CreatedOn = createdOn
            };

            //var entityDto = new BarCommentDto
            //{
            //    Id = id,
            //    BarId = barId,
            //    UserId = Guid.NewGuid(),
            //    Body = "testbody",
            //    CreatedOn = createdOn
            //};

            //mapperMock.Setup(x => x.MapFrom(It.IsAny<BarComment>())).Returns(entityDto);

            using (var arrangeContext = new CWContext(options))
            {
                await arrangeContext.BarComments.AddAsync(entity);

                await arrangeContext.SaveChangesAsync();
            }

            using (var assertContext = new CWContext(options))
            {
                //Act & Assert
                var sut = new BarCommentService(assertContext, mapperMock.Object);
                //var result = await sut.GetBarCommentAsync(barId);

                //Assert.IsInstanceOfType(result, typeof(BarComment));
                //Assert.AreEqual("testbody", result.Body);
            }
        }
示例#3
0
        public async Task ThrowWhen_NoBarFound()
        {
            //Arrange
            var options            = TestUtilities.GetOptions(nameof(ThrowWhen_NoBarFound));
            var mapperMock         = new Mock <IDtoMapper <Bar, BarDto> >();
            var searchMapperMock   = new Mock <IDtoMapper <Bar, SearchBarDto> >();
            var cocktailMapperMock = new Mock <IDtoMapper <Cocktail, CocktailDto> >();
            var guid = Guid.NewGuid();

            using (var assertContext = new CWContext(options))
            {
                //Act & Assert
                var sut = new BarService(assertContext, mapperMock.Object, searchMapperMock.Object, cocktailMapperMock.Object);
                await Assert.ThrowsExceptionAsync <BusinessLogicException>(() => sut.DeleteAsync(guid));
            }
        }
        public async Task ReturnInstanceOfTypeIngredientDto()
        {
            //Arrange
            var options    = TestUtilities.GetOptions(nameof(ReturnInstanceOfTypeIngredientDto));
            var mapperMock = new Mock <IDtoMapper <Ingredient, IngredientDto> >();

            using (var assertContext = new CWContext(options))
            {
                //Act & Assert
                var sut    = new IngredientService(assertContext, mapperMock.Object);
                var result = await sut.CreateIngredientAsync("djodjan");

                Assert.IsInstanceOfType(result, typeof(Ingredient));
                Assert.AreEqual("djodjan", result.Name);
            }
        }
        public void CocktailRatingServiceConstructor_CreatesInstance()
        {
            //Arrange
            var options = TestUtilities.GetOptions(nameof(CocktailRatingServiceConstructor_CreatesInstance));

            var mapperMock = new Mock <IDtoMapper <CocktailRating, CocktailRatingDto> >();

            using (var assertContext = new CWContext(options))
            {
                //Act
                var sut = new CocktailRatingService(assertContext, mapperMock.Object);

                //Assert
                Assert.IsNotNull(sut);
            }
        }
        public async Task ThrowWhen_DtoPassedIsNull()
        {
            //Arrange
            var options = TestUtilities.GetOptions(nameof(ThrowWhen_DtoPassedIsNull));

            var mapperMock = new Mock <IDtoMapper <CocktailRating, CocktailRatingDto> >();

            mapperMock.Setup(x => x.MapFrom(It.IsAny <CocktailRating>())).Returns(It.IsAny <CocktailRatingDto>);

            using (var assertContext = new CWContext(options))
            {
                //Act & Assert
                var sut = new CocktailRatingService(assertContext, mapperMock.Object);
                await Assert.ThrowsExceptionAsync <BusinessLogicException>(() => sut.CreateAsync(null));
            }
        }
        public async Task ThrowWhen_CocktailIsNull()
        {
            //Arrange
            var options                   = TestUtilities.GetOptions(nameof(ThrowWhen_CocktailIsNull));
            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"
            };

            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);

                await Assert.ThrowsExceptionAsync <BusinessLogicException>(() => sut.GetCocktailBarsAsync(testGuid2));
            }
        }
示例#8
0
        public async Task ThrowWhen_NoCommentFound()
        {
            // Arrange
            var options = TestUtilities.GetOptions(nameof(ThrowWhen_NoCommentFound));

            var mapperMock = new Mock <IDtoMapper <BarComment, BarCommentDto> >();

            var id    = Guid.NewGuid();
            var barId = Guid.NewGuid();

            using (var assertContext = new CWContext(options))
            {
                //Act & Assert
                var sut = new BarCommentService(assertContext, mapperMock.Object);
                await Assert.ThrowsExceptionAsync <BusinessLogicException>(() => sut.DeleteAsync(id, barId));
            }
        }
        public async Task ReturnCorrectTypeOfInstance_WhenParamIsActive()
        {
            //Arrange
            var options    = TestUtilities.GetOptions(nameof(ReturnCorrectTypeOfInstance_WhenParamIsActive));
            var mapperMock = new Mock <IDtoMapper <User, UserDto> >();
            var testGuid   = Guid.NewGuid();
            var testGuid2  = Guid.NewGuid();

            var users = new List <User>
            {
                new User {
                    Id = testGuid, UserName = "******", IsBanned = false
                },
                new User {
                    Id = testGuid2, UserName = "******", IsBanned = false
                },
            };

            var userDtos = new List <UserDto>
            {
                new UserDto {
                    Id = testGuid, UserName = "******", IsBanned = false
                },
                new UserDto {
                    Id = testGuid2, UserName = "******", IsBanned = false
                },
            };


            mapperMock.Setup(u => u.MapFrom(It.IsAny <ICollection <User> >())).Returns(userDtos);

            using (var actContext = new CWContext(options))
            {
                //Act & Assert
                var sut = new BanService(actContext, mapperMock.Object);
                await actContext.Users.AddAsync(users[0]);

                await actContext.Users.AddAsync(users[1]);

                await actContext.SaveChangesAsync();

                var result = await sut.GetAllAsync("active");

                Assert.IsInstanceOfType(result, typeof(ICollection <UserDto>));
            }
        }
        public void BarServiceConstructor_CreatesInstance()
        {
            //Arrange
            var options            = TestUtilities.GetOptions(nameof(BarServiceConstructor_CreatesInstance));
            var mapperMock         = new Mock <IDtoMapper <Bar, BarDto> >();
            var searchMapperMock   = new Mock <IDtoMapper <Bar, SearchBarDto> >();
            var cocktailMapperMock = new Mock <IDtoMapper <Cocktail, CocktailDto> >();

            using (var assertContext = new CWContext(options))
            {
                //Act
                var sut = new BarService(assertContext, mapperMock.Object, searchMapperMock.Object, cocktailMapperMock.Object);

                //Assert
                Assert.IsNotNull(sut);
            }
        }
示例#11
0
        static async Task FillCourses()
        {
            var udemy   = new UdemyScraper();
            var courses = new List <Course>();

            await foreach (var slice in udemy.GetCoursesAsync())
            {
                courses.AddRange(slice);
            }

            courses = courses.GroupBy(c => c.ID).Select(g => g.First()).ToList();

            using var db = new CWContext();
            await db.Courses.AddRangeAsync(courses);

            await db.SaveChangesAsync();
        }
        public async Task ThrowWhen_NoBarsFound()
        {
            //Arrange
            var options            = TestUtilities.GetOptions(nameof(ThrowWhen_NoBarsFound));
            var mapperMock         = new Mock <IDtoMapper <Bar, BarDto> >();
            var searchMapperMock   = new Mock <IDtoMapper <Bar, SearchBarDto> >();
            var cocktailMapperMock = new Mock <IDtoMapper <Cocktail, CocktailDto> >();

            mapperMock.Setup(x => x.MapFrom(It.IsAny <ICollection <Bar> >())).Returns(It.IsAny <ICollection <BarDto> >);

            using (var assertContext = new CWContext(options))
            {
                //Act & Assert
                var sut = new BarService(assertContext, mapperMock.Object, searchMapperMock.Object, cocktailMapperMock.Object);
                await Assert.ThrowsExceptionAsync <BusinessLogicException>(() => sut.GetTopBarsAsync(1));
            }
        }
        public async Task CorrectlyDeleteCocktail()
        {
            //Arrange
            var options = TestUtilities.GetOptions(nameof(CorrectlyDeleteCocktail));

            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"
            };

            using (var actContext = new CWContext(options))
            {
                //Act
                await actContext.Cocktails.AddAsync(cocktail);

                await actContext.SaveChangesAsync();

                var service = new CocktailService(actContext, mapperMock.Object, barMapperMock.Object, cocktailDetailsMapperMock.Object,
                                                  ingredientServiceMock.Object, cocktailIngredientServiceMock.Object);
                var result = await service.DeleteAsync(testGuid);

                await actContext.SaveChangesAsync();
            }

            using (var assertContext = new CWContext(options))
            {
                //Assert

                var result = await assertContext.Cocktails.FirstAsync();

                Assert.AreEqual(true, result.IsDeleted);
            }
        }
        public async Task ThrowWhen_IngredientIsUsedInCocktails()
        {
            //Arrange
            var options          = TestUtilities.GetOptions(nameof(ThrowWhen_IngredientIsUsedInCocktails));
            var mapperMock       = new Mock <IDtoMapper <Ingredient, IngredientDto> >();
            var ingTestGuid      = Guid.NewGuid();
            var cocktailTestGuid = Guid.NewGuid();

            var ingredient = new Ingredient
            {
                Id        = ingTestGuid,
                Name      = "djodjan",
                IsDeleted = false,
            };

            var cocktail = new Cocktail
            {
                Id   = cocktailTestGuid,
                Name = "test"
            };

            var cocktailIngr = new CocktailIngredient
            {
                CocktailId   = cocktail.Id,
                IngredientId = ingredient.Id,
            };

            using (var arrangeContext = new CWContext(options))
            {
                await arrangeContext.Ingredients.AddAsync(ingredient);

                await arrangeContext.Cocktails.AddAsync(cocktail);

                await arrangeContext.CocktailIngredients.AddAsync(cocktailIngr);

                await arrangeContext.SaveChangesAsync();
            }

            using (var assertContext = new CWContext(options))
            {
                //Act & Assert
                var sut = new IngredientService(assertContext, mapperMock.Object);
                await Assert.ThrowsExceptionAsync <BusinessLogicException>(() => sut.DeleteAsync(ingredient.Id));
            }
        }
        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 Throw_WhenNoBarRatingDtoFound()
        {
            //Arrange
            var options = TestUtilities.GetOptions(nameof(Throw_WhenNoBarRatingDtoFound));

            var mapperMock = new Mock <IDtoMapper <BarRating, BarRatingDto> >();

            var barId     = Guid.NewGuid();
            var userId    = Guid.NewGuid();
            var userIdTwo = Guid.NewGuid();

            var entity = new BarRating
            {
                BarId  = barId,
                UserId = userId,
                Value  = 2
            };

            var entityDto = new BarRatingDto
            {
                BarId  = barId,
                UserId = userId,
                Value  = 2
            };



            mapperMock.Setup(x => x.MapFrom(It.IsAny <BarRating>())).Returns(entityDto);

            using (var arrangeContext = new CWContext(options))
            {
                await arrangeContext.BarRatings.AddAsync(entity);

                await arrangeContext.SaveChangesAsync();
            }

            using (var assertContext = new CWContext(options))
            {
                //Act & Assert
                var sut = new BarRatingService(assertContext, mapperMock.Object);

                await Assert.ThrowsExceptionAsync <BusinessLogicException>(() => sut.GetRatingAsync(barId, userId));
            }
        }
        public async Task ReturnCorrectTypeOfEntity()
        {
            //Arrange
            var options            = TestUtilities.GetOptions(nameof(ReturnCorrectTypeOfEntity));
            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 bar = new Bar
            {
                Id      = testGuid,
                Name    = "testBar",
                Info    = "testInfo",
                Address = "testAddress",
                Phone   = "111-333-666",
            };

            var dtoEntity = new BarDto
            {
                Id      = testGuid,
                Name    = "testBar",
                Info    = "testInfo",
                Address = "testAddress",
                Phone   = "111-333-666"
            };

            mapperMock.Setup(x => x.MapFrom(It.IsAny <Bar>())).Returns(dtoEntity);

            using (var arrangeContext = new CWContext(options))
            {
                await arrangeContext.Bars.AddAsync(bar);

                await arrangeContext.SaveChangesAsync();
            }

            using (var assertContext = new CWContext(options))
            {
                var sut    = new BarService(assertContext, mapperMock.Object, searchMapperMock.Object, cocktailMapperMock.Object);
                var result = await sut.EditAsync(testGuid, "newTestName", "newTestInfo", "newTestAddress", "111-333-6667");

                Assert.IsInstanceOfType(result, typeof(BarDto));
            }
        }
示例#18
0
        public void Throw_WhenBarMapperIsNull()
        {
            //Arrange
            var options = TestUtilities.GetOptions(nameof(Throw_WhenBarMapperIsNull));

            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>();

            using (var assertContext = new CWContext(options))
            {
                //Act & Assert
                Assert.ThrowsException <ArgumentNullException>(() => new CocktailService(assertContext, mapperMock.Object, null,
                                                                                         cocktailDetailsMapperMock.Object, ingredientServiceMock.Object, cocktailIngredientServiceMock.Object));
            }
        }
示例#19
0
        public async Task CorrectlyUpdateEntity()
        {
            //Arrange
            var options = TestUtilities.GetOptions(nameof(CorrectlyUpdateEntity));

            var mapperMock = new Mock <IDtoMapper <CocktailComment, CocktailCommentDto> >();

            var id         = Guid.NewGuid();
            var cocktailId = Guid.NewGuid();
            var userId     = Guid.NewGuid();

            var createdOn = DateTime.UtcNow;

            var entity = new CocktailComment
            {
                Id         = id,
                CocktailId = cocktailId,
                UserId     = userId,
                Body       = "testbody",
                CreatedOn  = createdOn
            };

            using (var arrangeContext = new CWContext(options))
            {
                await arrangeContext.CocktailComments.AddAsync(entity);

                await arrangeContext.SaveChangesAsync();
            }

            mapperMock.Setup(x => x.MapFrom(It.IsAny <CocktailComment>())).Returns(It.IsAny <CocktailCommentDto>);

            using (var assertContext = new CWContext(options))
            {
                var sut = new CocktailCommentService(assertContext, mapperMock.Object);

                var result = await sut.EditAsync(id, "newbody");

                var modifiedComment = await assertContext.CocktailComments.FirstAsync();

                Assert.AreEqual("newbody", modifiedComment.Body);
            }
        }
示例#20
0
        public async Task CorrectlyRemoveBan_WhenParamsAreValid()
        {
            //Arrange
            var options    = TestUtilities.GetOptions(nameof(CorrectlyRemoveBan_WhenParamsAreValid));
            var mapperMock = new Mock <IDtoMapper <User, UserDto> >();
            var testGuid   = Guid.NewGuid();
            var userTest   = new User {
                Id = testGuid, UserName = "******", IsBanned = true, LockoutEnabled = true, LockoutEnd = DateTime.UtcNow.AddDays(1)
            };
            var banTest = new Ban {
                HasExpired = false, User = userTest
            };

            using (var actContext = new CWContext(options))
            {
                //Act
                await actContext.Users.AddAsync(userTest);

                await actContext.Bans.AddAsync(banTest);

                await actContext.SaveChangesAsync();

                var sut = new BanService(actContext, mapperMock.Object);
                await sut.RemoveAsync(testGuid);

                await actContext.SaveChangesAsync();
            }

            using (var assertContext = new CWContext(options))
            {
                //Assert
                var user = await assertContext.Users.FirstAsync();

                var ban = assertContext.Bans
                          .Include(u => u.User)
                          .Where(b => b.User == user)
                          .FirstOrDefault();
                Assert.AreEqual(user.IsBanned, false);
                Assert.AreEqual(ban.HasExpired, true);
                Assert.AreEqual(user.LockoutEnd < DateTime.Now, true);
            }
        }
示例#21
0
        public async Task ThrowWhen_NoCommentFound()
        {
            //Arrange
            var options = TestUtilities.GetOptions(nameof(ThrowWhen_NoCommentFound));

            var mapperMock = new Mock <IDtoMapper <BarComment, BarCommentDto> >();

            var id     = Guid.NewGuid();
            var barId  = Guid.NewGuid();
            var userId = Guid.NewGuid();

            var fakeId = Guid.NewGuid();

            var createdOn = DateTime.UtcNow;

            var entity = new BarComment
            {
                Id        = id,
                BarId     = barId,
                UserId    = userId,
                Body      = "testbody",
                CreatedOn = createdOn
            };

            mapperMock.Setup(x => x.MapFrom(It.IsAny <BarComment>())).Returns(It.IsAny <BarCommentDto>);

            using (var arrangeContext = new CWContext(options))
            {
                await arrangeContext.BarComments.AddAsync(entity);

                await arrangeContext.SaveChangesAsync();
            }

            using (var assertContext = new CWContext(options))
            {
                //Act & Assert
                var sut = new BarCommentService(assertContext, mapperMock.Object);

                await Assert.ThrowsExceptionAsync <BusinessLogicException>(() => sut.EditAsync(fakeId, "newbody"));
            }
        }
示例#22
0
        public async Task ThrowWhen_NoBanIsFound()
        {
            //Arrange
            var options    = TestUtilities.GetOptions(nameof(CorrectlyRemoveBan_WhenParamsAreValid));
            var mapperMock = new Mock <IDtoMapper <User, UserDto> >();
            var testGuid   = Guid.NewGuid();
            var userTest   = new User {
                Id = testGuid, UserName = "******", IsBanned = true, LockoutEnabled = true, LockoutEnd = DateTime.UtcNow.AddDays(1)
            };

            using (var assertContext = new CWContext(options))
            {
                //Act & Assert
                await assertContext.Users.AddAsync(userTest);

                await assertContext.SaveChangesAsync();

                var sut = new BanService(assertContext, mapperMock.Object);
                await Assert.ThrowsExceptionAsync <BusinessLogicException>(() => sut.RemoveAsync(testGuid));
            }
        }
        public async Task SetCorrectParam_WhenValueIsValid()
        {
            //Arrange
            var options    = TestUtilities.GetOptions(nameof(SetCorrectParam_WhenValueIsValid));
            var mapperMock = new Mock <IDtoMapper <Ingredient, IngredientDto> >();
            var testGuid   = Guid.NewGuid();

            var entity = new Ingredient
            {
                Id        = testGuid,
                Name      = "djodjan",
                IsDeleted = false
            };

            var ingredientDto = new IngredientDto
            {
                Id   = testGuid,
                Name = "djodjan",
            };

            mapperMock.Setup(x => x.MapFrom(It.IsAny <Ingredient>())).Returns(ingredientDto);

            using (var arrangeContext = new CWContext(options))
            {
                await arrangeContext.Ingredients.AddAsync(entity);

                await arrangeContext.SaveChangesAsync();
            }

            using (var assertContext = new CWContext(options))
            {
                //Act & Assert
                var sut    = new IngredientService(assertContext, mapperMock.Object);
                var result = await sut.EditAsync(testGuid, "newDjodjan");

                var ingredient = await assertContext.Ingredients.FirstAsync();

                Assert.AreEqual("newDjodjan", ingredient.Name);
            }
        }
示例#24
0
        public async Task ReturnCorrectDtoWhen_ParamsAreValid()
        {
            //Arrange
            var options            = TestUtilities.GetOptions(nameof(ReturnCorrectDtoWhen_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 bar1 = new Bar
            {
                Id   = testGuid,
                Name = "testBar1",
            };

            var barDto1 = new BarDto
            {
                Id   = testGuid,
                Name = "testBar1",
            };

            mapperMock.Setup(x => x.MapFrom(It.IsAny <Bar>())).Returns(barDto1);

            using (var arrangeContext = new CWContext(options))
            {
                await arrangeContext.Bars.AddAsync(bar1);

                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.GetBarCocktailsAsync(testGuid);

                Assert.IsInstanceOfType(result, typeof(BarDto));
                Assert.AreEqual("testBar1", result.Name);
            }
        }
        public async Task CorrectlyUpdateEntity()
        {
            //Arrange
            var options            = TestUtilities.GetOptions(nameof(CorrectlyUpdateEntity));
            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 bar = new Bar
            {
                Id      = testGuid,
                Name    = "testBar",
                Info    = "testInfo",
                Address = "testAddress",
                Phone   = "111-333-666",
            };

            using (var arrangeContext = new CWContext(options))
            {
                await arrangeContext.Bars.AddAsync(bar);

                await arrangeContext.SaveChangesAsync();
            }

            mapperMock.Setup(x => x.MapFrom(It.IsAny <Bar>())).Returns(It.IsAny <BarDto>);

            using (var assertContext = new CWContext(options))
            {
                var sut    = new BarService(assertContext, mapperMock.Object, searchMapperMock.Object, cocktailMapperMock.Object);
                var result = await sut.EditAsync(testGuid, "newTestName", "newTestInfo", "newTestAddress", "111-333-6667");

                var edittedBar = await assertContext.Bars.FirstAsync();

                Assert.AreEqual("newTestName", edittedBar.Name);
                Assert.AreEqual("newTestInfo", edittedBar.Info);
                Assert.AreEqual("newTestAddress", edittedBar.Address);
                Assert.AreEqual("111-333-6667", edittedBar.Phone);
            }
        }
示例#26
0
        public async Task ReturnCorrectType_ValidValueIsPassed()
        {
            //Arrange
            var options            = TestUtilities.GetOptions(nameof(ReturnCorrectCountWhen_ValidValueIsPassed));
            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 testGuid2          = Guid.NewGuid();

            var bar1 = new Bar
            {
                Id   = testGuid,
                Name = "testBar1",
            };
            var bar2 = new Bar
            {
                Id   = testGuid2,
                Name = "testBar2",
            };

            using (var arrangeContext = new CWContext(options))
            {
                await arrangeContext.Bars.AddAsync(bar1);

                await arrangeContext.Bars.AddAsync(bar2);

                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.GetPageCountAsync(10);

                Assert.IsInstanceOfType(result, typeof(int));
            }
        }
示例#27
0
        public void CocktailServiceConstructor_CreatesInstance()
        {
            //Arrange
            var options = TestUtilities.GetOptions(nameof(CocktailServiceConstructor_CreatesInstance));

            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>();

            using (var assertContext = new CWContext(options))
            {
                //Act
                var sut = new CocktailService(assertContext, mapperMock.Object, barMapperMock.Object,
                                              cocktailDetailsMapperMock.Object, ingredientServiceMock.Object, cocktailIngredientServiceMock.Object);

                //Assert
                Assert.IsNotNull(sut);
            }
        }
        public async Task CorrectlyCreateBar()
        {
            //Arrange
            var options            = TestUtilities.GetOptions(nameof(CorrectlyCreateBar));
            var mapperMock         = new Mock <IDtoMapper <Bar, BarDto> >();
            var searchMapperMock   = new Mock <IDtoMapper <Bar, SearchBarDto> >();
            var cocktailMapperMock = new Mock <IDtoMapper <Cocktail, CocktailDto> >();

            var entityDto = new BarDto
            {
                Id        = Guid.NewGuid(),
                Name      = "testBar",
                Info      = "testInfo",
                Address   = "testAddress",
                ImagePath = "testImagePath",
                Phone     = "111-333-666"
            };

            mapperMock.Setup(x => x.MapFrom(It.IsAny <Bar>())).Returns(entityDto);

            using (var assertContext = new CWContext(options))
            {
                //Act & Assert
                var sut    = new BarService(assertContext, mapperMock.Object, searchMapperMock.Object, cocktailMapperMock.Object);
                var result = await sut.CreateAsync(entityDto);

                Assert.IsInstanceOfType(result, typeof(BarDto));
                Assert.AreEqual("testBar", result.Name);
                Assert.AreEqual("testInfo", result.Info);
                Assert.AreEqual("testAddress", result.Address);
                Assert.AreEqual("testImagePath", result.ImagePath);
                Assert.AreEqual("111-333-666", result.Phone);
                Assert.AreEqual(entityDto.Name, result.Name);
                Assert.AreEqual(entityDto.Info, result.Info);
                Assert.AreEqual(entityDto.Address, result.Address);
                Assert.AreEqual(entityDto.ImagePath, result.ImagePath);
                Assert.AreEqual(entityDto.Phone, result.Phone);
            }
        }
示例#29
0
        public async Task CorrectlyDeleteBar()
        {
            //Arrange
            var options            = TestUtilities.GetOptions(nameof(CorrectlyDeleteBar));
            var mapperMock         = new Mock <IDtoMapper <Bar, BarDto> >();
            var searchMapperMock   = new Mock <IDtoMapper <Bar, SearchBarDto> >();
            var cocktailMapperMock = new Mock <IDtoMapper <Cocktail, CocktailDto> >();
            var guid = Guid.NewGuid();

            var entity = new Bar
            {
                Id        = guid,
                Name      = "testBar",
                Info      = "testInfo",
                Address   = "testAddress",
                ImagePath = "testImagePath",
                Phone     = "111-333-666"
            };

            using (var actContext = new CWContext(options))
            {
                //Act
                await actContext.Bars.AddAsync(entity);

                await actContext.SaveChangesAsync();

                var service = new BarService(actContext, mapperMock.Object, searchMapperMock.Object, cocktailMapperMock.Object);
                var result  = await service.DeleteAsync(guid);

                await actContext.SaveChangesAsync();
            }
            using (var assertContext = new CWContext(options))
            {
                //Assert
                var result = await assertContext.Bars.FirstAsync();

                Assert.AreEqual(true, result.IsDeleted);
            }
        }
        public async Task ReturnInstanceOfTypeIngredientDto()
        {
            //Arrange
            var options    = TestUtilities.GetOptions(nameof(ReturnInstanceOfTypeIngredientDto));
            var mapperMock = new Mock <IDtoMapper <Ingredient, IngredientDto> >();
            var testGuid   = new Guid("b9653c65-2311-4d57-a95b-6522d7bc88f6");

            var entity = new Ingredient
            {
                Id        = testGuid,
                Name      = "djodjan6",
                IsDeleted = false
            };

            var ingredientDto = new IngredientDto
            {
                Id   = testGuid,
                Name = "djodjan",
            };

            mapperMock.Setup(x => x.MapFrom(It.IsAny <Ingredient>())).Returns(ingredientDto);

            using (var actContext = new CWContext(options))
            {
                //Act
                await actContext.Ingredients.AddAsync(entity);

                await actContext.SaveChangesAsync();
            }

            using (var assertContext = new CWContext(options))
            {
                //Assert
                var sut        = new IngredientService(assertContext, mapperMock.Object);
                var ingredient = await sut.GetIngredientAsync(testGuid);

                Assert.IsInstanceOfType(ingredient, typeof(IngredientDto));
            }
        }