как разобрать переданный параметр FilterDefinition - PullRequest
0 голосов
/ 15 января 2019

Я являюсь модульным тестом в моем классе, который внутренне вызывает драйвер FindAync драйвера MongoDb для получения документа. Для каждого тестируемого метода я хочу убедиться, что встроенный в мой метод FilterDefinition правильно передан в метод FindAsync MongoDB.

Я настроил обратный вызов для перехвата пропущенного фильтра с помощью следующего кода:

var mockCursor = new Mock<IAsyncCursor<T>();    
var mockMongoDbCollectionClient = new Mock<IMongoCollection<T>>();
mockMongoDbCollectionClient.Setup(o => o.FindAsync(It.IsAny<FilterDefinition<T>(), It.IsAny<FindOptions<T>(), It.IsAny<CancellationToken>()))
                                   .Callback<FilterDefinition<T>, FindOptions<T>, CancellationToken>((f, o, t) =>
                                   {
                                       filter = f;
                                   })
                                   .ReturnsAsync(mockCursor.Object);

Но я не знаю, как проанализировать фильтр, чтобы убедиться, что это ожидаемый фильтр. Например, если фильтр в моем тестируемом методе построен следующим образом:

var filter = Builders<T>.Filter.Eq("Type", "MyType")

Я бы проверил в своем UT, что переданный фильтр построен точно так же, как указано выше.

...