本文整理汇总了C#中MongoDB.DriverUnitTests.FailPoint类的典型用法代码示例。如果您正苦于以下问题:C# FailPoint类的具体用法?C# FailPoint怎么用?C# FailPoint使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
FailPoint类属于MongoDB.DriverUnitTests命名空间,在下文中一共展示了FailPoint类的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: TestEvalWithMaxTime
public void TestEvalWithMaxTime()
{
if (_primary.Supports(FeatureId.MaxTime) && _primary.InstanceType != MongoServerInstanceType.ShardRouter)
{
using (var failpoint = new FailPoint(FailPointName.MaxTimeAlwaysTimeout, _server, _primary))
{
if (failpoint.IsSupported())
{
failpoint.SetAlwaysOn();
var args = new EvalArgs
{
Code = "return 0;",
MaxTime = TimeSpan.FromMilliseconds(1)
};
Assert.Throws<ExecutionTimeoutException>(() => _database.Eval(args));
}
}
}
}
示例2: TestFindOneAsWithMaxTime
public void TestFindOneAsWithMaxTime()
{
if (_primary.Supports(FeatureId.MaxTime))
{
using (var failpoint = new FailPoint(FailPointName.MaxTimeAlwaysTimeout, _server, _primary))
{
if (failpoint.IsSupported())
{
_collection.RemoveAll();
_collection.Insert(new BsonDocument { { "X", 1 } });
failpoint.SetAlwaysOn();
var args = new FindOneArgs { MaxTime = TimeSpan.FromMilliseconds(1) };
Assert.Throws<ExecutionTimeoutException>(() => _collection.FindOneAs(typeof(TestClass), args));
}
}
}
}
示例3: TestFindWithMaxTime
public void TestFindWithMaxTime()
{
if (_primary.Supports(FeatureId.MaxTime))
{
using (var failpoint = new FailPoint(FailPointName.MaxTimeAlwaysTimeout, _server, _primary))
{
if (failpoint.IsSupported())
{
if (_collection.Exists()) { _collection.Drop(); }
_collection.Insert(new BsonDocument("x", 1));
failpoint.SetAlwaysOn();
var maxTime = TimeSpan.FromMilliseconds(1);
Assert.Throws<ExecutionTimeoutException>(() => _collection.FindAll().SetMaxTime(maxTime).ToList());
}
}
}
}
示例4: TestMapReduceInlineWithMaxTime
public void TestMapReduceInlineWithMaxTime()
{
if (_primary.Supports(FeatureId.MaxTime))
{
using (var failpoint = new FailPoint(FailPointName.MaxTimeAlwaysTimeout, _server, _primary))
{
if (failpoint.IsSupported())
{
_collection.RemoveAll();
_collection.Insert(new BsonDocument("x", 1)); // make sure collection has at least one document so map gets called
failpoint.SetAlwaysOn();
var args = new MapReduceArgs
{
MapFunction = "function() { }",
ReduceFunction = "function(key, value) { return 0; }",
MaxTime = TimeSpan.FromMilliseconds(1)
};
Assert.Throws<ExecutionTimeoutException>(() => _collection.MapReduce(args));
}
}
}
}
示例5: TestFindAndRemoveWithMaxTime
public void TestFindAndRemoveWithMaxTime()
{
if (_primary.Supports(FeatureId.MaxTime))
{
using (var failpoint = new FailPoint(FailPointName.MaxTimeAlwaysTimeout, _server, _primary))
{
if (failpoint.IsSupported())
{
failpoint.SetAlwaysOn();
var args = new FindAndRemoveArgs { MaxTime = TimeSpan.FromMilliseconds(1) };
Assert.Throws<ExecutionTimeoutException>(() => _collection.FindAndRemove(args));
}
}
}
}
示例6: TestGeoNearWithMaxTime
public void TestGeoNearWithMaxTime()
{
if (_primary.Supports(FeatureId.MaxTime))
{
using (var failpoint = new FailPoint(FailPointName.MaxTimeAlwaysTimeout, _server, _primary))
{
if (failpoint.IsSupported())
{
if (_collection.Exists()) { _collection.Drop(); }
_collection.Insert(new BsonDocument("loc", new BsonArray { 0, 0 }));
_collection.EnsureIndex(IndexKeys.GeoSpatial("loc"));
failpoint.SetAlwaysOn();
var args = new GeoNearArgs
{
Near = GeoNearPoint.From(0, 0),
MaxTime = TimeSpan.FromMilliseconds(1)
};
Assert.Throws<ExecutionTimeoutException>(() => _collection.GeoNearAs<BsonDocument>(args));
}
}
}
}
示例7: TestAggregateMaxTime
public void TestAggregateMaxTime()
{
if (_primary.Supports(FeatureId.MaxTime))
{
using (var failpoint = new FailPoint(FailPointName.MaxTimeAlwaysTimeout, _server, _primary))
{
if (failpoint.IsSupported())
{
_collection.RemoveAll();
_collection.DropAllIndexes();
_collection.Insert(new BsonDocument("x", 1));
failpoint.SetAlwaysOn();
var args = new AggregateArgs
{
Pipeline = new BsonDocument[]
{
new BsonDocument("$match", Query.Exists("_id").ToBsonDocument())
},
MaxTime = TimeSpan.FromMilliseconds(1)
};
var query = _collection.Aggregate(args);
Assert.Throws<ExecutionTimeoutException>(() => query.ToList());
}
}
}
}
示例8: TestGeoHaystackSearchWithMaxTime
public void TestGeoHaystackSearchWithMaxTime()
{
if (_primary.Supports(FeatureId.MaxTime))
{
if (_primary.InstanceType != MongoServerInstanceType.ShardRouter)
{
using (var failpoint = new FailPoint(FailPointName.MaxTimeAlwaysTimeout, _server, _primary))
{
if (failpoint.IsSupported())
{
if (_collection.Exists()) { _collection.Drop(); }
_collection.Insert(new Place { Location = new[] { 34.2, 33.3 }, Type = "restaurant" });
_collection.Insert(new Place { Location = new[] { 34.2, 37.3 }, Type = "restaurant" });
_collection.Insert(new Place { Location = new[] { 59.1, 87.2 }, Type = "office" });
_collection.EnsureIndex(IndexKeys.GeoSpatialHaystack("Location", "Type"), IndexOptions.SetBucketSize(1));
failpoint.SetAlwaysOn();
var args = new GeoHaystackSearchArgs
{
Near = GeoNearPoint.From(33, 33),
AdditionalFieldName = "Type",
AdditionalFieldValue = "restaurant",
Limit = 30,
MaxDistance = 6,
MaxTime = TimeSpan.FromMilliseconds(1)
};
Assert.Throws<ExecutionTimeoutException>(() => _collection.GeoHaystackSearchAs<Place>(args));
}
}
}
}
}
示例9: TestDistinctWithMaxTime
public void TestDistinctWithMaxTime()
{
if (_primary.Supports(FeatureId.MaxTime))
{
using (var failpoint = new FailPoint(FailPointName.MaxTimeAlwaysTimeout, _server, _primary))
{
if (failpoint.IsSupported())
{
_collection.Drop();
_collection.Insert(new BsonDocument("x", 1)); // ensure collection is not empty
failpoint.SetAlwaysOn();
var args = new DistinctArgs
{
Key = "x",
MaxTime = TimeSpan.FromMilliseconds(1)
};
Assert.Throws<ExecutionTimeoutException>(() => _collection.Distinct<BsonValue>(args));
}
}
}
}
示例10: TestValidateWithMaxTime
public void TestValidateWithMaxTime()
{
if (_primary.Supports(FeatureId.MaxTime))
{
using (var failpoint = new FailPoint(FailPointName.MaxTimeAlwaysTimeout, _server, _primary))
{
var instance = _server.RequestConnection.ServerInstance; // FailPoint did a RequestStart
if (instance.InstanceType != MongoServerInstanceType.ShardRouter)
{
if (failpoint.IsSupported())
{
_collection.Drop();
_collection.Insert(new BsonDocument("x", 1)); // ensure collection is not empty
failpoint.SetAlwaysOn();
var args = new ValidateCollectionArgs
{
MaxTime = TimeSpan.FromMilliseconds(1)
};
Assert.Throws<ExecutionTimeoutException>(() => _collection.Validate(args));
}
}
}
}
}
示例11: TestGroupWithMaxTime
public void TestGroupWithMaxTime()
{
if (_primary.Supports(FeatureId.MaxTime))
{
using (var failpoint = new FailPoint(FailPointName.MaxTimeAlwaysTimeout, _server, _primary))
{
if (failpoint.IsSupported())
{
_collection.Drop();
_collection.Insert(new BsonDocument("x", 1)); // ensure collection is not empty
failpoint.SetAlwaysOn();
var args = new GroupArgs
{
KeyFields = GroupBy.Keys("x"),
Initial = new BsonDocument("count", 0),
ReduceFunction = "function(doc, prev) { prev.count += 1 }",
MaxTime = TimeSpan.FromMilliseconds(1)
};
Assert.Throws<ExecutionTimeoutException>(() => _collection.Group(args));
}
}
}
}
示例12: TestFindAndModifyWithMaxTime
public void TestFindAndModifyWithMaxTime()
{
if (_primary.Supports(FeatureId.MaxTime) && _primary.Supports(FeatureId.FailPoints))
{
using (var failpoint = new FailPoint(FailPointName.MaxTimeAlwaysTimeout, _server, _primary))
{
failpoint.SetAlwaysOn();
var args = new FindAndModifyArgs
{
Update = Update.Set("x", 1),
MaxTime = TimeSpan.FromMilliseconds(1)
};
Assert.Throws<ExecutionTimeoutException>(() => _collection.FindAndModify(args));
}
}
}