Microsoft Orleans, Mock and IGrainObserver

49 Views Asked by At

I am trying to run this test but I get an error.

[Fact]
public async Task Subscribe()
{
    var cluster = new ClusterFixture().Cluster;
    var grain = cluster.GrainFactory.GetGrain<INewsGrain>(String.Empty);
    
    var observer = new Mock<INewsObserver>();
    observer.Setup(x => x.NewsItemAdded(It.IsAny<NewsItem>()));
    
    var observerRef = cluster.GrainFactory.CreateObjectReference<INewsObserver>(observer.Object);
    await grain.Subscribe(observerRef);
    
    var newsItem = new NewsItem
    {
        NewsId = Guid.NewGuid(),
        Title = "Title",
        Content = "Content",
        AuthorId = Guid.NewGuid(),
        PublishedDate = DateTime.Now,
        Tags = ImmutableArray.Create("asd", "qwe")
    };
    
    await grain.AddNewsItem(newsItem);
    observer.Verify(x => x.NewsItemAdded(It.IsAny<NewsItem>()), Times.Once);
}

Expected invocation on the mock once, but was 0 times: x => x.NewsItemAdded(It.IsAny())

The await grain.AddNewsItem(newsItem); code itself works fine

Can you tell me what the problem might be?

0

There are 0 best solutions below