public void Constructor_Should_CreateWith_ModifiedDate() { // arrange var membership = MembershipFake.Finished().Generate(); // act var sut = new ClosedMembershipState(membership, membership.ModifiedDate.Value); // assert sut.ModifiedDate.Should().NotBeNull().And.Be(membership.ModifiedDate); }
public void Constructor_Should_CreateWithout_ModifiedDate() { // arrange var membership = MembershipFake.Active().Generate(); // act var sut = new OpenMembershipState(membership); // assert sut.ModifiedDate.Should().BeNull().And.Be(membership.ModifiedDate); }
public void Finish_Should_Change_Nothing() { // arrange var membership = MembershipFake.Finished().Generate(); var sut = membership.GetState(); // act sut.Finish(); // assert sut.ModifiedDate.Should().NotBeNull().And.Be(membership.ModifiedDate); }
public void GetDuration_ActiveMembership_Should_Return_VariantDuration() { // arrange var sut = MembershipFake.Active().Generate(); // act var result1 = sut.GetDuration(); var result2 = sut.GetDuration(); // assert sut.Should().NotBeNull().And.BeOfType <MembershipTestProxy>(); sut.ModifiedDate.Should().BeNull(); result1.Should().BeLessThan(result2); }
public void GetDuration_FinishedMembership_Should_Return_FixedDuration() { // arrange var sut = MembershipFake.Finished().Generate(); var expectedDuration = sut.ModifiedDate.Value.Subtract(sut.CreatedDate); // act var result = sut.GetDuration(); // assert sut.Should().NotBeNull().And.BeOfType <MembershipTestProxy>(); sut.ModifiedDate.Should().NotBeNull(); result.Should().Be(expectedDuration); }
public void Finish_Should_Change_ModifiedDate() { // arrange var referenceDate = DateTime.UtcNow; var membership = MembershipFake.Active().Generate(); var sut = membership.GetState(); // act sut.Finish(); // assert sut.ModifiedDate.Should().BeNull().And.NotBe(membership.ModifiedDate.Value); membership.ModifiedDate.Should().NotBeNull().And.BeAfter(referenceDate); }
public MembershipRepositoryMockBuilder Update(Membership input = null, Membership output = null) { var result = output ?? MembershipFake.Finished().Generate(); if (input == null) { _mock.Setup(x => x.Update(It.IsAny <Membership>())).Returns(result); } else { _mock.Setup(x => x.Update(input)).Returns(result); } return(this); }
public MembershipRepositoryMockBuilder Insert(Membership input = null, Membership output = null) { var result = output ?? MembershipFake.Active().Generate(); if (input == null) { _mock.Setup(x => x.InsertAsync(It.IsAny <Membership>(), default)).ReturnsAsync(result); } else { _mock.Setup(x => x.InsertAsync(input, default)).ReturnsAsync(result); } return(this); }
public async Task Handle_Should_Succeed_With_ValidCommandAsync() { // arrange const int canceledCount = 2; var invitedMember = MemberFake.GuildLeader().Generate(); var promotedMember = invitedMember.GetGuild().GetVice(); var invitingGuild = GuildFake.Complete().Generate(); var acceptedInvite = InviteFake.ValidToAcceptWithInvitesToCancel(canceledCount, invitingGuild, invitedMember).Generate(); var command = PatchInviteCommandFake.AcceptValid(acceptedInvite.Id).Generate(); var canceledInvites = acceptedInvite.GetInvitesToCancel().ToArray(); var startedMembership = MembershipFake.Active(invitingGuild, invitedMember).Generate(); var finishedMembership = invitedMember.GetActiveMembership(); var unit = UnitOfWorkMockBuilder.Create() .SetupMembers(x => x.Update(input: invitedMember, output: invitedMember) .Update(input: promotedMember, output: promotedMember).Build()) .SetupMemberships(x => x.Insert(output: startedMembership).Update(output: finishedMembership).Build()) .SetupInvites(x => { x.GetForAcceptOperationSuccess(input: command.Id, output: acceptedInvite) .Update(output: acceptedInvite); foreach (var i in canceledInvites) { x.Update(i, i); } return(x.Build()); }).Build(); var factory = ModelFactoryMockBuilder.Create() .CreateMembership(invitingGuild, invitedMember, startedMembership).Build(); var sut = new AcceptInviteHandler(unit, factory); // act var result = await sut.Handle(command, default); // assert result.Should().NotBeNull().And.BeOfType <SuccessResult>(); result.Success.Should().BeTrue(); result.Errors.Should().BeEmpty(); result.As <SuccessResult>().StatusCode.Should().Be(StatusCodes.Status200OK); result.Data.Should().NotBeNull().And.BeOfType <InviteTestProxy>(); result.Data.As <Invite>().Id.Should().Be(acceptedInvite.Id); result.Data.As <Invite>().Status.Should().Be(InviteStatuses.Accepted) .And.Be(acceptedInvite.Status); invitedMember.Should().NotBeOfType <NullMember>(); invitedMember.IsGuildLeader.Should().BeFalse(); invitedMember.GetGuild().Should().Be(invitingGuild); invitingGuild.Should().NotBeOfType <NullGuild>(); invitingGuild.Members.Should().Contain(invitedMember); finishedMembership.ModifiedDate.Should().NotBeNull() .And.Be(invitedMember.GetLastFinishedMembership().ModifiedDate); canceledInvites.Should().HaveCount(canceledCount) .And.OnlyContain(x => x.Status == InviteStatuses.Canceled); promotedMember.Should().NotBeNull().And.BeOfType <MemberTestProxy>(); promotedMember.IsGuildLeader.Should().Be(!invitedMember.IsGuildLeader); }