示例#1
0
        public async Task IsReviewModified_WithReviewIdAndContentAndRating_ShouldReturnFalse()
        {
            // Arrange
            FitStoreDbContext database = this.Database;

            DatabaseHelper.SeedData(database);

            IReviewService reviewService = new ReviewService(database);

            // Act
            bool result = await reviewService.IsReviewModified(reviewId, content, rating);

            // Assert
            result.Should().Be(false);
        }
示例#2
0
        public async Task IsUserAuthor_WithCommentIdAndAuthorId_ShouldReturnFalse()
        {
            // Arrange
            FitStoreDbContext database = this.Database;

            DatabaseHelper.SeedData(database);

            IReviewService reviewService = new ReviewService(database);

            // Act
            bool result = await reviewService.IsUserAuthor(reviewId, string.Empty);

            // Assert
            result.Should().Be(false);
        }
        public async Task IsManufacturerModified_WithManufacturerIdAndName_ShouldReturnFalse()
        {
            // Arrange
            FitStoreDbContext database = this.Database;

            DatabaseHelper.SeedData(database);

            IManagerManufacturerService managerManufacturerService = new ManagerManufacturerService(database);

            // Act
            bool result = await managerManufacturerService.IsManufacturerModified(firstNotDeletedManufacturerId, firstNotDeletedManufacturerName, manufacturerAddres);

            // Assert
            result.Should().Be(false);
        }
示例#4
0
        public async Task IsReviewExistingById_WithReviewId_ShouldReturnFalse()
        {
            // Arrange
            FitStoreDbContext database = this.Database;

            DatabaseHelper.SeedData(database);

            IReviewService reviewService = new ReviewService(database);

            // Act
            bool result = await reviewService.IsReviewExistingById(nonExistingReviewId, false);

            // Assert
            result.Should().Be(false);
        }
示例#5
0
        public async Task TotalCountAsync_WithShouldSeeDeletedReviewsFalse_ShouldReturnOnlyNotDeletedReviews()
        {
            // Arrange
            FitStoreDbContext database = this.Database;

            DatabaseHelper.SeedData(database);

            IReviewService reviewService = new ReviewService(database);

            // Act
            int result = await reviewService.TotalCountAsync(false);

            // Assert
            result.Should().Be(10);
        }
示例#6
0
        public async Task TotalOrdersAsync_WithUsername_ShouldReturnValidCount()
        {
            // Arrange
            FitStoreDbContext database = this.Database;

            DatabaseHelper.SeedData(database);

            IUserService userService = new UserService(database, null);

            // Act
            int result = await userService.TotalOrdersAsync(username);

            // Assert
            result.Should().Be(2);
        }
        public async Task IsCategoryExistingByName_WithCategoryName_ShouldReturnTrue()
        {
            // Arrange
            FitStoreDbContext database = this.Database;

            DatabaseHelper.SeedData(database);

            ICategoryService categoryService = new CategoryService(database);

            // Act
            bool result = await categoryService.IsCategoryExistingByName(categoryName);

            // Assert
            result.Should().Be(true);
        }
示例#8
0
        public async Task IsUserAuthor_WithReviewIdAndAuthorId_ShouldReturnTrue()
        {
            // Arrange
            FitStoreDbContext database = this.Database;

            DatabaseHelper.SeedData(database);

            IReviewService reviewService = new ReviewService(database);

            // Act
            bool result = await reviewService.IsUserAuthor(reviewId, userId);

            // Assert
            result.Should().Be(true);
        }
        public async Task IsCategoryExistingById_WithNonExistingCategoryIdAndIsDeletedIsFalse_ShouldReturnFalse()
        {
            // Arrange
            FitStoreDbContext database = this.Database;

            DatabaseHelper.SeedData(database);

            ICategoryService categoryService = new CategoryService(database);

            // Act
            bool result = await categoryService.IsCategoryExistingById(nonExistingCategoryId, false);

            // Assert
            result.Should().Be(false);
        }
        public async Task GetEditModelAsync_WithCategoryId_ShouldReturnValidServiceModel()
        {
            // Arrange
            FitStoreDbContext database = this.Database;

            DatabaseHelper.SeedData(database);

            IManagerCategoryService managerCategoryService = new ManagerCategoryService(database);

            // Act
            CategoryBasicServiceModel result = await managerCategoryService.GetEditModelAsync(firstNotDeletedCategoryId);

            // Assert
            result.Id.Should().Be(firstNotDeletedCategoryId);
            result.Name.Should().Be(firstNotDeletedCategoryName);
        }
示例#11
0
        public async Task CreateAsync_ShouldCreateNewSupplement()
        {
            // Arrange
            FitStoreDbContext database = this.Database;

            IManagerSupplementService managerSupplementService = new ManagerSupplementService(database);

            // Act
            await managerSupplementService.CreateAsync(supplementName, null, 0, 0, new byte[0], DateTime.UtcNow, subcategoryId, manufacturerId);

            // Assert
            Supplement supplement = database.Supplements.Find(1);

            supplement.Id.Should().Be(1);
            supplement.Name.Should().Be(supplementName);
        }
        public async Task CreateAsync_WithName_ShouldCreateNewCategory()
        {
            // Arrange
            FitStoreDbContext database = this.Database;

            IManagerCategoryService managerCategoryService = new ManagerCategoryService(database);

            // Act
            await managerCategoryService.CreateAsync(categoryName);

            // Assert
            Category category = database.Categories.Find(1);

            category.Id.Should().Be(1);
            category.Name.Should().Be(categoryName);
        }
示例#13
0
        public async Task GetProfileByUsernameAsync_WithUsernameAndPage_ShouldReturnValidViewModel()
        {
            // Arrange
            FitStoreDbContext database = this.Database;

            DatabaseHelper.SeedData(database);

            IUserService userService = new UserService(database, null);

            // Act
            UserProfileServiceModel result = await userService.GetProfileByUsernameAsync(username, page);

            // Assert
            result.Username.Should().Be(username);
            result.Orders.Count().Should().Be(2);
        }
示例#14
0
        public async Task DeleteAsync_WithCommentId_ShouldDeleteCommentSuccessfully()
        {
            // Arrange
            FitStoreDbContext database = this.Database;

            DatabaseHelper.SeedData(database);

            ICommentService commentService = new CommentService(database);

            // Act
            await commentService.DeleteAsync(commentId);

            // Assert
            Comment comment = database.Comments.Find(commentId);

            comment.IsDeleted.Should().Be(true);
        }
示例#15
0
        public async Task GetDetailsByIdAsync_WithSupplementIdAndPage_ShouldReturnValidServiceModel()
        {
            // Arrange
            FitStoreDbContext database = this.Database;

            DatabaseHelper.SeedData(database);

            IManufacturerService manufacturerService = new ManufacturerService(database);

            // Act
            ManufacturerDetailsServiceModel result = await manufacturerService.GetDetailsByIdAsync(firstManufacturerId, page);

            // Assert
            result.Id.Should().Be(1);
            result.Name.Should().Be("Manufacturer 1");
            result.Supplements.Count().Should().Be(2);
        }
示例#16
0
        private static void SeedSuplements(FitStoreDbContext database)
        {
            Task.Run(async() =>
            {
                if (!await database.Supplements.AnyAsync())
                {
                    await database.Supplements.AddRangeAsync(proteinSupplements);
                    await database.Supplements.AddRangeAsync(aminoAcidsSupplements);
                    await database.Supplements.AddRangeAsync(creatineSupplements);
                    await database.Supplements.AddRangeAsync(vitaminsSupplements);

                    await database.SaveChangesAsync();
                }
            })
            .GetAwaiter()
            .GetResult();
        }
示例#17
0
        private static void SeedManufacturers(FitStoreDbContext database)
        {
            Task.Run(async() =>
            {
                string[] manufacturerNames = new[]
                {
                    OptimumNutrition,
                    ControlledLabs,
                    MusclePharm,
                    BulkPowders,
                    Gaspari,
                    Bsn
                };

                string[] manufacturerAddressNames = new[]
                {
                    OptimumNutritionAddress,
                    ControlledLabsAddress,
                    MusclePharmAddress,
                    BulkPowdersAddress,
                    GaspariAddress,
                    BsnAddress
                };

                int count = 0;

                foreach (string manufacturerName in manufacturerNames)
                {
                    bool isManufacturerExisting = await database.Manufacturers.AnyAsync(m => m.Name == manufacturerName);

                    if (!isManufacturerExisting)
                    {
                        Manufacturer manufacturer = new Manufacturer
                        {
                            Name    = manufacturerName,
                            Address = manufacturerAddressNames[count++]
                        };

                        await database.Manufacturers.AddAsync(manufacturer);
                        await database.SaveChangesAsync();
                    }
                }
            })
            .GetAwaiter()
            .GetResult();
        }
示例#18
0
        public async Task GetDetailsByUsernameAsync_WithUsername_ShouldReturnValidServiceModel()
        {
            // Arrange
            FitStoreDbContext database = this.Database;

            DatabaseHelper.SeedData(database);

            IAdminUserService adminUserService = new AdminUserService(database);

            // Act
            AdminUserDetailsServiceModel result = await adminUserService.GetDetailsByUsernameAsync(firstUsername);

            // Assert
            result.Username.Should().Be(firstUsername);
            result.Address.Should().Be(firstAddress);
            result.Email.Should().Be(firstEmail);
        }
示例#19
0
        public async Task GetEditModelAsync_WithReviewId_ShouldReturnValidViewModel()
        {
            // Arrange
            FitStoreDbContext database = this.Database;

            DatabaseHelper.SeedData(database);

            IReviewService reviewService = new ReviewService(database);

            // Act
            ReviewBasicServiceModel result = await reviewService.GetEditModelAsync(reviewId);

            // Assert
            result.Id.Should().Be(reviewId);
            result.Content.Should().Be(content);
            result.Rating.Should().Be(rating);
        }
示例#20
0
        public async Task GetDetailsByIdAsync_WithOrderId_ShouldReturnValidServiceModel()
        {
            // Arrange
            FitStoreDbContext database = this.Database;

            DatabaseHelper.SeedData(database);

            IOrderService orderService = new OrderService(database);

            // Act
            OrderDetailsServiceModel result = await orderService.GetDetailsByIdAsync(orderId);

            // Assert
            result.Id.Should().Be(1);
            result.TotalPrice.Should().Be(1);
            result.Supplements.Count().Should().Be(1);
        }
示例#21
0
        public void RemoveAllSupplementsFromCartAsync_WithSupplementId_ShouldReturnFalseWithSupplementNotInShoppingCart()
        {
            // Arrange
            FitStoreDbContext database = this.Database;

            DatabaseHelper.SeedData(database);

            ShoppingCart shoppingCart = new ShoppingCart();

            IOrderService orderService = new OrderService(database);

            // Act
            bool result = orderService.RemoveAllSupplementsFromCartAsync(supplementId, shoppingCart);

            // Assert
            result.Should().Be(false);
        }
示例#22
0
        public async Task GetEditProfileByUsernameAsync_WithUsername_ShouldReturnValidViewModel()
        {
            // Arrange
            FitStoreDbContext database = this.Database;

            DatabaseHelper.SeedData(database);

            IUserService userService = new UserService(database, null);

            // Act
            UserEditProfileServiceModel result = await userService.GetEditProfileByUsernameAsync(username);

            // Assert
            result.Address.Should().Be("Address 1");
            result.Email.Should().Be("Email 1");
            result.PhoneNumber.Should().Be("Phone 1");
        }
示例#23
0
        public async Task GetChangePasswordByUsernameAsync_WithUsername_ShouldReturnValidViewModel()
        {
            // Arrange
            FitStoreDbContext database = this.Database;

            DatabaseHelper.SeedData(database);

            IUserService userService = new UserService(database, null);

            // Act
            UserChangePasswordServiceModel result = await userService.GetChangePasswordByUsernameAsync(username);

            // Assert
            result.OldPassword.Should().BeNull();
            result.NewPassword.Should().BeNull();
            result.ConfirmPassword.Should().BeNull();
        }
        public async Task CreateAsync_WithNameAndAddress_ShouldCreateNewManufacturer()
        {
            // Arrange
            FitStoreDbContext database = this.Database;

            IManagerManufacturerService managerManufacturerService = new ManagerManufacturerService(database);

            // Act
            await managerManufacturerService.CreateAsync(manufacturerName, manufacturerAddres);

            // Assert
            Manufacturer manufacturer = database.Manufacturers.Find(1);

            manufacturer.Id.Should().Be(1);
            manufacturer.Name.Should().Be(manufacturerName);
            manufacturer.Address.Should().Be(manufacturerAddres);
        }
示例#25
0
        public async Task CreateAsync_ShouldCreateNewComment()
        {
            // Arrange
            FitStoreDbContext database = this.Database;

            ICommentService commentService = new CommentService(database);

            // Act
            await commentService.CreateAsync(content, userId, supplementId);

            // Assert
            Comment comment = database.Comments.Find(commentId);

            comment.Content.Should().Be(content);
            comment.AuthorId.Should().Be(userId);
            comment.SupplementId.Should().Be(supplementId);
        }
示例#26
0
        public async Task IsLastAvailableSupplementAlreadyAdded_WithSupplementIdAndShoppingCartWithoutSupplement_ShouldReturnFalse()
        {
            // Arrange
            FitStoreDbContext database = this.Database;

            DatabaseHelper.SeedData(database);

            ShoppingCart shoppingCart = new ShoppingCart();

            IOrderService orderService = new OrderService(database);

            // Act
            bool result = await orderService.IsLastAvailableSupplementAlreadyAdded(supplementId, shoppingCart);

            // Assert
            result.Should().Be(false);
        }
示例#27
0
        public async Task DeleteAsync_WithReviewId_ShouldDeleteCommentSuccessfully()
        {
            // Arrange
            FitStoreDbContext database = this.Database;

            DatabaseHelper.SeedData(database);

            IReviewService reviewService = new ReviewService(database);

            // Act
            await reviewService.DeleteAsync(reviewId);

            // Assert
            Review review = database.Reviews.Find(reviewId);

            review.IsDeleted.Should().Be(true);
        }
示例#28
0
        public async Task ChangePermission_WithUser_ShouldChangeUserPermission()
        {
            // Arrange
            FitStoreDbContext database = this.Database;

            DatabaseHelper.SeedData(database);

            User user = database.Users.Find(firstUserId);

            IModeratorUserService moderatorUserService = new ModeratorUserService(database);

            // Act
            await moderatorUserService.ChangePermission(user);

            // Assert
            user.IsRestricted.Should().Be(true);
        }
        public async Task EditAsync_WithCategoryIdAndName_ShouldEditCategory()
        {
            // Arrange
            FitStoreDbContext database = this.Database;

            DatabaseHelper.SeedData(database);

            IManagerCategoryService managerCategoryService = new ManagerCategoryService(database);

            // Act
            await managerCategoryService.EditAsync(firstNotDeletedCategoryId, categoryName);

            // Assert
            Category category = database.Categories.Find(firstNotDeletedCategoryId);

            category.Id.Should().Be(firstNotDeletedCategoryId);
            category.Name.Should().Be(categoryName);
        }
示例#30
0
        public async Task GetEditModelAsync_WithCommentId_ShouldReturnValidViewModel()
        {
            // Arrange
            FitStoreDbContext database = this.Database;

            DatabaseHelper.SeedData(database);

            ICommentService commentService = new CommentService(database);

            // Act
            CommentBasicServiceModel result = await commentService.GetEditModelAsync(commentId);

            // Assert
            result.Id.Should().Be(commentId);
            result.Content.Should().Be(content);
            result.AuthorId.Should().Be(userId);
            result.SupplementId.Should().Be(supplementId);
        }