Esempio n. 1
0
        public async Task Invalidate_when_invite_is_for_other_user()
        {
            var sut = new AcceptBackpackInviteValidator(_dbContext);

            // Arrange
            string userSub = Guid.NewGuid().ToString();
            var    user    = new DeUrgenta.Domain.Entities.User
            {
                FirstName = "user",
                LastName  = "user",
                Sub       = userSub
            };

            string otherUserSub = Guid.NewGuid().ToString();
            var    otherUser    = new DeUrgenta.Domain.Entities.User
            {
                FirstName = "other",
                LastName  = "user",
                Sub       = otherUserSub
            };

            string adminSub = Guid.NewGuid().ToString();
            var    admin    = new DeUrgenta.Domain.Entities.User
            {
                FirstName = "Admin",
                LastName  = "Test",
                Sub       = adminSub
            };

            await _dbContext.Users.AddAsync(user);

            await _dbContext.Users.AddAsync(admin);

            await _dbContext.Users.AddAsync(otherUser);

            var backpack = new Backpack
            {
                Name = "backpack"
            };

            await _dbContext.Backpacks.AddAsync(backpack);

            var backpackInvite = new BackpackInvite
            {
                InvitationReceiver = user,
                InvitationSender   = admin,
                Backpack           = backpack
            };

            await _dbContext.BackpackInvites.AddAsync(backpackInvite);

            await _dbContext.SaveChangesAsync();

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

            // Assert
            isValid.ShouldBeFalse();
        }
Esempio n. 2
0
        public async Task Invalidate_when_user_is_already_invited()
        {
            // Arrange
            var sut = new InviteToBackpackContributorsValidator(_dbContext);

            string userSub           = Guid.NewGuid().ToString();
            string nonContributorSub = Guid.NewGuid().ToString();

            var owner = new User
            {
                FirstName = "Integration",
                LastName  = "Test",
                Sub       = userSub
            };

            var invitedContributor = new User
            {
                FirstName = "Integration2",
                LastName  = "Test2",
                Sub       = nonContributorSub
            };

            var backpack = new Domain.Entities.Backpack()
            {
                Name = "my backpack"
            };

            var backpackInvite = new BackpackInvite
            {
                Backpack           = backpack,
                InvitationReceiver = invitedContributor,
                InvitationSender   = owner
            };

            await _dbContext.Users.AddAsync(owner);

            await _dbContext.Users.AddAsync(invitedContributor);

            await _dbContext.Backpacks.AddAsync(backpack);

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

            await _dbContext.BackpackInvites.AddAsync(backpackInvite);

            await _dbContext.SaveChangesAsync();

            // Act
            bool isValid = await sut.IsValidAsync(new InviteToBackpackContributors(userSub, backpackInvite.Id, invitedContributor.Id));

            // Assert
            isValid.ShouldBeFalse();
        }
        public async Task Validate_when_an_invite_exists()
        {
            var sut = new RejectBackpackInviteValidator(_dbContext);

            // Arrange
            string userSub = Guid.NewGuid().ToString();
            var    user    = new DeUrgenta.Domain.Entities.User
            {
                FirstName = "Integration",
                LastName  = "Test",
                Sub       = userSub
            };

            string adminSub = Guid.NewGuid().ToString();
            var    admin    = new DeUrgenta.Domain.Entities.User
            {
                FirstName = "Admin",
                LastName  = "Test",
                Sub       = adminSub
            };

            await _dbContext.Users.AddAsync(user);

            await _dbContext.Users.AddAsync(admin);

            var backpack = new Backpack
            {
                Name = "backpack"
            };

            var backpackInvite = new BackpackInvite
            {
                InvitationReceiver = user,
                InvitationSender   = admin,
                Backpack           = backpack
            };
            await _dbContext.BackpackInvites.AddAsync(backpackInvite);

            await _dbContext.Backpacks.AddAsync(backpack);

            await _dbContext.SaveChangesAsync();

            // Act
            bool isValid = await sut.IsValidAsync(new RejectBackpackInvite(userSub, backpackInvite.Id));

            // Assert
            isValid.ShouldBeTrue();
        }