public async Task GetCustomerByUserIdQueryHandler_ReturnsExisting_UserById()
        {
            //Arrange
            var user1 = new AllMarkt.Entities.User
            {
                Email       = "*****@*****.**",
                Password    = "******",
                DisplayName = "name1",
                UserRole    = UserRole.Customer
            };
            var customer = new AllMarkt.Entities.Customer
            {
                Address     = "address1",
                PhoneNumber = "0123654789",
                UserId      = user1.Id,
                User        = user1,
                Orders      = null
            };

            await AllMarktContextIM.Users.AddAsync(user1);

            await AllMarktContextIM.Customers.AddAsync(customer);

            await AllMarktContextIM.SaveChangesAsync();

            //Act
            var result = await _getCustomerByUserIdQueryHandler.Handle(new GetCustomerByUserIdQuery { Id = user1.Id }, CancellationToken.None);

            //Assert
            result.UserDisplayName.Should().Be("name1");
            result.Address.Should().Be("address1");
            result.PhoneNumber.Should().Be("0123654789");
        }
        public async Task GetShopsByCategoryIdQueryHandler_Returns_ExistingShops()
        {
            //Arrange
            var user = new AllMarkt.Entities.User
            {
                Email       = "*****@*****.**",
                Password    = "******",
                DisplayName = "name1",
                UserRole    = UserRole.Shop
            };

            await AllMarktContextIM.Users.AddAsync(user);

            await AllMarktContextIM.SaveChangesAsync();

            var shop = new AllMarkt.Entities.Shop
            {
                ProductCategories = null,
                User          = user,
                Address       = "address",
                Comments      = null,
                CUI           = "RO123456789c",
                IBAN          = new string('8', 24),
                PhoneNumber   = "01234567891",
                SocialCapital = 23
            };

            var category = new AllMarkt.Entities.Category
            {
                Description = "Desc",
                Name        = "Category1"
            };

            await AllMarktContextIM.Shops.AddAsync(shop);

            await AllMarktContextIM.Categories.AddAsync(category);

            await AllMarktContextIM.SaveChangesAsync();

            var link = new AllMarkt.Entities.ShopCategory
            {
                Shop       = shop,
                ShopId     = shop.Id,
                Category   = category,
                CategoryId = category.Id
            };
            await AllMarktContextIM.ShopCategories.AddAsync(link);

            await AllMarktContextIM.SaveChangesAsync();

            shop.ShopCategoryLink.Add(link);
            category.ShopCategoryLink.Add(link);
            await AllMarktContextIM.SaveChangesAsync();

            //Act
            var shopList = await _getShopsByCategoryIdQueryHandler.Handle(new GetShopsByCategoryIdQuery { Id = category.Id }, CancellationToken.None);

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

            var product1 = new AllMarkt.Entities.Product
            {
                Name        = "prodTest1",
                Description = "prodTestDescriere1",
                Price       = 20
            };
            var product2 = new AllMarkt.Entities.Product
            {
                Name        = "prodTest2",
                Description = "prodTestDescriere2",
                Price       = 20
            };

            AllMarktContextIM.Users.Add(user);
            AllMarktContextIM.Products.Add(product1);
            AllMarktContextIM.Products.Add(product2);
            await AllMarktContextIM.SaveChangesAsync();

            var productComment1 = new AllMarkt.Entities.ProductComment
            {
                Rating    = 2,
                Text      = "naspa rau",
                AddedBy   = user,
                Product   = product1,
                DateAdded = DateTime.UtcNow
            };

            var productComment2 = new AllMarkt.Entities.ProductComment
            {
                Rating    = 4,
                Text      = "super fain",
                AddedBy   = user,
                Product   = product2,
                DateAdded = DateTime.UtcNow
            };

            AllMarktContextIM.ProductComments.Add(productComment1);
            AllMarktContextIM.ProductComments.Add(productComment2);

            await AllMarktContextIM.SaveChangesAsync();

            //Act
            var result = await _getProductCommentsQueryHandler.Handle(new GetProductCommentsByProductIdQuery(product1.Id), CancellationToken.None);

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

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

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

            //Assert
            result.Count().Should().Be(0);
        }
예제 #5
0
        private async Task <AllMarkt.Entities.User> CreateUserWithRoleAsync(UserRole role)
        {
            var user1 = new AllMarkt.Entities.User
            {
                Email       = "*****@*****.**",
                Password    = "******",
                DisplayName = "Name",
                UserRole    = role
            };
            await AllMarktContextIM.Users.AddAsync(user1);

            await AllMarktContextIM.SaveChangesAsync();

            return(user1);
        }
        public async Task GetUserByIdQueryHandler_ReturnsExisting_UserById()
        {
            //Arrange
            var user1 = new AllMarkt.Entities.User
            {
                Email       = "*****@*****.**",
                Password    = "******",
                DisplayName = "name1",
                UserRole    = UserRole.Shop
            };
            var shop = new AllMarkt.Entities.Shop
            {
                CUI               = "3333",
                Address           = "address1",
                PhoneNumber       = "0147852369",
                Comments          = null,
                IBAN              = "SE3550000000054910000003",
                Orders            = null,
                ProductCategories = null,
                SocialCapital     = 3,
                User              = user1,
                UserId            = user1.Id
            };

            await AllMarktContextIM.Users.AddAsync(user1);

            await AllMarktContextIM.Shops.AddAsync(shop);

            await AllMarktContextIM.SaveChangesAsync();

            //Act
            var result = await _getShopByUserIdQueryHandler.Handle(new GetShopByUserIdQuery { UserId = user1.Id }, CancellationToken.None);

            //Assert
            result.UserDisplayName.Should().Be("name1");
            result.Address.Should().Be("address1");
            result.PhoneNumber.Should().Be("0147852369");
            result.IBAN.Should().Be("SE3550000000054910000003");
            result.SocialCapital.Equals(3);
        }
예제 #7
0
        public async Task GetPrivateMessageByIdQueryHandler_ReturnsExisting_PrivateMessageById()
        {
            //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 == "*****@*****.**");

            var message = new AllMarkt.Entities.PrivateMessage
            {
                Title     = "Title 1",
                Text      = "Text 1",
                DateSent  = DateTime.Now,
                DateRead  = null,
                Sender    = user1,
                Receiver  = user2,
                DeletedBy = DeletedBy.Receiver
            };

            await AllMarktContextIM.PrivateMessages.AddAsync(message);

            await AllMarktContextIM.SaveChangesAsync();

            var idAndDisplayNameUser1 = new IdAndDisplayNameUserViewModel(user1);
            var idAndDisplayNameUser2 = new IdAndDisplayNameUserViewModel(user2);

            //Act
            var result = await _getPrivateMessageByIdQueryHandler.Handle(new GetPrivateMessageByIdQuery { Id = message.Id }, CancellationToken.None);

            //Assert
            result.Title.Should().Be("Title 1");
            result.Text.Should().Be("Text 1");
            result.DateRead.Should().Be(null);
            result.Sender.Should().BeEquivalentTo(idAndDisplayNameUser1);
            result.Receiver.Should().BeEquivalentTo(idAndDisplayNameUser2);
            result.DeletedBy.Should().Be(DeletedBy.Receiver);
        }
예제 #8
0
        public async Task GetUserByIdQueryHandler_ReturnsExisting_UserById()
        {
            //Arrange
            var user = new AllMarkt.Entities.User
            {
                Email       = "*****@*****.**",
                Password    = "******",
                DisplayName = "name1",
                UserRole    = UserRole.Shop
            };

            await AllMarktContextIM.Users.AddAsync(user);

            await AllMarktContextIM.SaveChangesAsync();

            //Act
            var result = await _getUserByIdQueryHandler.Handle(new GetUserByIdQuery { Id = user.Id }, CancellationToken.None);

            //Assert
            result.Email.Should().Be("*****@*****.**");
            result.DisplayName.Should().Be("name1");
            result.UserRole.Should().Be(nameof(UserRole.Shop));
        }
        public async Task GetAllSentPrivateMessagesQueryHandler_ReturnsExistingPrivateMessagesForUser()
        {
            //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    = "Title 1",
                Text     = "Text 1",
                DateSent = DateTime.Now,
                DateRead = DateTime.Now,
                Sender   = user1,
                Receiver = user2
            });

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

            await AllMarktContextIM.SaveChangesAsync();

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

            //Assert
            result.Count().Should().Be(1);
        }