// private methods private BsonValue ExecuteOperation(EvalOperation operation, bool async) { using (var binding = CreateReadWriteBinding()) { return(ExecuteOperation(operation, binding, async)); } }
// private methods private BsonValue ExecuteOperation(EvalOperation operation, bool async) { using (var binding = CoreTestConfiguration.GetReadWriteBinding()) { return(ExecuteOperation(operation, binding, async)); } }
public void ExecuteAsync_should_throw_when_binding_isNull() { var function = "return 1"; var subject = new EvalOperation(_databaseNamespace, function, _messageEncoderSettings); Action action = () => subject.ExecuteAsync(null).GetAwaiter().GetResult(); action.ShouldThrow <ArgumentNullException>(); }
public void Args_should_work() { var function = new BsonJavaScript("return 1"); var subject = new EvalOperation(_databaseNamespace, function, _messageEncoderSettings); var args = new BsonValue[] { 1, 2, 3 }; subject.Args = args; subject.Args.Should().Equal(args); }
public void Execute_should_return_expected_result( [Values(false, true)] bool async) { var function = "return 1"; var subject = new EvalOperation(_databaseNamespace, function, _messageEncoderSettings); var result = ExecuteOperation(subject, async); result.Should().Be(1.0); }
public void NoLock_should_work( [Values(null, false, true)] bool?value) { var function = new BsonJavaScript("return 1"); var subject = new EvalOperation(_databaseNamespace, function, _messageEncoderSettings); subject.NoLock = value; subject.NoLock.Should().Be(value); }
private BsonValue ExecuteOperation(EvalOperation operation, IWriteBinding binding, bool async) { if (async) { return(operation.ExecuteAsync(binding, CancellationToken.None).GetAwaiter().GetResult()); } else { return(operation.Execute(binding, CancellationToken.None)); } }
public void Execute_should_throw_when_binding_isNull( [Values(false, true)] bool async) { var function = "return 1"; var subject = new EvalOperation(_adminDatabaseNamespace, function, _messageEncoderSettings); Action action = () => ExecuteOperation(subject, null, async); action.ShouldThrow <ArgumentNullException>(); }
public void MaxTime_should_work( [Values(null, 0, 1)] int?value) { var function = new BsonJavaScript("return 1"); var subject = new EvalOperation(_databaseNamespace, function, _messageEncoderSettings); var maxTime = value.HasValue ? (TimeSpan?)TimeSpan.FromSeconds(value.Value) : null; subject.MaxTime = maxTime; subject.MaxTime.Should().Be(maxTime); }
public void MaxTime_get_and_set_should_work( [Values(-10000, 0, 1, 10000, 99999)] long maxTimeTicks) { var function = new BsonJavaScript("return 1"); var subject = new EvalOperation(_adminDatabaseNamespace, function, _messageEncoderSettings); var value = TimeSpan.FromTicks(maxTimeTicks); subject.MaxTime = value; var result = subject.MaxTime; result.Should().Be(value); }
public void Execute_should_return_expected_result( [Values(false, true)] bool async) { RequireServer.Check().Authentication(false); var function = "return 1"; var subject = new EvalOperation(_adminDatabaseNamespace, function, _messageEncoderSettings); var result = ExecuteOperation(subject, async); result.Should().Be(1.0); }
public void Execute_should_return_expected_result_when_args_are_provided( [Values(false, true)] bool async) { var function = "function(x) { return x; }"; var subject = new EvalOperation(_databaseNamespace, function, _messageEncoderSettings); subject.Args = new BsonValue[] { 1 }; var result = ExecuteOperation(subject, async); result.Should().Be(1.0); }
public void MaxTime_set_should_throw_when_value_is_invalid( [Values(-10001, -9999, -1)] long maxTimeTicks) { var function = new BsonJavaScript("return 1"); var subject = new EvalOperation(_adminDatabaseNamespace, function, _messageEncoderSettings); var value = TimeSpan.FromTicks(maxTimeTicks); var exception = Record.Exception(() => subject.MaxTime = value); var e = exception.Should().BeOfType <ArgumentOutOfRangeException>().Subject; e.ParamName.Should().Be("value"); }
public void CreateCommand_should_return_expected_result() { var function = new BsonJavaScript("return 1"); var subject = new EvalOperation(_databaseNamespace, function, _messageEncoderSettings); var expectedResult = new BsonDocument { { "$eval", function } }; var result = subject.CreateCommand(); result.Should().Be(expectedResult); }
public void Execute_should_return_expected_result_when_args_are_provided( [Values(false, true)] bool async) { RequireServer.Check().Supports(Feature.Eval).Authentication(false); var function = "function(x) { return x; }"; var subject = new EvalOperation(_adminDatabaseNamespace, function, _messageEncoderSettings); subject.Args = new BsonValue[] { 1 }; var result = ExecuteOperation(subject, async); result.Should().Be(1.0); }
public async Task ExecuteAsync_should_return_expected_result() { var function = "return 1"; var subject = new EvalOperation(_databaseNamespace, function, _messageEncoderSettings); BsonValue result; using (var binding = SuiteConfiguration.GetReadWriteBinding()) { result = await subject.ExecuteAsync(binding); } result.Should().Be(1); }
public void constructor_should_initialize_subject() { var function = new BsonJavaScript("return 1"); var subject = new EvalOperation(_databaseNamespace, function, _messageEncoderSettings); subject.Args.Should().BeNull(); subject.DatabaseNamespace.Should().Be(_databaseNamespace); subject.Function.Should().Be(function); subject.MaxTime.Should().NotHaveValue(); // subject.MessageEncoderSettings.Should().Be(_messageEncoderSettings); Assert.That(subject.MessageEncoderSettings, Is.EqualTo(_messageEncoderSettings)); subject.NoLock.Should().NotHaveValue(); }
public void Execute_should_return_expected_result_when_noLock_is_provided( [Values(false, true)] bool async) { RequireServer.Where(authentication: AuthenticationRequirement.Off); var function = "return 1"; var subject = new EvalOperation(_adminDatabaseNamespace, function, _messageEncoderSettings); subject.NoLock = true; var result = ExecuteOperation(subject, async); result.Should().Be(1.0); }
public async Task ExecuteAsync_should_return_expected_result_when_args_are_provided() { var function = "function(x) { return x; }"; var subject = new EvalOperation(_databaseNamespace, function, _messageEncoderSettings); subject.Args = new BsonValue[] { 1 }; BsonValue result; using (var binding = SuiteConfiguration.GetReadWriteBinding()) { result = await subject.ExecuteAsync(binding); } result.Should().Be(1); }
public void CreateCommand_should_return_expected_result_when_noLock_is_provided() { var function = new BsonJavaScript("return 1"); var subject = new EvalOperation(_databaseNamespace, function, _messageEncoderSettings); subject.NoLock = true; var expectedResult = new BsonDocument { { "$eval", function }, { "nolock", true } }; var result = subject.CreateCommand(); result.Should().Be(expectedResult); }
public async Task ExecuteAsync_should_return_expected_result_when_noLock_is_provided() { var function = "return 1"; var subject = new EvalOperation(_databaseNamespace, function, _messageEncoderSettings); subject.NoLock = true; BsonValue result; using (var binding = CoreTestConfiguration.GetReadWriteBinding()) { result = await subject.ExecuteAsync(binding, CancellationToken.None); } result.Should().Be(1.0); }
public void CreateCommand_should_return_expected_result_when_maxTime_is_provided() { var function = new BsonJavaScript("return 1"); var subject = new EvalOperation(_databaseNamespace, function, _messageEncoderSettings); subject.MaxTime = TimeSpan.FromSeconds(1); var expectedResult = new BsonDocument { { "$eval", function }, { "maxTimeMS", 1000.0 } }; var result = subject.CreateCommand(); result.Should().Be(expectedResult); }
public void CreateCommand_should_return_expected_result_when_args_are_provided() { var function = new BsonJavaScript("return 1"); var subject = new EvalOperation(_databaseNamespace, function, _messageEncoderSettings); var args = new BsonValue[] { 1, 2, 3 }; subject.Args = args; var expectedResult = new BsonDocument { { "$eval", function }, { "args", new BsonArray(args) } }; var result = subject.CreateCommand(); result.Should().Be(expectedResult); }
public void Execute_should_throw_when_maxTime_is_exceeded( [Values(false, true)] bool async) { RequireServer.Check().Supports(Feature.Eval, Feature.FailPoints).Authentication(false).ClusterTypes(ClusterType.Standalone, ClusterType.ReplicaSet); var function = "return 1"; var subject = new EvalOperation(_adminDatabaseNamespace, function, _messageEncoderSettings) { MaxTime = TimeSpan.FromSeconds(9001) }; using (var failPoint = FailPoint.ConfigureAlwaysOn(_cluster, _session, FailPointName.MaxTimeAlwaysTimeout)) { var exception = Record.Exception(() => ExecuteOperation(subject, failPoint.Binding, async)); exception.Should().BeOfType <MongoExecutionTimeoutException>(); } }
public void CreateCommand_should_return_expected_result_when_MaxTime_is_set(long maxTimeTicks, int expectedMaxTimeMS) { var function = new BsonJavaScript("return 1"); var subject = new EvalOperation(_adminDatabaseNamespace, function, _messageEncoderSettings) { MaxTime = TimeSpan.FromTicks(maxTimeTicks) }; var expectedResult = new BsonDocument { { "$eval", function }, { "maxTimeMS", expectedMaxTimeMS } }; var result = subject.CreateCommand(); result.Should().Be(expectedResult); result["maxTimeMS"].BsonType.Should().Be(BsonType.Int32); }