NserviceBus.Testing not using ISagaFinder for saga

I have a saga that I am trying to write scenario tests for, and one type of message requires a custom finder. The finder is being called when running the saga normally but if I send that type of message to the TestableSaga from NServiceBus.Testing there is a fault and no saga is found.

We are using NHibernate for our normal Saga persistence, but I am not sure if that affects the testing in any way.

var ackResult = testableSaga.Handle(new Z3Messages.SmartphonePush.AckMessage()
{
    RecipientID = "11"
});

In this instance ackResult will have the status of faulted and I can confirm that the ISagaFinder is not being called. Here is my saga finder.

public class PushSagaFinder : ISagaFinder<PushSagaData, AckMessage>
{
    public Task<PushSagaData> FindBy(AckMessage message, ISynchronizedStorageSession storageSession, IReadOnlyContextBag context, CancellationToken cancellationToken = default)
    {
        var session = storageSession.Session();
        var orderSagaData = session.QueryOver<PushSagaData>()
            .Where(d => d.LastRecipientID == message.RecipientID)
            .SingleOrDefault();
        return Task.FromResult(orderSagaData);
    }
}

Is there some additional setup that needs to be done to get the tests to use the saga finder?

The testable saga is designed for unit testing, not integration testing. It’s all in memory, which is why saga finders are not invoked.

You should be able to unit-test sagas and saga finders in isolation. What’s leading you to need to test them together?

I do have another question, what’s the business scenario that requires saga finders in your case?