using OSGeo.MapGuide.Test.Common; using SqliteDotNet; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace OSGeo.MapGuide.Test.Operations { public interface IMapCreator { MgMapBase CreateMap(MgResourceIdentifier resId); MgLayerBase CreateLayer(MgResourceIdentifier resId); } /// /// The base class of all test executors operating with the runtime map /// /// The test executor subclass type public abstract class MapLayerOperationExecutor : PlatformApiTestExecutor { protected MgMapBase _map; protected MgResourceService _resourceService; protected IMapCreator _creator; protected MapLayerOperationExecutor(MgResourceService resSvc, string unitTestVm, IMapCreator creator) : base(typeof(T).Name.ToUpper(), ApiTypes.Platform, unitTestVm) { _resourceService = resSvc; _creator = creator; } protected void CreateMapFromResource(int paramSetId) { if (_map != null) return; _unitTestVm.Execute("Select ParamValue from Params WHERE ParamSet={0} AND ParamName=\"MAPDEFINITION\"", paramSetId); string mapName = _unitTestVm.GetString("ParamValue"); if (string.IsNullOrEmpty(mapName)) { mapName = "Library://maplayertest/World.MapDefinition"; } MgResourceIdentifier mdfId = new MgResourceIdentifier(mapName); _map = _creator.CreateMap(mdfId); } protected MgLayerBase FindLayer(string name) { if (_map != null) { var layers = _map.GetLayers(); var lidx = layers.IndexOf(name); if (lidx >= 0) return layers.GetItem(lidx); } return null; } } }