public async Task AddPrivateMessageCommandHandler_AddsMessage()
        {
            //Arrange
            await Setup_Add2UsersForPrivateMessagesTest();

            AllMarkt.Entities.User user1 = await AllMarktContextIM.Users.FirstOrDefaultAsync(user => user.Email == "*****@*****.**");

            AllMarkt.Entities.User user2 = await AllMarktContextIM.Users.FirstOrDefaultAsync(user => user.Email == "*****@*****.**");

            int before = AllMarktContextIM.PrivateMessages.Count();
            var addPrivateMessageCommand = new AddPrivateMessageCommand
            {
                Title      = "1 to 2",
                Text       = "Hello",
                DateSent   = DateTime.Now,
                DateRead   = null,
                SenderId   = user1.Id,
                ReceiverId = user2.Id
            };

            //Act
            await _addPrivateMessageCommandHandler.Handle(addPrivateMessageCommand, CancellationToken.None);

            //Assert
            (AllMarktContextIM.PrivateMessages.Count() - before).Should().Be(1);
        }
예제 #2
0
        public async Task GetAllCustomersQueryHandler_ReturnsCustomers()
        {
            //Arrange
            var user = new AllMarkt.Entities.User
            {
                Email       = "*****@*****.**",
                DisplayName = "tets"
            };

            AllMarktContextIM.Users.Add(user);
            await AllMarktContextIM.SaveChangesAsync();

            AllMarktContextIM.Customers.Add(new AllMarkt.Entities.Customer
            {
                User        = user,
                UserId      = user.Id,
                Address     = "address",
                PhoneNumber = "0123456789",
            });

            await AllMarktContextIM.SaveChangesAsync();

            //Act
            var customers = await _getAllCustomersQueryHandler.Handle(new GetAllCustomersQuery(), CancellationToken.None);

            //assert
            customers.Count().Should().Be(1);
        }
예제 #3
0
        public async Task GetAllUsersQueryHandler_ReturnsExistingUsers()
        {
            //Arrange
            var user1 = new AllMarkt.Entities.User
            {
                Email       = "*****@*****.**",
                Password    = "******",
                DisplayName = "name1"
            };
            var user2 = new AllMarkt.Entities.User
            {
                Email       = "*****@*****.**",
                Password    = "******",
                DisplayName = "name2"
            };
            await AllMarktContextIM.Users.AddAsync(user1);

            await AllMarktContextIM.Users.AddAsync(user2);

            await AllMarktContextIM.SaveChangesAsync();

            //Act
            var result = await _getAllUsersQueryHandler.Handle(new GetAllUsersQuery(), CancellationToken.None);

            //Assert
            result.Count().Should().Be(2);
        }
        public async Task GetAllShopCommentsQueryHandler_ReturnsExistingComments()
        {
            //Arrange
            var user = new AllMarkt.Entities.User
            {
                Email       = "*****@*****.**",
                Password    = "******",
                DisplayName = "UserTest"
            };

            var shop = new AllMarkt.Entities.Shop
            {
                Address           = "aaaaa",
                Comments          = null,
                CUI               = "aaaaddd",
                IBAN              = "aaaaa",
                Orders            = null,
                PhoneNumber       = "0123654789",
                ProductCategories = null,
                ShopCategoryLink  = null,
                SocialCapital     = 4,
                User              = user
            };

            AllMarktContextIM.Users.Add(user);
            AllMarktContextIM.Shops.Add(shop);
            await AllMarktContextIM.SaveChangesAsync();

            AllMarktContextIM.ShopComments.Add(new AllMarkt.Entities.ShopComment
            {
                Rating  = 2,
                Text    = "naspa rau",
                AddedBy = user,
                Shop    = shop,
            });

            AllMarktContextIM.ShopComments.Add(new AllMarkt.Entities.ShopComment
            {
                Rating  = 5,
                Text    = "super fain",
                AddedBy = user,
                Shop    = shop
            });

            await AllMarktContextIM.SaveChangesAsync();

            //Act
            var result = await _getAllShopCommentsQueryHandler.Handle(new GetAllShopCommentsQuery(), CancellationToken.None);

            //Assert
            result.Count().Should().Be(2);
        }
        public async Task GetAllReceivedPrivateMessagesQueryHandler_ReturnsEmpty()
        {
            //Arrange
            await Setup_Add2UsersForPrivateMessagesTest();

            AllMarkt.Entities.User user1 = await AllMarktContextIM.Users.FirstOrDefaultAsync(x => x.Email == "*****@*****.**");

            //Act
            var result = await _getAllReceivedPrivateMessagesWithUserIdQueryHandler.Handle(new GetAllReceivedPrivateMessagesByUserQuery(user1.Id), CancellationToken.None);

            //Assert
            result.Count().Should().Be(0);
        }
예제 #6
0
        public async Task AddProductCommentCommandHandle_AddsShopComment()
        {
            //Arrange
            var productCategory = new AllMarkt.Entities.ProductCategory {
                Name = "category", Description = "description"
            };

            AllMarktContextIM.ProductCategories.Add(productCategory);
            AllMarktContextIM.SaveChanges();

            var user = new AllMarkt.Entities.User {
                Email       = "*****@*****.**",
                Password    = "******",
                DisplayName = "UserTest"
            };

            var product = new AllMarkt.Entities.Product
            {
                Name            = "testProduct",
                Description     = "testDescription",
                Price           = 20,
                ImageURI        = "",
                State           = true,
                ProductCategory = productCategory
            };

            AllMarktContextIM.Users.Add(user);
            AllMarktContextIM.Products.Add(product);
            await AllMarktContextIM.SaveChangesAsync();

            var addProductCommentCommand = new AddProductCommentCommand
            {
                Rating        = 5,
                Text          = "cel mai bun produs",
                ProductId     = product.Id,
                AddedByUserId = user.Id
            };

            //Act
            await _addProductCommentCommandHandler.Handle(addProductCommentCommand, CancellationToken.None);

            //Assert
            AllMarktContextIM.ProductComments
            .Should()
            .Contain(productComment =>
                     productComment.Rating == addProductCommentCommand.Rating &&
                     productComment.Text == addProductCommentCommand.Text &&
                     productComment.AddedBy.Id == addProductCommentCommand.AddedByUserId &&
                     productComment.Product.Id == addProductCommentCommand.ProductId);
        }
        public async Task EditPrivateMessageCommandHandler_UpdatesExistingPrivateMessage()
        {
            //arrange
            await Setup_Add2UsersForPrivateMessagesTest();

            AllMarkt.Entities.User user1 = await AllMarktContextIM.Users.FirstOrDefaultAsync(user => user.Email == "*****@*****.**");

            AllMarkt.Entities.User user2 = await AllMarktContextIM.Users.FirstOrDefaultAsync(user => user.Email == "*****@*****.**");

            var privateMessage = new AllMarkt.Entities.PrivateMessage
            {
                Title     = "stock is best medi gun",
                Text      = "text",
                DateSent  = DateTime.Now,
                DateRead  = null,
                Sender    = user1,
                Receiver  = user2,
                DeletedBy = null
            };

            await AllMarktContextIM.PrivateMessages.AddAsync(privateMessage);

            await AllMarktContextIM.SaveChangesAsync();

            var existingPrivateMessage = await AllMarktContextIM.PrivateMessages.FirstOrDefaultAsync(PM => PM.Title == "stock is best medi gun");

            var editPrivateMessageCommand = new EditPrivateMessageCommand
            {
                Id         = existingPrivateMessage.Id,
                Title      = "kritzkrieg is best medi gun",
                Text       = existingPrivateMessage.Text,
                DateSent   = existingPrivateMessage.DateSent,
                DateRead   = existingPrivateMessage.DateRead,
                SenderId   = existingPrivateMessage.Sender.Id,
                ReceiverId = existingPrivateMessage.Receiver.Id,
                DeletedBy  = AllMarkt.Entities.DeletedBy.Receiver
            };

            //Act
            await _editPrivateMessageCommandHandler.Handle(editPrivateMessageCommand, CancellationToken.None);

            //Assert
            AllMarktContextIM.PrivateMessages.Should().Contain(PM => PM.Id == editPrivateMessageCommand.Id);

            privateMessage.Title.Should().Be(editPrivateMessageCommand.Title);
            privateMessage.DeletedBy.Should().Be(editPrivateMessageCommand.DeletedBy);
        }
예제 #8
0
        public async Task AddShopCommentCommandHandle_AddsShopComment()
        {
            //Arrange
            var user = new AllMarkt.Entities.User {
                Email       = "*****@*****.**",
                Password    = "******",
                DisplayName = "UserTest"
            };

            var shop = new AllMarkt.Entities.Shop
            {
                Address           = "aaaaa",
                Comments          = null,
                CUI               = "aaaaddd",
                IBAN              = "aaaaa",
                Orders            = null,
                PhoneNumber       = "0123654789",
                ProductCategories = null,
                ShopCategoryLink  = null,
                SocialCapital     = 4
            };

            AllMarktContextIM.Users.Add(user);
            AllMarktContextIM.Shops.Add(shop);
            await AllMarktContextIM.SaveChangesAsync();

            var addShopCommentCommand = new AddShopCommentCommand
            {
                Rating        = 5,
                Text          = "cel mai bun",
                ShopId        = shop.Id,
                AddedByUserId = user.Id
            };

            //Act
            await _addShopCommentCommandHandler.Handle(addShopCommentCommand, CancellationToken.None);

            //Assert
            AllMarktContextIM.ShopComments
            .Should()
            .Contain(shopComment =>
                     shopComment.Rating == addShopCommentCommand.Rating &&
                     shopComment.Text == addShopCommentCommand.Text &&
                     shopComment.AddedBy.Id == addShopCommentCommand.AddedByUserId &&
                     shopComment.Shop.Id == addShopCommentCommand.ShopId);
        }
예제 #9
0
        public async Task GetAllShopsQueryHandler_IsNotEmpty()
        {
            //Arrange
            var user = new AllMarkt.Entities.User
            {
                Email       = "*****@*****.**",
                DisplayName = "tets"
            };

            AllMarktContextIM.Users.Add(user);
            await AllMarktContextIM.SaveChangesAsync();

            AllMarktContextIM.Shops.Add(new AllMarkt.Entities.Shop
            {
                ProductCategories = null,
                User          = user,
                Address       = "address",
                Comments      = null,
                CUI           = "RO123456789c",
                IBAN          = new string('8', 24),
                PhoneNumber   = "01234567891",
                SocialCapital = 23
            });
            AllMarktContextIM.Shops.Add(new AllMarkt.Entities.Shop
            {
                ProductCategories = null,
                User          = user,
                Address       = "address 2",
                Comments      = null,
                CUI           = "RO12121212c",
                IBAN          = new string('6', 24),
                PhoneNumber   = "01234567891",
                SocialCapital = 5
            });
            await AllMarktContextIM.SaveChangesAsync();

            //Act
            var shops = await _getAllShopsQueryHandler.Handle(new GetAllShopsQuery(), CancellationToken.None);

            //Assert
            shops.Count().Should().Be(2);
        }
        public async Task GetAllPrivateMessagesQueryHandler_ReturnsExactly2Items()
        {
            //Arrange
            await Setup_Add2UsersForPrivateMessagesTest();

            AllMarkt.Entities.User user1 = await AllMarktContextIM.Users.FirstOrDefaultAsync(x => x.Email == "*****@*****.**");

            AllMarkt.Entities.User user2 = await AllMarktContextIM.Users.FirstOrDefaultAsync(x => x.Email == "*****@*****.**");

            AllMarktContextIM.PrivateMessages.Add(new AllMarkt.Entities.PrivateMessage
            {
                Title    = "Title 1",
                Text     = "Text 1",
                DateSent = DateTime.Now,
                DateRead = DateTime.Now,
                Sender   = user1,
                Receiver = user2
            });

            AllMarktContextIM.PrivateMessages.Add(new AllMarkt.Entities.PrivateMessage
            {
                Title    = "Title 1",
                Text     = "Text 1",
                DateSent = DateTime.Now,
                DateRead = DateTime.Now,
                Sender   = user1,
                Receiver = user1
            });

            await AllMarktContextIM.SaveChangesAsync();

            //Act
            var result = await _getAllPrivateMessagesHandler.Handle(new GetAllPrivateMessagesQuery(), CancellationToken.None);

            //Assert
            result.Count().Should().Be(2);
        }
예제 #11
0
        public async Task DeletePrivateMessageCommandHandler_DeletesExistingPrivateMessage()
        {
            //Arrange
            await Setup_Add2UsersForPrivateMessagesTest();

            AllMarkt.Entities.User user1 = await AllMarktContextIM.Users.FirstOrDefaultAsync(user => user.Email == "*****@*****.**");

            AllMarkt.Entities.User user2 = await AllMarktContextIM.Users.FirstOrDefaultAsync(user => user.Email == "*****@*****.**");

            AllMarktContextIM.PrivateMessages.Add(
                new AllMarkt.Entities.PrivateMessage
            {
                Title    = "oddly specific title",
                Text     = "text",
                DateSent = DateTime.Now,
                DateRead = null,
                Sender   = user1,
                Receiver = user2
            });

            await AllMarktContextIM.SaveChangesAsync();

            var existingPrivateMessage = AllMarktContextIM.PrivateMessages.FirstOrDefaultAsync(user => user.Title == "oddly specific title");

            var deletePrivateMessageCommand = new DeletePrivateMessageCommand {
                Id = existingPrivateMessage.Id
            };

            //Act
            await _deletePrivateMessageCommandHandler.Handle(deletePrivateMessageCommand, CancellationToken.None);

            //Assert
            AllMarktContextIM.PrivateMessages
            .Should()
            .NotContain(privateMessage => privateMessage.Id == existingPrivateMessage.Id);
        }
예제 #12
0
        public async Task <int> SetTestDataProductCategoriesQueryAsync()
        {
            var user = new AllMarkt.Entities.User
            {
                Email       = "*****@*****.**",
                DisplayName = "tets"
            };

            _allMarktContextIM.Users.Add(user);
            await _allMarktContextIM.SaveChangesAsync();

            var shop1 = new AllMarkt.Entities.Shop
            {
                Address           = "dddd",
                User              = user,
                Comments          = null,
                CUI               = "ddd",
                IBAN              = "dffddfdfd",
                Orders            = null,
                PhoneNumber       = "0123654789",
                ProductCategories = null,
                ShopCategoryLink  = null,
                SocialCapital     = 3
            };

            var shop2 = new AllMarkt.Entities.Shop
            {
                Address           = "aaa",
                User              = user,
                Comments          = null,
                CUI               = "ddd",
                IBAN              = "aaaa",
                Orders            = null,
                PhoneNumber       = "0123654789",
                ProductCategories = null,
                ShopCategoryLink  = null,
                SocialCapital     = 2
            };

            _allMarktContextIM.Shops.Add(shop1);
            _allMarktContextIM.Shops.Add(shop2);
            await _allMarktContextIM.SaveChangesAsync();

            _allMarktContextIM.ProductCategories.Add(new AllMarkt.Entities.ProductCategory
            {
                Description = "desc1",
                Name        = "name1",
                Shop        = shop1
            });
            _allMarktContextIM.ProductCategories.Add(new AllMarkt.Entities.ProductCategory
            {
                Description = "desc2",
                Name        = "name2",
                Shop        = shop1
            });

            _allMarktContextIM.ProductCategories.Add(new AllMarkt.Entities.ProductCategory
            {
                Description = "desc3",
                Name        = "name3",
                Shop        = shop2
            });
            await _allMarktContextIM.SaveChangesAsync();

            return(shop1.Id);
        }