public void ResendInvite_KeyIsRegenerated()
        {
            UserInvite userInvite       = UserInvite.Create(this.userInvitedById, "*****@*****.**");
            Guid       inviteKeyCurrent = userInvite.InviteKey;

            userInvite.ResendInvite();
            inviteKeyCurrent.Should().NotBe(userInvite.InviteKey);
        }
        public void Remove_UserWasNotInTheGroup_Throws()
        {
            Mock <Group> group = new Mock <Group>();

            group.SetupGet(x => x.Id).Returns(Guid.Empty);

            UserInvite userInvite = UserInvite.Create(this.userInvitedById, "*****@*****.**");

            userInvite.Remove(group.Object);
        }
        public void Add_GrouIsNull_Throws()
        {
            Mock <Group> group = new Mock <Group>();

            group.SetupGet(x => x.Id).Returns(Guid.Empty);

            UserInvite userInvite = UserInvite.Create(this.userInvitedById, "*****@*****.**");

            userInvite.Add(null);
        }
        public void Add_UserIsAlreadyAddedToTheGroup_Throws()
        {
            Mock <Group> group = new Mock <Group>();

            group.SetupGet(x => x.Id).Returns(Guid.Empty);

            UserInvite userInvite = UserInvite.Create(this.userInvitedById, "*****@*****.**");

            userInvite.Add(group.Object);
            userInvite.Add(group.Object);
        }
        public void Add_UserIsAddedToTheGroup()
        {
            Mock <Group> group = new Mock <Group>();

            group.SetupGet(x => x.Id).Returns(Guid.Empty);

            UserInvite userInvite = UserInvite.Create(this.userInvitedById, "*****@*****.**");

            userInvite.Add(group.Object);

            userInvite.GroupIds[0].Should().Be(Guid.Empty);
        }
        public void Remove_UserIsRemovedFromTheGroup()
        {
            Mock <Group> group = new Mock <Group>();

            group.SetupGet(x => x.Id).Returns(Guid.Empty);

            UserInvite userInvite = UserInvite.Create(this.userInvitedById, "*****@*****.**");

            userInvite.Add(group.Object);
            userInvite.Remove(group.Object);

            userInvite.GroupIds.Should().HaveCount(0);
        }
        public void Remove_UserInviteIsInCollection_Removes()
        {
            Guid userInvitedById = Guid.NewGuid();

            UserInvite userInviteA = UserInvite.Create(
                userInvitedById,
                "*****@*****.**"
                );

            this.group.Add(userInviteA);
            this.group.Remove(userInviteA);

            this.group.Invites.Should().HaveCount(0);
        }
        public void Add_SameUserInvite_ThrowsException()
        {
            Guid userInvitedById = Guid.NewGuid();

            UserInvite userInviteA = UserInvite.Create(
                userInvitedById,
                "*****@*****.**"
                );

            UserInvite userInviteAA = UserInvite.Create(
                userInvitedById,
                "*****@*****.**"
                );

            this.group.Add(userInviteA);
            this.group.Add(userInviteAA);
        }
        public void Create_EmailIsProvided()
        {
            Mock <UserInvite> expected = new Mock <UserInvite>();

            expected.SetupGet(x => x.Email).Returns("*****@*****.**");
            expected.SetupGet(x => x.DateCreated).Returns(TimeProvider.Current.UtcNow);
            expected.SetupGet(x => x.DateModified).Returns(TimeProvider.Current.UtcNow);
            expected.SetupGet(x => x.GroupIds).Returns(new List <Guid>().AsReadOnly());
            expected.SetupGet(x => x.InvitedByUserId).Returns(this.userInvitedById);

            UserInvite actual = UserInvite.Create(this.userInvitedById, "*****@*****.**");

            actual.ShouldBeEquivalentTo(expected.Object, opt =>
                                        opt.Excluding(
                                            prop =>
                                            prop.PropertyPath == "Id" ||
                                            prop.PropertyPath == "InviteKey"
                                            ));
        }
 public void Create_EmailIsInvalid_Throws()
 {
     UserInvite.Create(this.userInvitedById, "bobsmith.com");
 }
 public void Create_UserIsNull_Throws()
 {
     UserInvite.Create(Guid.Empty, String.Empty);
 }
 public void Create_TenantIsNull_Throws()
 {
     UserInvite.Create(this.userInvitedById, String.Empty);
 }