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(); }
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(); }