public void TestStart()
        {
            var completesResults = new MockCompletesEventually.CompletesResults();
            var plugin           = new MockCompletesPlugin(completesResults);
            var registrar        = new MockRegistrar();

            plugin.Start(registrar);
            plugin.CompletesEventuallyProvider.completesEventually.With(new object());
            var completes = (MockCompletesEventually)plugin.CompletesEventuallyProvider.ProvideCompletesFor(null);

            completes.With(7);

            Assert.Equal(1, registrar.RegisterCount);
            Assert.Equal(1, plugin.CompletesEventuallyProvider.initializeUsing);
            Assert.Equal(1, plugin.CompletesEventuallyProvider.provideCompletesForCount);
            Assert.Equal(2, completesResults.WithCount.Get());
            Assert.Equal(2, completes.completesResults.WithCount.Get());
            Assert.Equal(7, completes.completesResults.Outcome.Get());
        }
 public MockCompletesEventuallyProvider(MockCompletesEventually.CompletesResults completesResults)
 {
     this.completesResults = completesResults;
 }
 public MockCompletesPlugin(MockCompletesEventually.CompletesResults completesResults) => _completesResults = completesResults;