public async Task LeaveClanAsync_WhenNotMember_ShouldBeOfTypeValidationResultWithErrors() { // Arrange var ownerId = new UserId(); var clan = new Clan("test", ownerId); var service = new ClanService(TestMock.ClanRepository.Object); // Act var result = await service.LeaveClanAsync(clan, new UserId()); // Assert result.Should().BeOfType <DomainValidationResult <Clan> >(); result.Errors.Should().NotBeEmpty(); }
public async Task LeaveClanAsync_WhenOwner_ShouldBeOfTypeValidationResult() { // Arrange var ownerId = new UserId(); var clan = new Clan("test", ownerId); TestMock.ClanRepository.Setup(repository => repository.UnitOfWork.CommitAsync(It.IsAny <bool>(), It.IsAny <CancellationToken>())) .Returns(Task.CompletedTask) .Verifiable(); TestMock.ClanRepository.Setup(repository => repository.Delete(It.IsAny <Clan>())).Verifiable(); var service = new ClanService(TestMock.ClanRepository.Object); // Act var result = await service.LeaveClanAsync(clan, ownerId); // Assert result.Should().BeOfType <DomainValidationResult <Clan> >(); TestMock.ClanRepository.Verify(repository => repository.UnitOfWork.CommitAsync(It.IsAny <bool>(), It.IsAny <CancellationToken>()), Times.Exactly(2)); TestMock.ClanRepository.Verify(repository => repository.Delete(It.IsAny <Clan>()), Times.Once); }