예제 #1
0
    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);
    }
예제 #2
0
 private async Task <Actor?> GetRegistryActorAsync(Guid actorId)
 {
     try
     {
         return(await _actorRegistryProvider
                .GetActorAsync(actorId)
                .ConfigureAwait(false));
     }
     catch (InvalidOperationException)
     {
         return(null);
     }
 }
예제 #3
0
    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);
    }