public async Task ShouldNotCreateMemberIfMemberAlreadyCreated() { var memberId = Guid.Parse("01c1da98-b4b7-45dc-8352-c98ece06dab1"); var command = new CreateMemberCommand(memberId, "toto"); var member = new Member(new(memberId), "toto", 10); var memberRepository = new InMemoryMemberRepository(new() { member }); var handler = new CreateMemberCommandHandler(memberRepository); var record = await Record.ExceptionAsync(() => handler.Handle(command, default)); Assert.IsType <MemberAlreadyExistsException>(record); Assert.Single(memberRepository.GetMembers()); }
public async Task ShouldCreateMember() { var memberId = Guid.Parse("01c1da98-b4b7-45dc-8352-c98ece06dab1"); var command = new CreateMemberCommand(memberId, "toto"); var memberRepository = new InMemoryMemberRepository(); var handler = new CreateMemberCommandHandler(memberRepository); await handler.Handle(command, default); var member = await memberRepository.GetByIdAsync(new(Guid.Parse("01c1da98-b4b7-45dc-8352-c98ece06dab1"))); Assert.Equal(memberId, member.Id.Value); Assert.Equal("toto", member.Name); Assert.Equal(1000, member.Wallet); Assert.Collection(member.DomainEvents, x => { Assert.Equal(memberId, (x as MemberCreated).MemberId); }); }