public void Should_Succeed() { // arrange var command = UpdateGuildCommandFake.Valid().Generate(); var guildRepository = GuildRepositoryMockBuilder.Create() .ExistsWithId(true, command.Id) .CanChangeName(true, command.Id, command.Name) .Build(); var memberRepository = MemberRepositoryMockBuilder.Create() .ExistsWithId(true, command.LeaderId) .IsGuildMember(true, command.LeaderId, command.Id) .Build(); var sut = new UpdateGuildValidator(guildRepository, memberRepository) { CascadeMode = FluentValidation.CascadeMode.Stop }; // act var result = sut.Validate(command); // assert result.Should().NotBeNull().And.BeOfType <ValidationResult>(); result.IsValid.Should().BeTrue(); }
public async Task Handle_Should_Succeed_With_ValidCommand() { // arrange var expectedPage = new Random().Next(1, 5); var expectedPages = new Random().Next(expectedPage, expectedPage + 1); var expectedPageSize = new Random().Next(5, 10); var command = ListGuildCommandFake.Valid(pageSize: expectedPageSize, page: expectedPage).Generate(); var repository = GuildRepositoryMockBuilder.Create().Paginate( pageSize: command.PageSize, page: command.Page, totalItems: command.PageSize * expectedPages).Build(); var sut = new ListGuildHandler(repository); // 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 <PagedResponse <Guild> >(); result.Data.As <PagedResponse <Guild> >().Items.Should().NotBeEmpty() .And.AllBeAssignableTo <Guild>() .And.HaveCount(expectedPageSize) .And.HaveCount(command.PageSize); result.Data.As <PagedResponse <Guild> >().PageSize.Should().Be(expectedPageSize) .And.Be(command.PageSize); result.Data.As <PagedResponse <Guild> >().Page.Should().Be(expectedPage) .And.Be(command.Page); result.Data.As <PagedResponse <Guild> >().Pages.Should().Be(expectedPages); }
public void Should_Fail_By_Empty_MasterId() { // arrange var command = CreateGuildCommandFake.InvalidByEmptyMasterId().Generate(); var guildRepository = GuildRepositoryMockBuilder.Create().Build(); var memberRepository = MemberRepositoryMockBuilder.Create().Build(); var sut = new CreateGuildValidator(guildRepository, memberRepository) { CascadeMode = FluentValidation.CascadeMode.Stop }; // act var result = sut.Validate(command); // assert result.AssertErrorsCount(1); }
public void Should_Fail_By_Master_ExistsWithId_False() { // arrange var command = CreateGuildCommandFake.Valid().Generate(); var guildRepository = GuildRepositoryMockBuilder .Create().ExistsWithName(false, command.Name).Build(); var memberRepository = MemberRepositoryMockBuilder .Create().ExistsWithId(false, command.LeaderId).Build(); var sut = new CreateGuildValidator(guildRepository, memberRepository) { CascadeMode = FluentValidation.CascadeMode.Stop }; // act var result = sut.Validate(command); // assert result.AssertErrorsCount(1); }
public void Should_Fail_By_Guild_ExistsWithId_False() { // arrange var command = InviteMemberCommandFake.Valid().Generate(); var guildRepository = GuildRepositoryMockBuilder.Create() .ExistsWithId(false, command.GuildId).Build(); var memberRepository = MemberRepositoryMockBuilder.Create() .ExistsWithId(true, command.MemberId) .IsGuildMember(false, command.MemberId, command.GuildId) .Build(); var sut = new InviteMemberValidator(memberRepository, guildRepository) { CascadeMode = FluentValidation.CascadeMode.Stop }; // act var result = sut.Validate(command); // assert result.AssertErrorsCount(1); }
public void Should_Succeed() { // arrange var command = InviteMemberCommandFake.Valid().Generate(); var guildRepository = GuildRepositoryMockBuilder.Create() .ExistsWithId(true, command.GuildId).Build(); var memberRepository = MemberRepositoryMockBuilder.Create() .ExistsWithId(true, command.MemberId) .IsGuildMember(false, command.MemberId, command.GuildId) .Build(); var sut = new InviteMemberValidator(memberRepository, guildRepository) { CascadeMode = FluentValidation.CascadeMode.Stop }; // act var result = sut.Validate(command); // assert result.Should().NotBeNull().And.BeOfType <ValidationResult>(); result.IsValid.Should().BeTrue(); }
public async Task Handle_Should_Succeed_With_ValidCommand() { // arrange const int expectedMembersCount = 3; var expectedGuild = GuildFake.Complete(membersCount: expectedMembersCount).Generate(); var command = GetGuildCommandFake.Valid(expectedGuild.Id).Generate(); var repository = GuildRepositoryMockBuilder.Create() .GetByIdSuccess(input: command.Id, output: expectedGuild).Build(); var sut = new GetGuildHandler(repository); // 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 <GuildTestProxy>(); result.Data.As <Guild>().Id.Should().Be(expectedGuild.Id); result.Data.As <Guild>().GetLeader().Id.Should().Be(expectedGuild.GetLeader().Id); result.Data.As <Guild>().Members.Should().NotBeEmpty().And.HaveCount(expectedMembersCount); }
public async Task Handle_Should_Succeed_With_ValidCommand() { // arrange var expectedGuild = GuildFake.Complete().Generate(); var expectedMembersCount = expectedGuild.Members.Count; var expectedLeader = expectedGuild.GetVice(); var expectedVice = expectedGuild.GetLeader(); var command = UpdateGuildCommandFake.Valid( id: expectedGuild.Id, leaderId: expectedLeader.Id, name: expectedGuild.Name).Generate(); var guildRepository = GuildRepositoryMockBuilder.Create() .GetByIdSuccess(command.Id, expectedGuild) .Update(expectedGuild, expectedGuild).Build(); var memberRepository = MemberRepositoryMockBuilder.Create() .Update(expectedLeader, expectedLeader) .Update(expectedVice, expectedVice) .Build(); var sut = new UpdateGuildHandler(guildRepository, 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 <GuildTestProxy>(); result.Data.As <Guild>().Name.Should().Be(expectedGuild.Name); result.Data.As <Guild>().Id.Should().Be(expectedGuild.Id); result.Data.As <Guild>().GetLeader().Id.Should().Be(expectedLeader.Id); result.Data.As <Guild>().Members.Should().NotBeEmpty() .And.HaveCount(expectedMembersCount) .And.Contain(x => x.Id == expectedLeader.Id) .And.Contain(x => x.Id == expectedVice.Id); }