public async Task GetActorAsync_WhenNoActorFound_ThrowsException() { // Arrange var repository = new Mock <IActorRepository>(); var target = new ActorRegistryProvider(repository.Object); var externalActorId = Guid.NewGuid(); // Act + Assert await Assert .ThrowsAsync <InvalidOperationException>(() => target.GetActorAsync(externalActorId)) .ConfigureAwait(false); }
private async Task <Actor?> GetRegistryActorAsync(Guid actorId) { try { return(await _actorRegistryProvider .GetActorAsync(actorId) .ConfigureAwait(false)); } catch (InvalidOperationException) { return(null); } }
public async Task GetActorAsync_WhenActorFound_ReturnsActor() { // Arrange var repository = new Mock <IActorRepository>(); var target = new ActorRegistryProvider(repository.Object); var externalActorId = Guid.NewGuid(); var internalActorId = Guid.NewGuid(); repository .Setup(repo => repo.GetActorAsync(It.Is <ExternalActorId>(externalId => externalId.Value == externalActorId))) .ReturnsAsync(new Actor(new ActorId(internalActorId), new ExternalActorId(externalActorId))); // Act var actual = await target.GetActorAsync(externalActorId).ConfigureAwait(false); // Assert Assert.Equal(internalActorId, actual.ActorId); }