示例#1
0
        public void BeDenied_Not_Status_Pending_Should_Change_Nothing()
        {
            // arrange
            const InviteStatuses expectedStatus = InviteStatuses.Accepted;
            var sut     = (InviteTestProxy)InviteFake.ValidWithStatus(expectedStatus).Generate();
            var monitor = sut.Monitor();

            // act
            sut.BeDenied();

            // assert
            sut.Should().NotBeNull().And.BeOfType <InviteTestProxy>();
            sut.Id.Should().NotBeEmpty();
            sut.GetGuild().Should().NotBeNull();
            sut.GuildId.Should().NotBeEmpty();
            sut.GetMember().Should().NotBeNull();
            sut.MemberId.Should().NotBeEmpty();
            sut.Status.Should().Be(expectedStatus);

            monitor.AssertPropertyNotChanged(
                nameof(Invite.Id),
                nameof(Invite.GuildId),
                nameof(Guild),
                nameof(Invite.MemberId),
                nameof(Member),
                nameof(Invite.Status));
        }
示例#2
0
 public InviteEntity(string email, string token, InviteStatuses status, string roleId, DateTimeOffset expiresAt)
 {
     Email     = email;
     Token     = token;
     Status    = status;
     RoleId    = roleId;
     ExpiresAt = expiresAt;
 }
示例#3
0
        public void Constructor_Should_CreateWith_GivenStatus()
        {
            // arrange
            const InviteStatuses initStatus = InviteStatuses.Denied;
            var invite = InviteFake.ValidWithStatus(initStatus).Generate();

            // act
            var sut = new ClosedInviteState(invite, invite.Status, invite.ModifiedDate);

            // assert
            sut.Status.Should().Be(initStatus).And.Be(invite.Status);
        }
示例#4
0
        public void Constructor_Should_CreateWith_StatusPending()
        {
            // arrange
            const InviteStatuses initStatus = InviteStatuses.Pending;
            var invite = InviteFake.ValidWithStatus(initStatus).Generate();

            // act
            var sut = new OpenInviteState(invite);

            // assert
            sut.Status.Should().Be(initStatus).And.Be(invite.Status);
        }
示例#5
0
        public void BeCanceled_Should_Change_Nothing()
        {
            // arrange
            const InviteStatuses initStatus = InviteStatuses.Denied;
            var invite = InviteFake.ValidWithStatus(initStatus).Generate();
            var sut    = invite.GetState();

            // act
            sut.BeCanceled();

            // assert
            sut.Status.Should().Be(initStatus).And.Be(invite.Status);
            invite.GetGuild().Should().NotBeOfType <NullGuild>();
            invite.GetMember().Should().NotBeOfType <NullMember>();
            invite.GetGuild().Members.Should().NotContain(invite.GetMember());
            invite.GetMember().GetGuild().Should().NotBe(invite.GetGuild());
        }
示例#6
0
        public void BeDenied_Should_Change_StatusDenied_NotChange_MemberGuild_GuildMembers()
        {
            // arrange
            const InviteStatuses initStatus     = InviteStatuses.Pending;
            const InviteStatuses expectedStatus = InviteStatuses.Denied;
            var invite = InviteFake.ValidWithStatus(initStatus).Generate();
            var sut    = invite.GetState();

            // act
            sut.BeDenied();

            // assert
            sut.Status.Should().Be(initStatus).And.NotBe(invite.Status);
            invite.Status.Should().Be(expectedStatus);
            invite.GetGuild().Should().NotBeOfType <NullGuild>();
            invite.GetMember().Should().NotBeOfType <NullMember>();
            invite.GetGuild().Members.Should().NotContain(invite.GetMember());
            invite.GetMember().GetGuild().Should().NotBe(invite.GetGuild());
        }
示例#7
0
        public void CreateInvite_WithGuildAndMember_Should_Create_Pending_With_AllProperties()
        {
            // arrange
            var guild  = GuildFake.Complete().Generate();
            var member = MemberFake.WithoutGuild().Generate();
            const InviteStatuses expectedStatus = InviteStatuses.Pending;

            // act
            var model = _sut.CreateInvite(guild, member);

            // assert
            model.Should().NotBeNull().And.BeOfType <InviteTestProxy>();
            model.Id.Should().NotBeEmpty();
            model.GetGuild().Should().NotBeNull().And.Be(guild);
            model.GuildId.Should().NotBeEmpty().And.Be(guild.Id);
            model.GetMember().Should().NotBeNull().And.Be(member);
            model.MemberId.Should().NotBeEmpty().And.Be(member.Id);
            model.Status.Should().Be(expectedStatus);
        }
示例#8
0
        public void BeAccepted_Should_Change_StatusAccepted_MemberGuild_GuildMembers()
        {
            // arrange
            const InviteStatuses initStatus     = InviteStatuses.Pending;
            const InviteStatuses expectedStatus = InviteStatuses.Accepted;
            var invite  = InviteFake.ValidWithStatus(initStatus).Generate();
            var sut     = invite.GetState();
            var factory = TestModelFactoryHelper.Factory;

            // act
            sut.BeAccepted(factory);

            // assert
            sut.Status.Should().Be(initStatus).And.NotBe(invite.Status);
            invite.Status.Should().Be(expectedStatus);
            invite.GetGuild().Should().NotBeOfType <NullGuild>();
            invite.GetMember().Should().NotBeOfType <NullMember>();
            invite.GetGuild().Members.Should().Contain(invite.GetMember());
            invite.GetMember().GetGuild().Should().Be(invite.GetGuild());
        }
示例#9
0
 public static Faker <Invite> ValidWithStatus(InviteStatuses status = InviteStatuses.Pending, Guild guild = null, Member member = null)
 {
     return(new Faker <Invite>().CustomInstantiator(_ =>
     {
         member ??= MemberFake.GuildMember().Generate();
         guild ??= GuildFake.Complete().Generate();
         var invite = guild.InviteMember(member, TestModelFactoryHelper.Factory);
         if (status == InviteStatuses.Accepted)
         {
             invite.BeAccepted(TestModelFactoryHelper.Factory);
         }
         else if (status == InviteStatuses.Denied)
         {
             invite.BeDenied();
         }
         else if (status == InviteStatuses.Canceled)
         {
             invite.BeCanceled();
         }
         return invite;
     }));
 }
示例#10
0
 public void Update(InviteStatuses status)
 {
     Status = status;
 }
示例#11
0
 internal ClosedInviteState(Invite context, InviteStatuses status, DateTime?modifiedDate) : base(context)
 {
     Status       = status;
     ModifiedDate = modifiedDate;
 }