public void BeginExecuteQueryPollingNotification() { MockRepository mocks = new MockRepository(); IFeatureProvider adapted = mocks.CreateMock <IFeatureProvider>(); IExtents iExtentsStub = MockRepository.GenerateStub <IExtents>(); FeatureQueryExpression featureQueryExpressionStub = MockRepository.GenerateStub <FeatureQueryExpression>(iExtentsStub, SpatialOperation.Intersects); _returnReaderStub = MockRepository.GenerateStub <IFeatureDataReader>(); _sleepInterval = 1000; using (mocks.Unordered()) { Expect.Call(adapted.ExecuteFeatureQuery(featureQueryExpressionStub)) .Do(new ExecuteQueryDelegate(executeQueryMock)); } mocks.ReplayAll(); AsyncFeatureProviderAdapter adapter = new AsyncFeatureProviderAdapter(adapted); IAsyncResult ar = adapter.BeginExecuteQuery(featureQueryExpressionStub, null); Assert.NotNull(ar); Assert.False(ar.IsCompleted); while (!ar.IsCompleted) { Thread.Sleep(350); } Assert.True(ar.IsCompleted); Assert.Same(_returnReaderStub, adapter.EndExecuteQuery(ar)); mocks.VerifyAll(); }
public void BeginExecuteQueryBlockUntilDone() { MockRepository mocks = new MockRepository(); IFeatureProvider adapted = mocks.CreateMock <IFeatureProvider>(); IExtents iExtentsStub = MockRepository.GenerateStub <IExtents>(); FeatureQueryExpression featureQueryExpressionStub = MockRepository.GenerateStub <FeatureQueryExpression>(iExtentsStub, SpatialOperation.Intersects); _returnReaderStub = MockRepository.GenerateStub <IFeatureDataReader>(); _sleepInterval = 750; using (mocks.Unordered()) { Expect.Call(adapted.ExecuteFeatureQuery(featureQueryExpressionStub)) .Do(new ExecuteQueryDelegate(executeQueryMock)); } mocks.ReplayAll(); AsyncFeatureProviderAdapter adapter = new AsyncFeatureProviderAdapter(adapted); IAsyncResult ar = adapter.BeginExecuteQuery(featureQueryExpressionStub, null); Assert.NotNull(ar); Stopwatch timer = Stopwatch.StartNew(); Assert.Same(_returnReaderStub, adapter.EndExecuteQuery(ar)); timer.Stop(); Assert.True(ar.IsCompleted); Assert.False(ar.CompletedSynchronously); Assert.True(timer.ElapsedMilliseconds > 500L); mocks.VerifyAll(); }
public void BeginExecuteQueryThrowsOnInvalidExpression() { MockRepository mocks = new MockRepository(); IFeatureProvider adapted = MockRepository.GenerateStub <IFeatureProvider>(); Expression expressionStub = MockRepository.GenerateStub <Expression>(); AsyncFeatureProviderAdapter adapter = new AsyncFeatureProviderAdapter(adapted); Assert.Throws <ArgumentException>(delegate { adapter.BeginExecuteQuery(expressionStub, null); }); }
public void EndExecuteQueryThrowsTerminatingException() { MockRepository mocks = new MockRepository(); IFeatureProvider adapted = mocks.CreateMock <IFeatureProvider>(); IExtents iExtentsStub = MockRepository.GenerateStub <IExtents>(); FeatureQueryExpression featureQueryExpressionStub = MockRepository.GenerateStub <FeatureQueryExpression>(iExtentsStub, SpatialOperation.Intersects); using (mocks.Unordered()) { Expect.Call(adapted.ExecuteFeatureQuery(featureQueryExpressionStub)) .Do(new ExecuteQueryDelegate(executeQueryExceptionMock)); } mocks.ReplayAll(); AsyncFeatureProviderAdapter adapter = new AsyncFeatureProviderAdapter(adapted); IAsyncResult ar = adapter.BeginExecuteQuery(featureQueryExpressionStub, null); Assert.NotNull(ar); Assert.Throws <InvalidOperationException>(delegate { adapter.EndExecuteQuery(ar); }); }