public virtual void TestIllegalCollectorOnReplay()
{
// tests that the Collector passed to replay() has an out-of-order mode that
// is valid with the Collector passed to the ctor
// 'src' Collector does not support out-of-order
CachingCollector cc = CachingCollector.Create(new NoOpCollector(false), true, 50 * ONE_BYTE);
cc.SetScorer(new MockScorer());
for (int i = 0; i < 10; i++)
{
cc.Collect(i);
}
cc.Replay(new NoOpCollector(true)); // this call should not fail
cc.Replay(new NoOpCollector(false)); // this call should not fail
// 'src' Collector supports out-of-order
cc = CachingCollector.Create(new NoOpCollector(true), true, 50 * ONE_BYTE);
cc.SetScorer(new MockScorer());
for (int i = 0; i < 10; i++)
{
cc.Collect(i);
}
cc.Replay(new NoOpCollector(true)); // this call should not fail
try
{
cc.Replay(new NoOpCollector(false)); // this call should fail
Assert.Fail("should have failed if an in-order Collector was given to replay(), " + "while CachingCollector was initialized with out-of-order collection");
}
catch (Exception e) when(e.IsIllegalArgumentException())
{
// ok
}
}