public void AddMemberToClanAsync_WhenClanDoesNotExists_ShouldThrowInvalidOperationException() { // Arrange var ownerId = new UserId(); var clan = new Clan("test", ownerId); TestMock.ClanRepository.Setup(repository => repository.FindClanAsync(It.IsAny <ClanId>())).Verifiable(); var service = new ClanService(TestMock.ClanRepository.Object); // Act var action = new Func <Task>(async() => await service.AddMemberToClanAsync(clan.Id, new Candidature(new UserId(), clan.Id))); // Assert; action.Should().Throw <InvalidOperationException>(); TestMock.ClanRepository.Verify(repository => repository.FindClanAsync(It.IsAny <ClanId>()), Times.Once); }
public async Task AddMemberToClanAsync() { // Arrange var ownerId = new UserId(); var clan = new Clan("test", ownerId); TestMock.ClanRepository.Setup(repository => repository.FindClanAsync(It.IsAny <ClanId>())).ReturnsAsync(clan).Verifiable(); TestMock.ClanRepository.Setup(repository => repository.UnitOfWork.CommitAsync(It.IsAny <bool>(), It.IsAny <CancellationToken>())) .Returns(Task.CompletedTask) .Verifiable(); var service = new ClanService(TestMock.ClanRepository.Object); // Act await service.AddMemberToClanAsync(clan.Id, new Candidature(new UserId(), clan.Id)); // Assert; TestMock.ClanRepository.Verify(repository => repository.FindClanAsync(It.IsAny <ClanId>()), Times.Once); TestMock.ClanRepository.Verify(repository => repository.UnitOfWork.CommitAsync(It.IsAny <bool>(), It.IsAny <CancellationToken>()), Times.Once); }