[mapguide-commits] r8493 - in trunk/MgDev/UnitTest/WebTier: DotNet/TestCommon DotNet/TestMapGuideApi DotNet/TestMapGuideApi/ExternalTests Java/src/org/osgeo/mapguide/test Java/src/org/osgeo/mapguide/test/mapguide

svn_mapguide at osgeo.org svn_mapguide at osgeo.org
Tue Jan 6 04:46:43 PST 2015


Author: jng
Date: 2015-01-06 04:46:43 -0800 (Tue, 06 Jan 2015)
New Revision: 8493

Added:
   trunk/MgDev/UnitTest/WebTier/DotNet/TestMapGuideApi/ExternalTests/RenderingServiceTests.cs
   trunk/MgDev/UnitTest/WebTier/Java/src/org/osgeo/mapguide/test/mapguide/RenderingServiceTest.java
Modified:
   trunk/MgDev/UnitTest/WebTier/DotNet/TestCommon/Assert.cs
   trunk/MgDev/UnitTest/WebTier/DotNet/TestMapGuideApi/TestMapGuideApi.csproj
   trunk/MgDev/UnitTest/WebTier/Java/src/org/osgeo/mapguide/test/MapGuideTests.java
Log:
Add .net and Java tests to exercise all variants of RenderTile and RenderTileXYZ just for peace of mind.

Modified: trunk/MgDev/UnitTest/WebTier/DotNet/TestCommon/Assert.cs
===================================================================
--- trunk/MgDev/UnitTest/WebTier/DotNet/TestCommon/Assert.cs	2015-01-06 12:45:48 UTC (rev 8492)
+++ trunk/MgDev/UnitTest/WebTier/DotNet/TestCommon/Assert.cs	2015-01-06 12:46:43 UTC (rev 8493)
@@ -56,6 +56,12 @@
                 throw new AssertException("Reference is not null");
         }
 
+        public static void IsNotNull(object obj)
+        {
+            if (obj == null)
+                throw new AssertException("Reference is null");
+        }
+
         public static void IsTrue(bool condition)
         {
             if (!condition)

Added: trunk/MgDev/UnitTest/WebTier/DotNet/TestMapGuideApi/ExternalTests/RenderingServiceTests.cs
===================================================================
--- trunk/MgDev/UnitTest/WebTier/DotNet/TestMapGuideApi/ExternalTests/RenderingServiceTests.cs	                        (rev 0)
+++ trunk/MgDev/UnitTest/WebTier/DotNet/TestMapGuideApi/ExternalTests/RenderingServiceTests.cs	2015-01-06 12:46:43 UTC (rev 8493)
@@ -0,0 +1,127 @@
+using OSGeo.MapGuide.Test.Common;
+using System;
+using System.Collections.Generic;
+using System.Drawing;
+using System.Drawing.Imaging;
+using System.IO;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace OSGeo.MapGuide.Test.Web.ExternalTests
+{
+    public class RenderTileTest : IExternalTest
+    {
+        private static void LoadResource(MgResourceService resSvc, string resIdStr, string path)
+        {
+            MgResourceIdentifier resId = new MgResourceIdentifier(resIdStr);
+            MgByteSource bs = new MgByteSource(path);
+            MgByteReader br = bs.GetReader();
+            resSvc.SetResource(resId, br, null);
+        }
+
+        private static void LoadResourceData(MgResourceService resSvc, string resIdStr, string dataName, string dataType, string path)
+        {
+            MgResourceIdentifier resId = new MgResourceIdentifier(resIdStr);
+            MgByteSource bs = new MgByteSource(path);
+            MgByteReader br = bs.GetReader();
+            resSvc.SetResourceData(resId, dataName, dataType, br);
+        }
+
+        public void Execute(IPlatformFactory factory, ITestLogger logger)
+        {
+            var resSvc = (MgResourceService)factory.CreateService(MgServiceType.ResourceService);
+            var renderSvc = (MgRenderingService)factory.CreateService(MgServiceType.RenderingService);
+            var root = "../../TestData/TileService/";
+
+            LoadResource(resSvc, "Library://UnitTests/Data/RoadCenterLines.FeatureSource", root + "UT_RoadCenterLines.fs");
+            LoadResourceData(resSvc, "Library://UnitTests/Data/RoadCenterLines.FeatureSource", "UT_RoadCenterLines.sdf", MgResourceDataType.File, root + "UT_RoadCenterLines.sdf");
+            LoadResource(resSvc, "Library://UnitTests/Layers/RoadCenterLines.LayerDefinition", root + "UT_RoadCenterLines.ldf");
+
+            LoadResource(resSvc, "Library://UnitTests/Data/VotingDistricts.FeatureSource", root + "UT_VotingDistricts.fs");
+            LoadResourceData(resSvc, "Library://UnitTests/Data/VotingDistricts.FeatureSource", "UT_VotingDistricts.sdf", MgResourceDataType.File, root + "UT_VotingDistricts.sdf");
+            LoadResource(resSvc, "Library://UnitTests/Layers/VotingDistricts.LayerDefinition", root + "UT_VotingDistricts.ldf");
+
+            LoadResource(resSvc, "Library://UnitTests/Data/Parcels.FeatureSource", root + "UT_Parcels.fs");
+            LoadResourceData(resSvc, "Library://UnitTests/Data/Parcels.FeatureSource", "UT_Parcels.sdf", MgResourceDataType.File, root + "UT_Parcels.sdf");
+            LoadResource(resSvc, "Library://UnitTests/Layers/Parcels.LayerDefinition", root + "UT_Parcels.ldf");
+
+            LoadResource(resSvc, "Library://UnitTests/Maps/BaseMap.MapDefinition", root + "UT_BaseMap.mdf");
+
+            var map = (MgMap)factory.CreateMap(new MgResourceIdentifier("Library://UnitTests/Maps/BaseMap.MapDefinition"));
+            var img = renderSvc.RenderTile(map, "BaseLayers", 0, 0);
+            CheckValidImage(img);
+            img = renderSvc.RenderTile(map, "BaseLayers", 0, 0, 256, 256, 96, MgImageFormats.Png);
+            CheckValidImage(img, 256, 256, MgImageFormats.Png);
+            img = renderSvc.RenderTile(map, "BaseLayers", 0, 0, 256, 256, 96, MgImageFormats.Gif);
+            CheckValidImage(img, 256, 256, MgImageFormats.Gif);
+            img = renderSvc.RenderTile(map, "BaseLayers", 0, 0, 256, 256, 96, MgImageFormats.Jpeg);
+            CheckValidImage(img, 256, 256, MgImageFormats.Jpeg);
+            img = renderSvc.RenderTile(map, "BaseLayers", 0, 0, 256, 256, 96, MgImageFormats.Png8);
+            CheckValidImage(img, 256, 256, MgImageFormats.Png8);
+            img = renderSvc.RenderTileXYZ(map, "BaseLayers", 2099, 2985, 13);
+            CheckValidImage(img, 256, 256);
+            img = renderSvc.RenderTileXYZ(map, "BaseLayers", 2099, 2985, 13, 96, MgImageFormats.Png);
+            CheckValidImage(img, 256, 256, MgImageFormats.Png);
+            img = renderSvc.RenderTileXYZ(map, "BaseLayers", 2099, 2985, 13, 96, MgImageFormats.Png8);
+            CheckValidImage(img, 256, 256, MgImageFormats.Png8);
+            img = renderSvc.RenderTileXYZ(map, "BaseLayers", 2099, 2985, 13, 96, MgImageFormats.Gif);
+            CheckValidImage(img, 256, 256, MgImageFormats.Gif);
+            img = renderSvc.RenderTileXYZ(map, "BaseLayers", 2099, 2985, 13, 96, MgImageFormats.Jpeg);
+            CheckValidImage(img, 256, 256, MgImageFormats.Jpeg);
+        }
+
+        private void CheckValidImage(MgByteReader img, int? imageWidth = null, int? imageHeight = null, string format = null)
+        {
+            try
+            {
+                MgByteSink sink = new MgByteSink(img);
+                sink.ToFile("tile.img");
+                using (Image image = Image.FromFile("tile.img"))
+                {
+                    Assert.IsNotNull(image);
+                    if (imageWidth != null)
+                        Assert.Equals(image.Width, imageWidth.Value);
+                    if (imageHeight != null)
+                        Assert.Equals(image.Height, imageHeight.Value);
+
+                    if (format != null)
+                    {
+                        switch(format)
+                        {
+                            case MgImageFormats.Gif:
+                                Assert.Equals(image.RawFormat, ImageFormat.Gif);
+                                break;
+                            case MgImageFormats.Jpeg:
+                                Assert.Equals(image.RawFormat, ImageFormat.Jpeg);
+                                break;
+                            case MgImageFormats.Png:
+                            case MgImageFormats.Png8:
+                                Assert.Equals(image.RawFormat, ImageFormat.Png);
+                                break;
+                            case MgImageFormats.Tiff:
+                                Assert.Equals(image.RawFormat, ImageFormat.Tiff);
+                                break;
+                        }
+                    }
+                }
+            }
+            catch (Exception ex)
+            {
+                throw new AssertException("Invalid image found: " + ex.Message);
+            }
+            finally
+            {
+                if (File.Exists("tile.img"))
+                {
+                    try
+                    {
+                        File.Delete("tile.img");
+                    }
+                    catch { }
+                }
+            }
+        }
+    }
+
+}

Modified: trunk/MgDev/UnitTest/WebTier/DotNet/TestMapGuideApi/TestMapGuideApi.csproj
===================================================================
--- trunk/MgDev/UnitTest/WebTier/DotNet/TestMapGuideApi/TestMapGuideApi.csproj	2015-01-06 12:45:48 UTC (rev 8492)
+++ trunk/MgDev/UnitTest/WebTier/DotNet/TestMapGuideApi/TestMapGuideApi.csproj	2015-01-06 12:46:43 UTC (rev 8493)
@@ -70,6 +70,7 @@
     </Reference>
     <Reference Include="System" />
     <Reference Include="System.Core" />
+    <Reference Include="System.Drawing" />
     <Reference Include="System.Xml.Linq" />
     <Reference Include="System.Data.DataSetExtensions" />
     <Reference Include="Microsoft.CSharp" />
@@ -80,6 +81,7 @@
     <Compile Include="DrawingService\DrawingServiceOperationExecutor.cs" />
     <Compile Include="DrawingService\Operations.cs" />
     <Compile Include="ExternalTests\CollectionTests.cs" />
+    <Compile Include="ExternalTests\RenderingServiceTests.cs" />
     <Compile Include="ExternalTests\ResourceServiceTests.cs" />
     <Compile Include="MapGuideTests.cs" />
     <Compile Include="MappingService\MappingServiceOperationExecutor.cs" />

Modified: trunk/MgDev/UnitTest/WebTier/Java/src/org/osgeo/mapguide/test/MapGuideTests.java
===================================================================
--- trunk/MgDev/UnitTest/WebTier/Java/src/org/osgeo/mapguide/test/MapGuideTests.java	2015-01-06 12:45:48 UTC (rev 8492)
+++ trunk/MgDev/UnitTest/WebTier/Java/src/org/osgeo/mapguide/test/MapGuideTests.java	2015-01-06 12:46:43 UTC (rev 8493)
@@ -14,6 +14,7 @@
         
         //--------------- BEGIN Test Registration -----------------//
         tests.add(new ReadOnlyLayerCollectionTest());
+        tests.add(new RenderingServiceTest());
         //--------------- END Test Registration -------------------//
 
         for (IExternalTest test : tests)

Added: trunk/MgDev/UnitTest/WebTier/Java/src/org/osgeo/mapguide/test/mapguide/RenderingServiceTest.java
===================================================================
--- trunk/MgDev/UnitTest/WebTier/Java/src/org/osgeo/mapguide/test/mapguide/RenderingServiceTest.java	                        (rev 0)
+++ trunk/MgDev/UnitTest/WebTier/Java/src/org/osgeo/mapguide/test/mapguide/RenderingServiceTest.java	2015-01-06 12:46:43 UTC (rev 8493)
@@ -0,0 +1,86 @@
+package org.osgeo.mapguide.test.mapguide;
+
+import java.io.*;
+import java.nio.file.*;
+import java.util.*;
+import org.osgeo.mapguide.*;
+import org.osgeo.mapguide.test.common.*;
+
+public class RenderingServiceTest implements IExternalTest
+{
+    private static void LoadResource(MgResourceService resSvc, String resIdStr, String path)
+    {
+        MgResourceIdentifier resId = new MgResourceIdentifier(resIdStr);
+        MgByteSource bs = new MgByteSource(path);
+        MgByteReader br = bs.getReader();
+        resSvc.setResource(resId, br, null);
+    }
+
+    private static void LoadResourceData(MgResourceService resSvc, String resIdStr, String dataName, String dataType, String path)
+    {
+        MgResourceIdentifier resId = new MgResourceIdentifier(resIdStr);
+        MgByteSource bs = new MgByteSource(path);
+        MgByteReader br = bs.getReader();
+        resSvc.setResourceData(resId, dataName, dataType, br);
+    }
+
+    public void Execute(IPlatformFactory factory, ITestLogger logger)
+    {
+        MgResourceService resSvc = (MgResourceService)factory.createService(MgServiceType.ResourceService);
+        MgRenderingService renderSvc = (MgRenderingService)factory.createService(MgServiceType.RenderingService);
+        String root = "../../TestData/TileService/";
+
+        LoadResource(resSvc, "Library://UnitTests/Data/RoadCenterLines.FeatureSource", root + "UT_RoadCenterLines.fs");
+        LoadResourceData(resSvc, "Library://UnitTests/Data/RoadCenterLines.FeatureSource", "UT_RoadCenterLines.sdf", MgResourceDataType.File, root + "UT_RoadCenterLines.sdf");
+        LoadResource(resSvc, "Library://UnitTests/Layers/RoadCenterLines.LayerDefinition", root + "UT_RoadCenterLines.ldf");
+
+        LoadResource(resSvc, "Library://UnitTests/Data/VotingDistricts.FeatureSource", root + "UT_VotingDistricts.fs");
+        LoadResourceData(resSvc, "Library://UnitTests/Data/VotingDistricts.FeatureSource", "UT_VotingDistricts.sdf", MgResourceDataType.File, root + "UT_VotingDistricts.sdf");
+        LoadResource(resSvc, "Library://UnitTests/Layers/VotingDistricts.LayerDefinition", root + "UT_VotingDistricts.ldf");
+
+        LoadResource(resSvc, "Library://UnitTests/Data/Parcels.FeatureSource", root + "UT_Parcels.fs");
+        LoadResourceData(resSvc, "Library://UnitTests/Data/Parcels.FeatureSource", "UT_Parcels.sdf", MgResourceDataType.File, root + "UT_Parcels.sdf");
+        LoadResource(resSvc, "Library://UnitTests/Layers/Parcels.LayerDefinition", root + "UT_Parcels.ldf");
+
+        LoadResource(resSvc, "Library://UnitTests/Maps/BaseMap.MapDefinition", root + "UT_BaseMap.mdf");
+
+        MgMap map = (MgMap)factory.createMap();
+        map.create(new MgResourceIdentifier("Library://UnitTests/Maps/BaseMap.MapDefinition"), "BaseMap");
+        MgByteReader img = renderSvc.renderTile(map, "BaseLayers", 0, 0);
+        CheckValidImage(img);
+        img = renderSvc.renderTile(map, "BaseLayers", 0, 0, 256, 256, 96, MgImageFormats.Png);
+        CheckValidImage(img); //, 256, 256, MgImageFormats.Png);
+        img = renderSvc.renderTile(map, "BaseLayers", 0, 0, 256, 256, 96, MgImageFormats.Gif);
+        CheckValidImage(img); //, 256, 256, MgImageFormats.Gif);
+        img = renderSvc.renderTile(map, "BaseLayers", 0, 0, 256, 256, 96, MgImageFormats.Jpeg);
+        CheckValidImage(img); //, 256, 256, MgImageFormats.Jpeg);
+        img = renderSvc.renderTile(map, "BaseLayers", 0, 0, 256, 256, 96, MgImageFormats.Png8);
+        CheckValidImage(img); //, 256, 256, MgImageFormats.Png8);
+        img = renderSvc.renderTileXYZ(map, "BaseLayers", 2099, 2985, 13);
+        CheckValidImage(img); //, 256, 256);
+        img = renderSvc.renderTileXYZ(map, "BaseLayers", 2099, 2985, 13, 96, MgImageFormats.Png);
+        CheckValidImage(img); //, 256, 256, MgImageFormats.Png);
+        img = renderSvc.renderTileXYZ(map, "BaseLayers", 2099, 2985, 13, 96, MgImageFormats.Png8);
+        CheckValidImage(img); //, 256, 256, MgImageFormats.Png8);
+        img = renderSvc.renderTileXYZ(map, "BaseLayers", 2099, 2985, 13, 96, MgImageFormats.Gif);
+        CheckValidImage(img); //, 256, 256, MgImageFormats.Gif);
+        img = renderSvc.renderTileXYZ(map, "BaseLayers", 2099, 2985, 13, 96, MgImageFormats.Jpeg);
+        CheckValidImage(img); //, 256, 256, MgImageFormats.Jpeg);
+    }
+
+    private void CheckValidImage(MgByteReader img)
+    {
+        try
+        {
+            MgByteSink sink = new MgByteSink(img);
+            sink.toFile("tile.img");
+            File f = new File("tile.img");
+            Assert.IsTrue(f.exists());
+            Assert.IsTrue(f.length() > 0);
+        }
+        catch (Exception ex)
+        {
+            throw new AssertException("Invalid image found: " + ex.getMessage());
+        }
+    }
+}
\ No newline at end of file



More information about the mapguide-commits mailing list