示例#1
0
        public async Task Invalidate_request_when_item_does_not_exist()
        {
            // Arrange
            var sut = new DeleteBackpackItemValidator(_dbContext);

            var contributorSub = Guid.NewGuid().ToString();
            var backpackId     = Guid.NewGuid();

            var contributor = new User
            {
                FirstName = "Contributor",
                LastName  = "User",
                Sub       = contributorSub
            };

            var backpack = new Domain.Entities.Backpack
            {
                Id   = backpackId,
                Name = "A backpack"
            };

            await _dbContext.Users.AddAsync(contributor);

            await _dbContext.Backpacks.AddAsync(backpack);

            await _dbContext.BackpacksToUsers.AddAsync(new BackpackToUser { Backpack = backpack, User = contributor });

            await _dbContext.SaveChangesAsync();

            // Act
            bool isValid = await sut.IsValidAsync(new DeleteBackpackItem(contributorSub, Guid.NewGuid()));

            // Assert
            isValid.ShouldBeFalse();
        }
示例#2
0
        public async Task Invalidate_when_user_not_contributor_of_related_backpack()
        {
            // Arrange

            var sut = new DeleteBackpackItemValidator(_dbContext);

            var userSub        = Guid.NewGuid().ToString();
            var contributorSub = Guid.NewGuid().ToString();
            var backpackItemId = Guid.NewGuid();
            var backpackId     = Guid.NewGuid();

            var nonContributor = new User
            {
                FirstName = "NonContributor",
                LastName  = "User",
                Sub       = userSub
            };

            var contributor = new User
            {
                FirstName = "Contributor",
                LastName  = "User",
                Sub       = contributorSub
            };

            var backpack = new Domain.Entities.Backpack
            {
                Id   = backpackId,
                Name = "A backpack"
            };

            await _dbContext.BackpackItems.AddAsync(new BackpackItem
            {
                Id       = backpackItemId,
                Name     = "test-backpack-item",
                Backpack = backpack
            });

            await _dbContext.Users.AddAsync(nonContributor);

            await _dbContext.Users.AddAsync(contributor);

            await _dbContext.Backpacks.AddAsync(backpack);

            await _dbContext.BackpacksToUsers.AddAsync(new BackpackToUser { Backpack = backpack, User = contributor });

            await _dbContext.SaveChangesAsync();

            // Act
            bool isValid = await sut.IsValidAsync(new DeleteBackpackItem(nonContributor.Sub, backpackItemId));

            // Assert
            isValid.ShouldBeFalse();
        }
示例#3
0
        public async Task Invalidate_request_when_no_user_found_by_sub(string sub)
        {
            // Arrange
            var sut = new DeleteBackpackItemValidator(_dbContext);

            // Act
            bool isValid = await sut.IsValidAsync(new DeleteBackpackItem(sub, Guid.NewGuid()));

            // Assert
            isValid.ShouldBeFalse();
        }