public void ConstructorSucceeds() { MockRepository mocks = new MockRepository(); IRasterProvider adapted = mocks.CreateMock <IRasterProvider>(); AsyncRasterProviderAdapter adapter = new AsyncRasterProviderAdapter(adapted); }
public RasterQueryExpression(IGeometry geometry, SpatialOperation op, IRasterProvider provider) : base(new AllBandsExpression(), new SpatialBinaryExpression(new GeometryExpression(geometry), op, new ProviderExpression(provider))) { checkOp(op); }
public void BeginExecuteQueryBlockUntilDone() { MockRepository mocks = new MockRepository(); IRasterProvider adapted = mocks.CreateMock <IRasterProvider>(); IExtents iExtentsStub = MockRepository.GenerateStub <IExtents>(); RasterQueryExpression RasterQueryExpressionStub = MockRepository.GenerateStub <RasterQueryExpression>(iExtentsStub, SpatialOperation.Intersects); _returnStreamStub = MockRepository.GenerateStub <Stream>(); _sleepInterval = 750; using (mocks.Unordered()) { Expect.Call(adapted.ExecuteRasterQuery(RasterQueryExpressionStub)) .Do(new ExecuteQueryDelegate(executeQueryMock)); } mocks.ReplayAll(); AsyncRasterProviderAdapter adapter = new AsyncRasterProviderAdapter(adapted); IAsyncResult ar = adapter.BeginExecuteQuery(RasterQueryExpressionStub, null); Assert.NotNull(ar); Stopwatch timer = Stopwatch.StartNew(); Assert.Same(_returnStreamStub, adapter.EndExecuteQuery(ar)); timer.Stop(); Assert.True(ar.IsCompleted); Assert.False(ar.CompletedSynchronously); Assert.True(timer.ElapsedMilliseconds > 500L); mocks.VerifyAll(); }
/// <summary> /// This can help determine what kind of file format a file is, without actually opening the file. /// </summary> /// <param name="fileName"></param> /// <returns></returns> public virtual DataFormat GetFileFormat(string fileName) { string ext = Path.GetExtension(fileName); foreach (IDataProvider dp in DataProviders) { if (GetSupportedExtensions(dp.DialogReadFilter).Contains(ext)) { IVectorProvider vp = dp as IVectorProvider; if (vp != null) { return(DataFormat.Vector); } IRasterProvider rp = dp as IRasterProvider; if (rp != null) { return(DataFormat.Raster); } IImageDataProvider ip = dp as IImageDataProvider; if (ip != null) { return(DataFormat.Image); } return(DataFormat.Custom); } } return(DataFormat.Custom); }
public void BeginExecuteQueryPollingNotification() { MockRepository mocks = new MockRepository(); IRasterProvider adapted = mocks.CreateMock <IRasterProvider>(); IExtents iExtentsStub = MockRepository.GenerateStub <IExtents>(); RasterQueryExpression RasterQueryExpressionStub = MockRepository.GenerateStub <RasterQueryExpression>(iExtentsStub, SpatialOperation.Intersects); _returnStreamStub = MockRepository.GenerateStub <Stream>(); _sleepInterval = 1000; using (mocks.Unordered()) { Expect.Call(adapted.ExecuteRasterQuery(RasterQueryExpressionStub)) .Do(new ExecuteQueryDelegate(executeQueryMock)); } mocks.ReplayAll(); AsyncRasterProviderAdapter adapter = new AsyncRasterProviderAdapter(adapted); IAsyncResult ar = adapter.BeginExecuteQuery(RasterQueryExpressionStub, null); Assert.NotNull(ar); Assert.False(ar.IsCompleted); while (!ar.IsCompleted) { Thread.Sleep(350); } Assert.True(ar.IsCompleted); Assert.Same(_returnStreamStub, adapter.EndExecuteQuery(ar)); mocks.VerifyAll(); }
public void EndExecuteQueryThrowsOnInvalidExpression() { MockRepository mocks = new MockRepository(); IRasterProvider adapted = MockRepository.GenerateStub <IRasterProvider>(); AsyncResult result = new AsyncResult(null, this); AsyncRasterProviderAdapter adapter = new AsyncRasterProviderAdapter(adapted); Assert.Throws <ArgumentException>(delegate { adapter.EndExecuteQuery(result); }); }
public void IProviderMethodsPassThroughAdapter() { MockRepository mocks = new MockRepository(); IRasterProvider adapted = mocks.CreateMock <IRasterProvider>(); ICoordinateTransformation transformStub = MockRepository.GenerateStub <ICoordinateTransformation>(); Expression queryStub = MockRepository.GenerateStub <Expression>(); Object objectStub = MockRepository.GenerateStub <Object>(); IExtents extentsStub = MockRepository.GenerateStub <IExtents>(); ICoordinateSystem coordinateSystemStub = MockRepository.GenerateStub <ICoordinateSystem>(); using (mocks.Unordered()) { adapted.Close(); Expect.Call(adapted.ConnectionId) .Return("connectionid"); adapted.CoordinateTransformation = transformStub; Expect.Call(adapted.CoordinateTransformation) .Return(transformStub); Expect.Call(adapted.ExecuteQuery(queryStub)) .Return(objectStub); Expect.Call(adapted.GetExtents()) .Return(extentsStub); Expect.Call(adapted.IsOpen) .Return(true); adapted.Open(); Expect.Call(adapted.SpatialReference) .Return(coordinateSystemStub); //adapted.Srid = 1; Expect.Call(adapted.Srid) .Return("2"); } mocks.ReplayAll(); AsyncRasterProviderAdapter adapter = new AsyncRasterProviderAdapter(adapted); adapter.Close(); Assert.Equal("connectionid", adapter.ConnectionId); adapter.CoordinateTransformation = transformStub; Assert.Same(transformStub, adapter.CoordinateTransformation); Assert.Same(objectStub, adapter.ExecuteQuery(queryStub)); Assert.Same(extentsStub, adapter.GetExtents()); Assert.True(adapter.IsOpen); adapter.Open(); Assert.Same(coordinateSystemStub, adapter.SpatialReference); //adapter.Srid = 1; Assert.Equal("2", adapter.Srid); mocks.VerifyAll(); }
public void BeginExecuteQueryThrowsOnInvalidExpression() { MockRepository mocks = new MockRepository(); IRasterProvider adapted = MockRepository.GenerateStub <IRasterProvider>(); Expression expressionStub = MockRepository.GenerateStub <Expression>(); AsyncRasterProviderAdapter adapter = new AsyncRasterProviderAdapter(adapted); Assert.Throws <ArgumentException>(delegate { adapter.BeginExecuteQuery(expressionStub, null); }); }
/// <summary> /// Performs an actions need to be done for finalization of the raster provider. /// <para> /// Holders can provide various scenarious of disposing resources /// for raster providers of the same class. /// </para> /// </summary> /// <param name="providerName">A name of the raster provider</param> /// <param name="provider">A provider instance for finalization</param> public void ReleaseProviderIfNeeded(string providerName, IRasterProvider provider) { lock (_syncRoot) { foreach (RasterProviderHolderBase info in _registeredProviders) { if (info.Name == providerName) { info.ReleaseProviderIfNeeded(provider); return; } } } }
public void IDisposableMethodsPassThroughAdapter() { MockRepository mocks = new MockRepository(); IRasterProvider adapted = mocks.CreateMock <IRasterProvider>(); using (mocks.Unordered()) { adapted.Dispose(); } mocks.ReplayAll(); AsyncRasterProviderAdapter adapter = new AsyncRasterProviderAdapter(adapted); adapter.Dispose(); mocks.VerifyAll(); }
/// <summary> /// Creates a new raster using the specified raster provider and the Data Manager's Progress Handler, /// as well as its LoadInRam property. /// </summary> /// <param name="name">The fileName of the new file to create.</param> /// <param name="driverCode">The string code identifying the driver to use to create the raster. If no code is specified /// the manager will attempt to match the extension with a code specified in the Dialog write filter. </param> /// <param name="xSize">The number of columns in the raster</param> /// <param name="ySize">The number of rows in the raster</param> /// <param name="numBands">The number of bands in the raster</param> /// <param name="dataType">The data type for the raster</param> /// <param name="options">Any additional, driver specific options for creation</param> /// <returns>An IRaster representing the created raster.</returns> public virtual IRaster CreateRaster(string name, string driverCode, int xSize, int ySize, int numBands, Type dataType, string[] options) { // First check for the extension in the preferred plugins list string ext = Path.GetExtension(name).ToLower(); if (ext != null) { IRaster result; if (PreferredProviders.ContainsKey(ext)) { IRasterProvider rp = PreferredProviders[ext] as IRasterProvider; if (rp != null) { result = rp.Create(name, driverCode, xSize, ySize, numBands, dataType, options); if (result != null) { return(result); } } // if we get here, we found the provider, but it did not succeed in opening the file. } // Then check the general list of developer specified providers... but not the directory providers foreach (IDataProvider dp in DataProviders) { if (GetSupportedExtensions(dp.DialogWriteFilter).Contains(ext)) { IRasterProvider rp = dp as IRasterProvider; if (rp != null) { // attempt to open with the fileName. result = rp.Create(name, driverCode, xSize, ySize, numBands, dataType, options); if (result != null) { return(result); } } } } } throw new ApplicationException(DataStrings.FileTypeNotSupported); }
public void EndExecuteQueryThrowsTerminatingException() { MockRepository mocks = new MockRepository(); IRasterProvider adapted = mocks.CreateMock <IRasterProvider>(); IExtents iExtentsStub = MockRepository.GenerateStub <IExtents>(); RasterQueryExpression RasterQueryExpressionStub = MockRepository.GenerateStub <RasterQueryExpression>(iExtentsStub, SpatialOperation.Intersects); using (mocks.Unordered()) { Expect.Call(adapted.ExecuteRasterQuery(RasterQueryExpressionStub)) .Do(new ExecuteQueryDelegate(executeQueryExceptionMock)); } mocks.ReplayAll(); AsyncRasterProviderAdapter adapter = new AsyncRasterProviderAdapter(adapted); IAsyncResult ar = adapter.BeginExecuteQuery(RasterQueryExpressionStub, null); Assert.NotNull(ar); Assert.Throws <InvalidOperationException>(delegate { adapter.EndExecuteQuery(ar); }); }
public void IRasterProviderMethodsPassThroughAdapter() { MockRepository mocks = new MockRepository(); IRasterProvider adapted = mocks.CreateMock <IRasterProvider>(); Stream streamStub = MockRepository.GenerateStub <Stream>(); IExtents iExtentsStub = MockRepository.GenerateStub <IExtents>(); RasterQueryExpression rasterQueryExpressionStub = MockRepository.GenerateStub <RasterQueryExpression>(iExtentsStub, SpatialOperation.Intersects); using (mocks.Unordered()) { Expect.Call(adapted.ExecuteRasterQuery(rasterQueryExpressionStub)) .Return(streamStub); } mocks.ReplayAll(); AsyncRasterProviderAdapter adapter = new AsyncRasterProviderAdapter(adapted); Assert.Same(streamStub, adapter.ExecuteRasterQuery(rasterQueryExpressionStub)); mocks.VerifyAll(); }
/// <summary> /// Performs a finalization procedure for the raster provider. /// This implementation do nothing. /// </summary> /// <param name="provider">Raster provider instance</param> public override void ReleaseProviderIfNeeded(IRasterProvider provider) { }
/// <summary> /// Performs a finalization procedure for the raster provider, if needed. /// </summary> /// <param name="provider">Spatial data provider instance</param> public abstract void ReleaseProviderIfNeeded(IRasterProvider provider);
/// <summary> /// Performs an actions need to be done for finalization of the raster provider. /// <para> /// Holders can provide various scenarious of disposing resources /// for raster providers of the same class. /// </para> /// </summary> /// <param name="providerName">A name of the raster provider</param> /// <param name="provider">A provider instance for finalization</param> public void ReleaseProviderIfNeeded(string providerName, IRasterProvider provider) { lock (_syncRoot) { foreach (RasterProviderHolderBase info in _registeredProviders) if (info.Name == providerName) { info.ReleaseProviderIfNeeded(provider); return; } } }
public AsyncRasterProviderAdapter(IRasterProvider provider) : base(provider) { }
/// <summary> /// Performs a finalization procedure for the raster provider. /// This implementation call Dispose method of the provider. /// </summary> /// <param name="provider">Raster provider instance</param> public override void ReleaseProviderIfNeeded(IRasterProvider provider) { GDALRasterProvider p = provider as GDALRasterProvider; if (p != null) p.Dispose(); }