[mapguide-commits] r4888 - in sandbox/maestro-2.5: MaestroAPITests OSGeo.MapGuide.MaestroAPI OSGeo.MapGuide.MaestroAPI.Http

svn_mapguide at osgeo.org svn_mapguide at osgeo.org
Mon May 17 01:45:19 EDT 2010


Author: jng
Date: 2010-05-17 01:45:17 -0400 (Mon, 17 May 2010)
New Revision: 4888

Modified:
   sandbox/maestro-2.5/MaestroAPITests/CapabilityTests.cs
   sandbox/maestro-2.5/OSGeo.MapGuide.MaestroAPI.Http/HttpCapabilities.cs
   sandbox/maestro-2.5/OSGeo.MapGuide.MaestroAPI/Enums.cs
Log:
This submission adds unit tests for http capabilities. All known MGOS site versions are tested.

Modified: sandbox/maestro-2.5/MaestroAPITests/CapabilityTests.cs
===================================================================
--- sandbox/maestro-2.5/MaestroAPITests/CapabilityTests.cs	2010-05-16 03:49:32 UTC (rev 4887)
+++ sandbox/maestro-2.5/MaestroAPITests/CapabilityTests.cs	2010-05-17 05:45:17 UTC (rev 4888)
@@ -21,12 +21,654 @@
 using System.Collections.Generic;
 using System.Text;
 using NUnit.Framework;
+using NMock2;
+using OSGeo.MapGuide.MaestroAPI;
+using OSGeo.MapGuide.MaestroAPI.Http;
+using OSGeo.MapGuide.MaestroAPI.Services;
 
 namespace MaestroAPITests
 {
     [TestFixture]
     public class CapabilityTests
     {
+        private Mockery _mocks;
 
+        [Test]
+        public void TestHttpCapabilities100()
+        {
+            _mocks = new Mockery();
+            var conn = _mocks.NewMock<IServerConnection>();
+            Stub.On(conn).GetProperty("SiteVersion").Will(Return.Value(new Version(1, 0)));
+
+            var caps = new HttpCapabilities(conn);
+
+            foreach (ResourceTypes type in Enum.GetValues(typeof(ResourceTypes)))
+            {
+                switch (type)
+                {
+                    case ResourceTypes.ApplicationDefinition:
+                        {
+                            try
+                            {
+                                caps.GetMaxSupportedResourceVersion(type.ToString());
+                                Assert.Fail("MGOS 1.0.0 doesn't support fusion!");
+                            }
+                            catch (NotSupportedException) { }
+                        }
+                        break;
+                    case ResourceTypes.FeatureSource:
+                        {
+                            var version = caps.GetMaxSupportedResourceVersion(type.ToString());
+                            Assert.AreEqual(version, new Version(1, 0, 0));
+                        }
+                        break;
+                    case ResourceTypes.LayerDefinition:
+                        {
+                            var version = caps.GetMaxSupportedResourceVersion(type.ToString());
+                            Assert.AreEqual(version, new Version(1, 0, 0));
+                        }
+                        break;
+                    case ResourceTypes.LoadProcedure:
+                        {
+                            var version = caps.GetMaxSupportedResourceVersion(type.ToString());
+                            Assert.AreEqual(version, new Version(1, 0, 0));
+                        }
+                        break;
+                    case ResourceTypes.MapDefinition:
+                        {
+                            var version = caps.GetMaxSupportedResourceVersion(type.ToString());
+                            Assert.AreEqual(version, new Version(1, 0, 0));
+                        }
+                        break;
+                    case ResourceTypes.PrintLayout:
+                        {
+                            var version = caps.GetMaxSupportedResourceVersion(type.ToString());
+                            Assert.AreEqual(version, new Version(1, 0, 0));
+                        }
+                        break;
+                    case ResourceTypes.SymbolDefinition:
+                        {
+                            try
+                            {
+                                caps.GetMaxSupportedResourceVersion(type.ToString());
+                                Assert.Fail("MGOS 1.0.0 doesn't support advanced symbology!");
+                            }
+                            catch (NotSupportedException) { }
+                        }
+                        break;
+                    case ResourceTypes.WebLayout:
+                        {
+                            var version = caps.GetMaxSupportedResourceVersion(type.ToString());
+                            Assert.AreEqual(version, new Version(1, 0, 0));
+                        }
+                        break;
+                }
+            }
+            Assert.IsTrue(caps.SupportsResourcePreviews);
+            int[] services = caps.SupportedServices;
+            foreach (ServiceType st in Enum.GetValues(typeof(ServiceType)))
+            {
+                switch (st)
+                {
+                    case ServiceType.Drawing:
+                        {
+                            Assert.IsTrue(Array.IndexOf<int>(services, (int)st) >= 0);
+                        }
+                        break;
+                    case ServiceType.Feature:
+                        {
+                            Assert.IsTrue(Array.IndexOf<int>(services, (int)st) >= 0);
+                        }
+                        break;
+                    case ServiceType.Fusion:
+                        {
+                            Assert.IsTrue(Array.IndexOf<int>(services, (int)st) < 0);
+                        }
+                        break;
+                    case ServiceType.Mapping:
+                        {
+                            Assert.IsTrue(Array.IndexOf<int>(services, (int)st) >= 0);
+                        }
+                        break;
+                    case ServiceType.Resource:
+                        {
+                            Assert.IsTrue(Array.IndexOf<int>(services, (int)st) >= 0);
+                        }
+                        break;
+                    case ServiceType.Tile:
+                        {
+                            Assert.IsTrue(Array.IndexOf<int>(services, (int)st) >= 0);
+                        }
+                        break;
+                }
+            }
+        }
+
+        [Test]
+        public void TestHttpCapabilities110()
+        {
+            _mocks = new Mockery();
+            var conn = _mocks.NewMock<IServerConnection>();
+            Stub.On(conn).GetProperty("SiteVersion").Will(Return.Value(new Version(1, 1)));
+
+            var caps = new HttpCapabilities(conn);
+
+            foreach (ResourceTypes type in Enum.GetValues(typeof(ResourceTypes)))
+            {
+                switch (type)
+                {
+                    case ResourceTypes.ApplicationDefinition:
+                        {
+                            try
+                            {
+                                caps.GetMaxSupportedResourceVersion(type.ToString());
+                                Assert.Fail("MGOS 1.1.0 doesn't support fusion!");
+                            }
+                            catch (NotSupportedException) { }
+                        }
+                        break;
+                    case ResourceTypes.FeatureSource:
+                        {
+                            var version = caps.GetMaxSupportedResourceVersion(type.ToString());
+                            Assert.AreEqual(version, new Version(1, 0, 0));
+                        }
+                        break;
+                    case ResourceTypes.LayerDefinition:
+                        {
+                            var version = caps.GetMaxSupportedResourceVersion(type.ToString());
+                            Assert.AreEqual(version, new Version(1, 0, 0));
+                        }
+                        break;
+                    case ResourceTypes.LoadProcedure:
+                        {
+                            var version = caps.GetMaxSupportedResourceVersion(type.ToString());
+                            Assert.AreEqual(version, new Version(1, 0, 0));
+                        }
+                        break;
+                    case ResourceTypes.MapDefinition:
+                        {
+                            var version = caps.GetMaxSupportedResourceVersion(type.ToString());
+                            Assert.AreEqual(version, new Version(1, 0, 0));
+                        }
+                        break;
+                    case ResourceTypes.PrintLayout:
+                        {
+                            var version = caps.GetMaxSupportedResourceVersion(type.ToString());
+                            Assert.AreEqual(version, new Version(1, 0, 0));
+                        }
+                        break;
+                    case ResourceTypes.SymbolDefinition:
+                        {
+                            try
+                            {
+                                caps.GetMaxSupportedResourceVersion(type.ToString());
+                                Assert.Fail("MGOS 1.1.0 doesn't support advanced symbology!");
+                            }
+                            catch (NotSupportedException) { }
+                        }
+                        break;
+                    case ResourceTypes.WebLayout:
+                        {
+                            var version = caps.GetMaxSupportedResourceVersion(type.ToString());
+                            Assert.AreEqual(version, new Version(1, 0, 0));
+                        }
+                        break;
+                }
+            }
+            Assert.IsTrue(caps.SupportsResourcePreviews);
+            int[] services = caps.SupportedServices;
+            foreach (ServiceType st in Enum.GetValues(typeof(ServiceType)))
+            {
+                switch (st)
+                {
+                    case ServiceType.Drawing:
+                        {
+                            Assert.IsTrue(Array.IndexOf<int>(services, (int)st) >= 0);
+                        }
+                        break;
+                    case ServiceType.Feature:
+                        {
+                            Assert.IsTrue(Array.IndexOf<int>(services, (int)st) >= 0);
+                        }
+                        break;
+                    case ServiceType.Fusion:
+                        {
+                            Assert.IsTrue(Array.IndexOf<int>(services, (int)st) < 0);
+                        }
+                        break;
+                    case ServiceType.Mapping:
+                        {
+                            Assert.IsTrue(Array.IndexOf<int>(services, (int)st) >= 0);
+                        }
+                        break;
+                    case ServiceType.Resource:
+                        {
+                            Assert.IsTrue(Array.IndexOf<int>(services, (int)st) >= 0);
+                        }
+                        break;
+                    case ServiceType.Tile:
+                        {
+                            Assert.IsTrue(Array.IndexOf<int>(services, (int)st) >= 0);
+                        }
+                        break;
+                }
+            }
+        }
+
+        [Test]
+        public void TestHttpCapabilities120()
+        {
+            _mocks = new Mockery();
+            var conn = _mocks.NewMock<IServerConnection>();
+            Stub.On(conn).GetProperty("SiteVersion").Will(Return.Value(new Version(1, 2)));
+
+            var caps = new HttpCapabilities(conn);
+
+            foreach (ResourceTypes type in Enum.GetValues(typeof(ResourceTypes)))
+            {
+                switch (type)
+                {
+                    case ResourceTypes.ApplicationDefinition:
+                        {
+                            try
+                            {
+                                caps.GetMaxSupportedResourceVersion(type.ToString());
+                                Assert.Fail("MGOS 1.2.0 doesn't support fusion!");
+                            }
+                            catch (NotSupportedException) { }
+                        }
+                        break;
+                    case ResourceTypes.FeatureSource:
+                        {
+                            var version = caps.GetMaxSupportedResourceVersion(type.ToString());
+                            Assert.AreEqual(version, new Version(1, 0, 0));
+                        }
+                        break;
+                    case ResourceTypes.LayerDefinition:
+                        {
+                            var version = caps.GetMaxSupportedResourceVersion(type.ToString());
+                            Assert.AreEqual(version, new Version(1, 1, 0));
+                        }
+                        break;
+                    case ResourceTypes.LoadProcedure:
+                        {
+                            var version = caps.GetMaxSupportedResourceVersion(type.ToString());
+                            Assert.AreEqual(version, new Version(1, 0, 0));
+                        }
+                        break;
+                    case ResourceTypes.MapDefinition:
+                        {
+                            var version = caps.GetMaxSupportedResourceVersion(type.ToString());
+                            Assert.AreEqual(version, new Version(1, 0, 0));
+                        }
+                        break;
+                    case ResourceTypes.PrintLayout:
+                        {
+                            var version = caps.GetMaxSupportedResourceVersion(type.ToString());
+                            Assert.AreEqual(version, new Version(1, 0, 0));
+                        }
+                        break;
+                    case ResourceTypes.SymbolDefinition:
+                        {
+                            var version = caps.GetMaxSupportedResourceVersion(type.ToString());
+                            Assert.AreEqual(version, new Version(1, 0, 0));
+                        }
+                        break;
+                    case ResourceTypes.WebLayout:
+                        {
+                            var version = caps.GetMaxSupportedResourceVersion(type.ToString());
+                            Assert.AreEqual(version, new Version(1, 0, 0));
+                        }
+                        break;
+                }
+            }
+            Assert.IsTrue(caps.SupportsResourcePreviews);
+            int[] services = caps.SupportedServices;
+            foreach (ServiceType st in Enum.GetValues(typeof(ServiceType)))
+            {
+                switch (st)
+                {
+                    case ServiceType.Drawing:
+                        {
+                            Assert.IsTrue(Array.IndexOf<int>(services, (int)st) >= 0);
+                        }
+                        break;
+                    case ServiceType.Feature:
+                        {
+                            Assert.IsTrue(Array.IndexOf<int>(services, (int)st) >= 0);
+                        }
+                        break;
+                    case ServiceType.Fusion:
+                        {
+                            Assert.IsTrue(Array.IndexOf<int>(services, (int)st) < 0);
+                        }
+                        break;
+                    case ServiceType.Mapping:
+                        {
+                            Assert.IsTrue(Array.IndexOf<int>(services, (int)st) >= 0);
+                        }
+                        break;
+                    case ServiceType.Resource:
+                        {
+                            Assert.IsTrue(Array.IndexOf<int>(services, (int)st) >= 0);
+                        }
+                        break;
+                    case ServiceType.Tile:
+                        {
+                            Assert.IsTrue(Array.IndexOf<int>(services, (int)st) >= 0);
+                        }
+                        break;
+                }
+            }
+        }
+
+        [Test]
+        public void TestHttpCapabilities200()
+        {
+            _mocks = new Mockery();
+            var conn = _mocks.NewMock<IServerConnection>();
+            Stub.On(conn).GetProperty("SiteVersion").Will(Return.Value(new Version(2, 0)));
+
+            var caps = new HttpCapabilities(conn);
+
+            foreach (ResourceTypes type in Enum.GetValues(typeof(ResourceTypes)))
+            {
+                switch (type)
+                {
+                    case ResourceTypes.ApplicationDefinition:
+                        {
+                            var version = caps.GetMaxSupportedResourceVersion(type.ToString());
+                            Assert.AreEqual(version, new Version(1, 0, 0));
+                        }
+                        break;
+                    case ResourceTypes.FeatureSource:
+                        {
+                            var version = caps.GetMaxSupportedResourceVersion(type.ToString());
+                            Assert.AreEqual(version, new Version(1, 0, 0));
+                        }
+                        break;
+                    case ResourceTypes.LayerDefinition:
+                        {
+                            var version = caps.GetMaxSupportedResourceVersion(type.ToString());
+                            Assert.AreEqual(version, new Version(1, 2, 0));
+                        }
+                        break;
+                    case ResourceTypes.LoadProcedure:
+                        {
+                            var version = caps.GetMaxSupportedResourceVersion(type.ToString());
+                            Assert.AreEqual(version, new Version(1, 1, 0));
+                        }
+                        break;
+                    case ResourceTypes.MapDefinition:
+                        {
+                            var version = caps.GetMaxSupportedResourceVersion(type.ToString());
+                            Assert.AreEqual(version, new Version(1, 0, 0));
+                        }
+                        break;
+                    case ResourceTypes.PrintLayout:
+                        {
+                            var version = caps.GetMaxSupportedResourceVersion(type.ToString());
+                            Assert.AreEqual(version, new Version(1, 0, 0));
+                        }
+                        break;
+                    case ResourceTypes.SymbolDefinition:
+                        {
+                            var version = caps.GetMaxSupportedResourceVersion(type.ToString());
+                            Assert.AreEqual(version, new Version(1, 1, 0));
+                        }
+                        break;
+                    case ResourceTypes.WebLayout:
+                        {
+                            var version = caps.GetMaxSupportedResourceVersion(type.ToString());
+                            Assert.AreEqual(version, new Version(1, 0, 0));
+                        }
+                        break;
+                }
+            }
+            Assert.IsTrue(caps.SupportsResourcePreviews);
+            int[] services = caps.SupportedServices;
+            foreach (ServiceType st in Enum.GetValues(typeof(ServiceType)))
+            {
+                switch (st)
+                {
+                    case ServiceType.Drawing:
+                        {
+                            Assert.IsTrue(Array.IndexOf<int>(services, (int)st) >= 0);
+                        }
+                        break;
+                    case ServiceType.Feature:
+                        {
+                            Assert.IsTrue(Array.IndexOf<int>(services, (int)st) >= 0);
+                        }
+                        break;
+                    case ServiceType.Fusion:
+                        {
+                            Assert.IsTrue(Array.IndexOf<int>(services, (int)st) >= 0);
+                        }
+                        break;
+                    case ServiceType.Mapping:
+                        {
+                            Assert.IsTrue(Array.IndexOf<int>(services, (int)st) >= 0);
+                        }
+                        break;
+                    case ServiceType.Resource:
+                        {
+                            Assert.IsTrue(Array.IndexOf<int>(services, (int)st) >= 0);
+                        }
+                        break;
+                    case ServiceType.Tile:
+                        {
+                            Assert.IsTrue(Array.IndexOf<int>(services, (int)st) >= 0);
+                        }
+                        break;
+                }
+            }
+        }
+
+        [Test]
+        public void TestHttpCapabilities210()
+        {
+            _mocks = new Mockery();
+            var conn = _mocks.NewMock<IServerConnection>();
+            Stub.On(conn).GetProperty("SiteVersion").Will(Return.Value(new Version(2, 1)));
+
+            var caps = new HttpCapabilities(conn);
+
+            foreach (ResourceTypes type in Enum.GetValues(typeof(ResourceTypes)))
+            {
+                switch (type)
+                {
+                    case ResourceTypes.ApplicationDefinition:
+                        {
+                            var version = caps.GetMaxSupportedResourceVersion(type.ToString());
+                            Assert.AreEqual(version, new Version(1, 0, 0));
+                        }
+                        break;
+                    case ResourceTypes.FeatureSource:
+                        {
+                            var version = caps.GetMaxSupportedResourceVersion(type.ToString());
+                            Assert.AreEqual(version, new Version(1, 0, 0));
+                        }
+                        break;
+                    case ResourceTypes.LayerDefinition:
+                        {
+                            var version = caps.GetMaxSupportedResourceVersion(type.ToString());
+                            Assert.AreEqual(version, new Version(1, 3, 0));
+                        }
+                        break;
+                    case ResourceTypes.LoadProcedure:
+                        {
+                            var version = caps.GetMaxSupportedResourceVersion(type.ToString());
+                            Assert.AreEqual(version, new Version(1, 1, 0));
+                        }
+                        break;
+                    case ResourceTypes.MapDefinition:
+                        {
+                            var version = caps.GetMaxSupportedResourceVersion(type.ToString());
+                            Assert.AreEqual(version, new Version(1, 0, 0));
+                        }
+                        break;
+                    case ResourceTypes.PrintLayout:
+                        {
+                            var version = caps.GetMaxSupportedResourceVersion(type.ToString());
+                            Assert.AreEqual(version, new Version(1, 0, 0));
+                        }
+                        break;
+                    case ResourceTypes.SymbolDefinition:
+                        {
+                            var version = caps.GetMaxSupportedResourceVersion(type.ToString());
+                            Assert.AreEqual(version, new Version(1, 1, 0));
+                        }
+                        break;
+                    case ResourceTypes.WebLayout:
+                        {
+                            var version = caps.GetMaxSupportedResourceVersion(type.ToString());
+                            Assert.AreEqual(version, new Version(1, 0, 0));
+                        }
+                        break;
+                }
+            }
+            Assert.IsTrue(caps.SupportsResourcePreviews);
+            int[] services = caps.SupportedServices;
+            foreach (ServiceType st in Enum.GetValues(typeof(ServiceType)))
+            {
+                switch (st)
+                {
+                    case ServiceType.Drawing:
+                        {
+                            Assert.IsTrue(Array.IndexOf<int>(services, (int)st) >= 0);
+                        }
+                        break;
+                    case ServiceType.Feature:
+                        {
+                            Assert.IsTrue(Array.IndexOf<int>(services, (int)st) >= 0);
+                        }
+                        break;
+                    case ServiceType.Fusion:
+                        {
+                            Assert.IsTrue(Array.IndexOf<int>(services, (int)st) >= 0);
+                        }
+                        break;
+                    case ServiceType.Mapping:
+                        {
+                            Assert.IsTrue(Array.IndexOf<int>(services, (int)st) >= 0);
+                        }
+                        break;
+                    case ServiceType.Resource:
+                        {
+                            Assert.IsTrue(Array.IndexOf<int>(services, (int)st) >= 0);
+                        }
+                        break;
+                    case ServiceType.Tile:
+                        {
+                            Assert.IsTrue(Array.IndexOf<int>(services, (int)st) >= 0);
+                        }
+                        break;
+                }
+            }
+        }
+
+        [Test]
+        public void TestHttpCapabilities220()
+        {
+            _mocks = new Mockery();
+            var conn = _mocks.NewMock<IServerConnection>();
+            Stub.On(conn).GetProperty("SiteVersion").Will(Return.Value(new Version(2, 2)));
+
+            var caps = new HttpCapabilities(conn);
+
+            foreach (ResourceTypes type in Enum.GetValues(typeof(ResourceTypes)))
+            {
+                switch (type)
+                {
+                    case ResourceTypes.ApplicationDefinition:
+                        {
+                            var version = caps.GetMaxSupportedResourceVersion(type.ToString());
+                            Assert.AreEqual(version, new Version(1, 0, 0));
+                        }
+                        break;
+                    case ResourceTypes.FeatureSource:
+                        {
+                            var version = caps.GetMaxSupportedResourceVersion(type.ToString());
+                            Assert.AreEqual(version, new Version(1, 0, 0));
+                        }
+                        break;
+                    case ResourceTypes.LayerDefinition:
+                        {
+                            var version = caps.GetMaxSupportedResourceVersion(type.ToString());
+                            Assert.AreEqual(version, new Version(1, 3, 0));
+                        }
+                        break;
+                    case ResourceTypes.LoadProcedure:
+                        {
+                            var version = caps.GetMaxSupportedResourceVersion(type.ToString());
+                            Assert.AreEqual(version, new Version(2, 2, 0));
+                        }
+                        break;
+                    case ResourceTypes.MapDefinition:
+                        {
+                            var version = caps.GetMaxSupportedResourceVersion(type.ToString());
+                            Assert.AreEqual(version, new Version(1, 0, 0));
+                        }
+                        break;
+                    case ResourceTypes.PrintLayout:
+                        {
+                            var version = caps.GetMaxSupportedResourceVersion(type.ToString());
+                            Assert.AreEqual(version, new Version(1, 0, 0));
+                        }
+                        break;
+                    case ResourceTypes.SymbolDefinition:
+                        {
+                            var version = caps.GetMaxSupportedResourceVersion(type.ToString());
+                            Assert.AreEqual(version, new Version(1, 1, 0));
+                        }
+                        break;
+                    case ResourceTypes.WebLayout:
+                        {
+                            var version = caps.GetMaxSupportedResourceVersion(type.ToString());
+                            Assert.AreEqual(version, new Version(1, 1, 0));
+                        }
+                        break;
+                }
+            }
+            Assert.IsTrue(caps.SupportsResourcePreviews);
+            int[] services = caps.SupportedServices;
+            foreach (ServiceType st in Enum.GetValues(typeof(ServiceType)))
+            {
+                switch (st)
+                {
+                    case ServiceType.Drawing:
+                        {
+                            Assert.IsTrue(Array.IndexOf<int>(services, (int)st) >= 0);
+                        }
+                        break;
+                    case ServiceType.Feature:
+                        {
+                            Assert.IsTrue(Array.IndexOf<int>(services, (int)st) >= 0);
+                        }
+                        break;
+                    case ServiceType.Fusion:
+                        {
+                            Assert.IsTrue(Array.IndexOf<int>(services, (int)st) >= 0);
+                        }
+                        break;
+                    case ServiceType.Mapping:
+                        {
+                            Assert.IsTrue(Array.IndexOf<int>(services, (int)st) >= 0);
+                        }
+                        break;
+                    case ServiceType.Resource:
+                        {
+                            Assert.IsTrue(Array.IndexOf<int>(services, (int)st) >= 0);
+                        }
+                        break;
+                    case ServiceType.Tile:
+                        {
+                            Assert.IsTrue(Array.IndexOf<int>(services, (int)st) >= 0);
+                        }
+                        break;
+                }
+            }
+        }
     }
 }

Modified: sandbox/maestro-2.5/OSGeo.MapGuide.MaestroAPI/Enums.cs
===================================================================
--- sandbox/maestro-2.5/OSGeo.MapGuide.MaestroAPI/Enums.cs	2010-05-16 03:49:32 UTC (rev 4887)
+++ sandbox/maestro-2.5/OSGeo.MapGuide.MaestroAPI/Enums.cs	2010-05-17 05:45:17 UTC (rev 4888)
@@ -24,12 +24,15 @@
 	public enum ResourceTypes
 	{
 		MapDefinition,
-		LayerDefiniton,
+		LayerDefinition,
 		FeatureSource,
 		WebLayout,
 		RuntimeMap,
 		Folder,
 		ApplicationDefinition,
+        PrintLayout,
+        SymbolDefinition,
+        LoadProcedure,
 	}
 
 	public enum Operations

Modified: sandbox/maestro-2.5/OSGeo.MapGuide.MaestroAPI.Http/HttpCapabilities.cs
===================================================================
--- sandbox/maestro-2.5/OSGeo.MapGuide.MaestroAPI.Http/HttpCapabilities.cs	2010-05-16 03:49:32 UTC (rev 4887)
+++ sandbox/maestro-2.5/OSGeo.MapGuide.MaestroAPI.Http/HttpCapabilities.cs	2010-05-17 05:45:17 UTC (rev 4888)
@@ -26,9 +26,9 @@
 {
     internal class HttpCapabilities : IConnectionCapabilities
     {
-        private HttpServerConnection _parent;
+        private IServerConnection _parent;
 
-        internal HttpCapabilities(HttpServerConnection parent)
+        internal HttpCapabilities(IServerConnection parent)
         {
             _parent = parent;
         }
@@ -38,6 +38,10 @@
             Version ver = new Version(1, 0, 0);
             switch (resourceType)
             {
+                case "ApplicationDefinition":
+                    if (!SupportsFusion())
+                        throw new NotSupportedException();
+                    break;
                 case "LayerDefinition":
                     ver = GetMaxLayerDefinitionVersion();
                     break;
@@ -48,12 +52,25 @@
                     ver = GetMaxWebLayoutVersion();
                     break;
                 case "SymbolDefinition":
-                    ver = GetMaxSymbolDefinitionVersion();
+                    if (!SupportsAdvancedSymbols())
+                        throw new NotSupportedException();
+                    else
+                        ver = GetMaxSymbolDefinitionVersion();
                     break;
             }
             return ver;
         }
 
+        private bool SupportsAdvancedSymbols()
+        {
+            return (_parent.SiteVersion >= new Version(1, 2));
+        }
+
+        private bool SupportsFusion()
+        {
+            return (_parent.SiteVersion >= new Version(2, 0));
+        }
+
         private Version GetMaxLoadProcedureVersion()
         {
             if (_parent.SiteVersion >= new Version(2, 2))
@@ -67,7 +84,7 @@
 
         private Version GetMaxSymbolDefinitionVersion()
         {
-            if (_parent.SiteVersion >= new Version(2, 2))
+            if (_parent.SiteVersion >= new Version(2, 0))
                 return new Version(1, 1, 0);
            
             return new Version(1, 0, 0);
@@ -111,8 +128,8 @@
                         (int)ServiceType.Feature,
                         (int)ServiceType.Fusion,
                         (int)ServiceType.Mapping,
-                        (int)ServiceType.Tile
-                        //(int)ServiceType.Drawing
+                        (int)ServiceType.Tile,
+                        (int)ServiceType.Drawing
                     };
                 }
                 else //Fusion doesn't exist pre-2.0
@@ -121,8 +138,8 @@
                         (int)ServiceType.Resource,
                         (int)ServiceType.Feature,
                         (int)ServiceType.Mapping,
-                        (int)ServiceType.Tile
-                        //(int)ServiceType.Drawing
+                        (int)ServiceType.Tile,
+                        (int)ServiceType.Drawing
                     };
                 }
             }



More information about the mapguide-commits mailing list