public void CreateCommand_should_create_the_correct_command( [Values("3.0.0", "3.2.0")] string serverVersion, [Values(null, ReadConcernLevel.Local, ReadConcernLevel.Majority)] ReadConcernLevel? readConcernLevel) { var semanticServerVersion = SemanticVersion.Parse(serverVersion); var filter = new BsonDocument("x", 1); var limit = 10; var maxDistance = 30; var maxTime = TimeSpan.FromMilliseconds(50); var near = new BsonArray { 10, 20 }; var subject = new GeoSearchOperation<BsonDocument>(_collectionNamespace, near, BsonDocumentSerializer.Instance, _messageEncoderSettings) { Search = filter, Limit = limit, MaxDistance = maxDistance, MaxTime = maxTime, ReadConcern = new ReadConcern(readConcernLevel) }; var expectedResult = new BsonDocument { { "geoSearch", _collectionNamespace.CollectionName }, { "near", near }, { "limit", limit }, { "maxDistance", maxDistance }, { "search", filter }, { "maxTimeMS", maxTime.TotalMilliseconds } }; if (!subject.ReadConcern.IsServerDefault) { expectedResult["readConcern"] = subject.ReadConcern.ToBsonDocument(); } if (!subject.ReadConcern.IsSupported(semanticServerVersion)) { Action act = () => subject.CreateCommand(semanticServerVersion); act.ShouldThrow<MongoClientException>(); } else { var result = subject.CreateCommand(semanticServerVersion); result.Should().Be(expectedResult); } }
public void Execute_should_return_expected_result( [Values(false, true)] bool async) { var subject = new GeoSearchOperation<BsonDocument>( _collectionNamespace, new BsonArray { 1, 2 }, BsonDocumentSerializer.Instance, _messageEncoderSettings) { MaxDistance = 20, Search = new BsonDocument("Type", "restaraunt") }; var result = ExecuteOperation(subject, async); result["results"].Should().NotBeNull(); }
public void Execute_should_return_expected_result( [Values(false, true)] bool async) { RequireServer.Check().ClusterTypes(ClusterType.Standalone, ClusterType.ReplicaSet); EnsureTestData(); var subject = new GeoSearchOperation<BsonDocument>( _collectionNamespace, new BsonArray { 1, 2 }, BsonDocumentSerializer.Instance, _messageEncoderSettings) { MaxDistance = 20, Search = new BsonDocument("Type", "restaraunt") }; var result = ExecuteOperation(subject, async); result["results"].Should().NotBeNull(); }