public async Task Handle_Should_Succeed_With_ValidCommand() { // arrange var expectedMember = MemberFake.WithoutGuild().Generate(); var command = PatchMemberCommandFake.ChangeMemberNameValid( id: expectedMember.Id, name: expectedMember.Name).Generate(); var memberRepository = MemberRepositoryMockBuilder.Create() .GetByIdSuccess(command.Id, expectedMember) .Update(expectedMember, expectedMember) .Build(); var sut = new ChangeMemberNameHandler(memberRepository); // 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 <MemberTestProxy>(); result.Data.As <Member>().Name.Should().Be(expectedMember.Name); result.Data.As <Member>().Id.Should().Be(expectedMember.Id); }
public async Task Handle_Should_Succeed_With_ValidCommand() { // arrange var promotedMember = MemberFake.GuildMember().Generate(); var guild = promotedMember.GetGuild(); var expectedDemotedMember = promotedMember.GetGuild().GetLeader(); var command = PatchMemberCommandFake.PromoteMemberValid(promotedMember.Id).Generate(); var memberRepository = MemberRepositoryMockBuilder.Create() .GetForGuildOperationsSuccess(command.Id, promotedMember) .Update(promotedMember, promotedMember) .Update(expectedDemotedMember, expectedDemotedMember) .Build(); var sut = new PromoteMemberHandler(memberRepository); // 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 <MemberTestProxy>(); result.Data.As <Member>().Id.Should().Be(promotedMember.Id); result.Data.As <Member>().IsGuildLeader.Should().BeTrue() .And.Be(!expectedDemotedMember.IsGuildLeader); result.Data.As <Member>().GetGuild().Should().NotBeNull(); result.Data.As <Member>().GetGuild().Id.Should().Be(guild.Id); }
public async Task Handle_Should_Succeed_With_ValidCommand_GuildMember() { // arrange var leavingMember = (MemberTestProxy)MemberFake.GuildMember().Generate(); var expectedUnchangedLeader = leavingMember.GetGuild().GetLeader(); var expectedFinishedMembership = leavingMember.GetActiveMembership(); var command = PatchMemberCommandFake.LeaveGuildValid(leavingMember.Id).Generate(); var memberRepository = MemberRepositoryMockBuilder.Create() .GetForGuildOperationsSuccess(command.Id, leavingMember) .Update(leavingMember, leavingMember) .Update(expectedUnchangedLeader, expectedUnchangedLeader) .Build(); var membershipRepository = MembershipRepositoryMockBuilder.Create() .Update(expectedFinishedMembership, expectedFinishedMembership).Build(); var sut = new LeaveGuildHandler(memberRepository, membershipRepository); // 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 <MemberTestProxy>(); result.Data.As <Member>().Id.Should().Be(leavingMember.Id); result.Data.As <Member>().IsGuildLeader.Should().BeFalse() .And.Be(!expectedUnchangedLeader.IsGuildLeader); result.Data.As <Member>().GetGuild().Should().BeOfType <NullGuild>(); expectedFinishedMembership.Should().NotBeOfType <NullMembership>(); expectedFinishedMembership.Id.Should().Be(leavingMember.GetLastFinishedMembership().Id); expectedFinishedMembership.ModifiedDate.Should().NotBeNull() .And.Be(leavingMember.GetLastFinishedMembership().ModifiedDate); }
public void Should_Fail_By_Empty_Id() { // arrange var command = PatchMemberCommandFake.DemoteMemberInvalidByEmptyId().Generate(); var memberRepository = MemberRepositoryMockBuilder.Create().Build(); var sut = new DemoteMemberValidator(memberRepository) { CascadeMode = FluentValidation.CascadeMode.Stop }; // act var result = sut.Validate(command); // assert result.AssertErrorsCount(1); }
public void Should_Fail_By_Member_NotGuildLeader() { // arrange var member = MemberFake.GuildMember().Generate(); var command = PatchMemberCommandFake.DemoteMemberValid(member.Id).Generate(); var memberRepository = MemberRepositoryMockBuilder.Create() .GetByIdSuccess(member.Id, member).Build(); var sut = new DemoteMemberValidator(memberRepository) { CascadeMode = FluentValidation.CascadeMode.Stop }; // act var result = sut.Validate(command); // assert result.AssertErrorsCount(1); }
public void Should_Succeed() { // arrange var member = MemberFake.GuildLeader().Generate(); var command = PatchMemberCommandFake.DemoteMemberValid(member.Id).Generate(); var memberRepository = MemberRepositoryMockBuilder.Create() .GetByIdSuccess(member.Id, member).Build(); var sut = new DemoteMemberValidator(memberRepository) { CascadeMode = FluentValidation.CascadeMode.Stop }; // act var result = sut.Validate(command); // assert result.Should().NotBeNull().And.BeOfType <ValidationResult>(); result.IsValid.Should().BeTrue(); }
public void Should_Fail_By_Member_NotFound() { // arrange var command = PatchMemberCommandFake.ChangeMemberNameValid().Generate(); var memberRepository = MemberRepositoryMockBuilder.Create() .ExistsWithId(false, command.Id) .CanChangeName(true, command.Id, command.Name).Build(); var sut = new ChangeMemberNameValidator(memberRepository) { CascadeMode = FluentValidation.CascadeMode.Stop }; // act var result = sut.Validate(command); // assert result.AssertErrorsCount(1); }
public void Should_Succeed() { // arrange var command = PatchMemberCommandFake.ChangeMemberNameValid().Generate(); var memberRepository = MemberRepositoryMockBuilder.Create() .ExistsWithId(true, command.Id) .CanChangeName(true, command.Id, command.Name).Build(); var sut = new ChangeMemberNameValidator(memberRepository) { CascadeMode = FluentValidation.CascadeMode.Stop }; // act var result = sut.Validate(command); // assert result.Should().NotBeNull() .And.BeOfType <ValidationResult>(); result.IsValid.Should().BeTrue(); }