[mapguide-commits] r4890 - in sandbox/maestro-2.5: . Maestro Maestro.Base/Editor MaestroBaseTests MaestroBaseTests/Properties OSGeo.MapGuide.MaestroAPI.Http/Properties

svn_mapguide at osgeo.org svn_mapguide at osgeo.org
Mon May 17 02:46:24 EDT 2010


Author: jng
Date: 2010-05-17 02:46:19 -0400 (Mon, 17 May 2010)
New Revision: 4890

Added:
   sandbox/maestro-2.5/MaestroBaseTests/
   sandbox/maestro-2.5/MaestroBaseTests/AddIns/
   sandbox/maestro-2.5/MaestroBaseTests/App.config
   sandbox/maestro-2.5/MaestroBaseTests/EditorTests.cs
   sandbox/maestro-2.5/MaestroBaseTests/MaestroBaseTests.csproj
   sandbox/maestro-2.5/MaestroBaseTests/Properties/
   sandbox/maestro-2.5/MaestroBaseTests/Properties/AssemblyInfo.cs
Modified:
   sandbox/maestro-2.5/Maestro.Base/Editor/EditorContentBase.cs
   sandbox/maestro-2.5/Maestro/Maestro.sln
   sandbox/maestro-2.5/OSGeo.MapGuide.MaestroAPI.Http/Properties/AssemblyInfo.cs
Log:
Add unit tests for the XML editor. We are testing if the previewing and resource upgrade flags are properly set.

Modified: sandbox/maestro-2.5/Maestro/Maestro.sln
===================================================================
--- sandbox/maestro-2.5/Maestro/Maestro.sln	2010-05-17 05:57:43 UTC (rev 4889)
+++ sandbox/maestro-2.5/Maestro/Maestro.sln	2010-05-17 06:46:19 UTC (rev 4890)
@@ -57,6 +57,8 @@
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Aga.Controls", "..\Thirdparty\TreeViewAdv\Aga.Controls\Aga.Controls.csproj", "{E73BB233-D88B-44A7-A98F-D71EE158381D}"
 EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MaestroBaseTests", "..\MaestroBaseTests\MaestroBaseTests.csproj", "{CE5F281C-0162-4832-87BB-A677D13D116F}"
+EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 		Debug|Any CPU = Debug|Any CPU
@@ -147,6 +149,10 @@
 		{E73BB233-D88B-44A7-A98F-D71EE158381D}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{E73BB233-D88B-44A7-A98F-D71EE158381D}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{E73BB233-D88B-44A7-A98F-D71EE158381D}.Release|Any CPU.Build.0 = Release|Any CPU
+		{CE5F281C-0162-4832-87BB-A677D13D116F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{CE5F281C-0162-4832-87BB-A677D13D116F}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{CE5F281C-0162-4832-87BB-A677D13D116F}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{CE5F281C-0162-4832-87BB-A677D13D116F}.Release|Any CPU.Build.0 = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE
@@ -174,5 +180,6 @@
 		{BF6E996E-27AF-44CD-B3CF-A40874E15B2E} = {81BF310C-0BBC-41F0-ADA5-B201D9769AFC}
 		{0A93ACA8-5B21-44E6-B0B7-5D1E72D3A6A2} = {81BF310C-0BBC-41F0-ADA5-B201D9769AFC}
 		{351D49A3-2E4A-4EC3-AFC2-D56598F44F51} = {499D2A40-7BEB-4578-9148-0D19F45A1858}
+		{CE5F281C-0162-4832-87BB-A677D13D116F} = {499D2A40-7BEB-4578-9148-0D19F45A1858}
 	EndGlobalSection
 EndGlobal

Modified: sandbox/maestro-2.5/Maestro.Base/Editor/EditorContentBase.cs
===================================================================
--- sandbox/maestro-2.5/Maestro.Base/Editor/EditorContentBase.cs	2010-05-17 05:57:43 UTC (rev 4889)
+++ sandbox/maestro-2.5/Maestro.Base/Editor/EditorContentBase.cs	2010-05-17 06:46:19 UTC (rev 4890)
@@ -58,9 +58,27 @@
             }
         }
 
-        public bool CanBePreviewed
+        private static ResourceTypes[] PREVIEWABLE_RESOURCE_TYPES = new ResourceTypes[] 
         {
-            get { return false; }
+            ResourceTypes.FeatureSource,
+            ResourceTypes.ApplicationDefinition,
+            ResourceTypes.LayerDefinition,
+            ResourceTypes.MapDefinition,
+            ResourceTypes.WebLayout
+        };
+
+        public virtual bool CanBePreviewed
+        {
+            get
+            {
+                var res = this.Resource;
+                if (res != null)
+                {
+                    var rt = (ResourceTypes)Enum.Parse(typeof(ResourceTypes), res.ResourceType);
+                    return Array.IndexOf(PREVIEWABLE_RESOURCE_TYPES, rt) >= 0 && res.CurrentConnection.Capabilities.SupportsResourcePreviews;
+                }
+                return false;
+            }
         }
 
         public bool IsDirty

Added: sandbox/maestro-2.5/MaestroBaseTests/App.config
===================================================================
--- sandbox/maestro-2.5/MaestroBaseTests/App.config	                        (rev 0)
+++ sandbox/maestro-2.5/MaestroBaseTests/App.config	2010-05-17 06:46:19 UTC (rev 4890)
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8"?>
+<configuration>
+
+    <configSections>
+        <sectionGroup name="NUnit">
+            <section name="TestRunner" type="System.Configuration.NameValueSectionHandler"/>
+        </sectionGroup>
+    </configSections>
+
+    <NUnit>
+        <TestRunner>
+            <add key="ApartmentState" value="STA" />
+        </TestRunner>
+    </NUnit>
+
+</configuration>

Added: sandbox/maestro-2.5/MaestroBaseTests/EditorTests.cs
===================================================================
--- sandbox/maestro-2.5/MaestroBaseTests/EditorTests.cs	                        (rev 0)
+++ sandbox/maestro-2.5/MaestroBaseTests/EditorTests.cs	2010-05-17 06:46:19 UTC (rev 4890)
@@ -0,0 +1,1028 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using NUnit.Framework;
+using ICSharpCode.Core;
+using System.Reflection;
+using System.IO;
+using NMock2;
+using OSGeo.MapGuide.MaestroAPI.Services;
+using OSGeo.MapGuide.MaestroAPI;
+using OSGeo.MapGuide.MaestroAPI.Http;
+using Maestro.Base.Editor;
+using OSGeo.MapGuide.ObjectModels.FeatureSource;
+using OSGeo.MapGuide.MaestroAPI.Resource;
+using OSGeo.MapGuide.ObjectModels.LayerDefinition;
+using OSGeo.MapGuide.ObjectModels.MapDefinition;
+using OSGeo.MapGuide.ObjectModels.WebLayout;
+using OSGeo.MapGuide.ObjectModels.ApplicationDefinition;
+using OSGeo.MapGuide.MaestroAPI.Exceptions;
+using OSGeo.MapGuide.ObjectModels.SymbolDefinition;
+using OSGeo.MapGuide.ObjectModels.PrintLayout;
+using OSGeo.MapGuide.ObjectModels.LoadProcedure;
+
+namespace MaestroBaseTests
+{
+    [TestFixture]
+    public class EditorTests
+    {
+        [TestFixtureSetUp]
+        public void Init()
+        {
+
+        }
+
+        private Mockery _mocks;
+
+        #region Hard-coded mocks because I can't figure out how to handle generics in NMock
+        class MockResourceServiceForXmlEditor : IResourceService
+        {
+            public OSGeo.MapGuide.ObjectModels.Common.ResourceList RepositoryResources
+            {
+                get { throw new NotImplementedException(); }
+            }
+
+            public OSGeo.MapGuide.ObjectModels.Common.ResourceList GetRepositoryResources()
+            {
+                throw new NotImplementedException();
+            }
+
+            public OSGeo.MapGuide.ObjectModels.Common.ResourceList GetRepositoryResources(int depth)
+            {
+                throw new NotImplementedException();
+            }
+
+            public OSGeo.MapGuide.ObjectModels.Common.ResourceList GetRepositoryResources(string startingpoint, int depth)
+            {
+                throw new NotImplementedException();
+            }
+
+            public OSGeo.MapGuide.ObjectModels.Common.ResourceList GetRepositoryResources(string startingpoint)
+            {
+                throw new NotImplementedException();
+            }
+
+            public OSGeo.MapGuide.ObjectModels.Common.ResourceList GetRepositoryResources(string startingpoint, string type)
+            {
+                throw new NotImplementedException();
+            }
+
+            public OSGeo.MapGuide.ObjectModels.Common.ResourceList GetRepositoryResources(string startingpoint, string type, int depth)
+            {
+                throw new NotImplementedException();
+            }
+
+            public OSGeo.MapGuide.ObjectModels.Common.ResourceList GetRepositoryResources(string startingpoint, string type, int depth, bool computeChildren)
+            {
+                throw new NotImplementedException();
+            }
+
+            public bool HasFolder(string folderpath)
+            {
+                throw new NotImplementedException();
+            }
+
+            public void CreateFolder(string folderpath)
+            {
+                throw new NotImplementedException();
+            }
+
+            public object DeserializeObject(Type type, Stream data)
+            {
+                throw new NotImplementedException();
+            }
+
+            public T DeserializeObject<T>(Stream data)
+            {
+                throw new NotImplementedException();
+            }
+
+            public MemoryStream SerializeObject(object o)
+            {
+                return new MemoryStream();
+            }
+
+            public void SerializeObject(object o, Stream stream)
+            {
+                throw new NotImplementedException();
+            }
+
+            public T CreateResourceObject<T>()
+            {
+                throw new NotImplementedException();
+            }
+
+            public Type GetResourceType(string resourceID)
+            {
+                throw new NotImplementedException();
+            }
+
+            public Type TryGetResourceType(string resourceID)
+            {
+                throw new NotImplementedException();
+            }
+
+            public MemoryStream GetResourceData(string resourceID, string dataname)
+            {
+                throw new NotImplementedException();
+            }
+
+            public OSGeo.MapGuide.ObjectModels.Common.ResourceDocumentHeaderType GetResourceHeader(string resourceID)
+            {
+                throw new NotImplementedException();
+            }
+
+            public OSGeo.MapGuide.ObjectModels.Common.ResourceFolderHeaderType GetFolderHeader(string resourceID)
+            {
+                throw new NotImplementedException();
+            }
+
+            public byte[] GetResourceXmlData(string resourceID)
+            {
+                throw new NotImplementedException();
+            }
+
+            public IResource GetResource(string resourceID)
+            {
+                throw new NotImplementedException();
+            }
+
+            public void SetResourceData(string resourceid, string dataname, OSGeo.MapGuide.ObjectModels.Common.ResourceDataType datatype, Stream stream)
+            {
+                throw new NotImplementedException();
+            }
+
+            public void SetResourceData(string resourceid, string dataname, OSGeo.MapGuide.ObjectModels.Common.ResourceDataType datatype, Stream stream, Utility.StreamCopyProgressDelegate callback)
+            {
+                throw new NotImplementedException();
+            }
+
+            public void SetResourceXmlData(string resourceid, Stream stream)
+            {
+                throw new NotImplementedException();
+            }
+
+            public void SetFolderHeader(string resourceID, OSGeo.MapGuide.ObjectModels.Common.ResourceFolderHeaderType header)
+            {
+                throw new NotImplementedException();
+            }
+
+            public void SetResourceHeader(string resourceID, OSGeo.MapGuide.ObjectModels.Common.ResourceDocumentHeaderType header)
+            {
+                throw new NotImplementedException();
+            }
+
+            public void UpdateRepository(string resourceId, OSGeo.MapGuide.ObjectModels.Common.ResourceFolderHeaderType header)
+            {
+                throw new NotImplementedException();
+            }
+
+            public void DeleteResourceData(string resourceID, string dataname)
+            {
+                throw new NotImplementedException();
+            }
+
+            public OSGeo.MapGuide.ObjectModels.Common.ResourceDataList EnumerateResourceData(string resourceID)
+            {
+                throw new NotImplementedException();
+            }
+
+            public void DeleteResource(string resourceID)
+            {
+                throw new NotImplementedException();
+            }
+
+            public void DeleteFolder(string folderPath)
+            {
+                throw new NotImplementedException();
+            }
+
+            public OSGeo.MapGuide.ObjectModels.Common.ResourceReferenceList EnumerateResourceReferences(string resourceid)
+            {
+                throw new NotImplementedException();
+            }
+
+            public void CopyResource(string oldpath, string newpath, bool overwrite)
+            {
+                throw new NotImplementedException();
+            }
+
+            public void CopyFolder(string oldpath, string newpath, bool overwrite)
+            {
+                throw new NotImplementedException();
+            }
+
+            public void MoveResource(string oldpath, string newpath, bool overwrite)
+            {
+                throw new NotImplementedException();
+            }
+
+            public void MoveFolder(string oldpath, string newpath, bool overwrite)
+            {
+                throw new NotImplementedException();
+            }
+
+            public bool MoveResourceWithReferences(string oldpath, string newpath, LengthyOperationCallBack callback, LengthyOperationProgressCallBack progress)
+            {
+                throw new NotImplementedException();
+            }
+
+            public bool MoveFolderWithReferences(string oldpath, string newpath, LengthyOperationCallBack callback, LengthyOperationProgressCallBack progress)
+            {
+                throw new NotImplementedException();
+            }
+
+            public bool CopyFolderWithReferences(string oldpath, string newpath, LengthyOperationCallBack callback, LengthyOperationProgressCallBack progress)
+            {
+                throw new NotImplementedException();
+            }
+
+            public bool ResourceExists(string resourceid)
+            {
+                throw new NotImplementedException();
+            }
+
+            public void SaveResource(IResource resource)
+            {
+                throw new NotImplementedException();
+            }
+
+            public void SaveResourceAs(IResource resource, string resourceid)
+            {
+                throw new NotImplementedException();
+            }
+
+            public OSGeo.MapGuide.ObjectModels.Common.UnmanagedDataList EnumerateUnmanagedData(string startpath, string filter, bool recursive, UnmanagedDataTypes type)
+            {
+                throw new NotImplementedException();
+            }
+
+            public OSGeo.MapGuide.ObjectModels.Common.UserList EnumerateUsers()
+            {
+                throw new NotImplementedException();
+            }
+
+            public OSGeo.MapGuide.ObjectModels.Common.UserList EnumerateUsers(string group)
+            {
+                throw new NotImplementedException();
+            }
+
+            public OSGeo.MapGuide.ObjectModels.Common.GroupList EnumerateGroups()
+            {
+                throw new NotImplementedException();
+            }
+
+            public void UploadPackage(string filename, Utility.StreamCopyProgressDelegate callback)
+            {
+                throw new NotImplementedException();
+            }
+
+            public int ServiceType
+            {
+                get { throw new NotImplementedException(); }
+            }
+        }
+        #endregion
+
+        [Test]
+        public void TestUpgradeableXmlEditor100()
+        {
+            //All resource objects are based on 1.0.0 xsd schemas
+
+            _mocks = new Mockery();
+
+            var resSvc = new MockResourceServiceForXmlEditor();
+
+            var conn = _mocks.NewMock<IServerConnection>();
+            var caps = new HttpCapabilities(conn);
+
+            Stub.On(conn).GetProperty("SiteVersion").Will(Return.Value(new Version(1, 0)));
+            Stub.On(conn).GetProperty("ResourceService").Will(Return.Value(resSvc));
+            Stub.On(conn).GetProperty("Capabilities").Will(Return.Value(caps));
+            
+
+            IEditorViewContent ed = new XmlEditor();
+
+            IResource resource = new FeatureSourceType();
+            resource.ResourceID = "Library://UnitTest/Test.FeatureSource";
+            resource.CurrentConnection = conn;
+
+            //The bit that actually kicks everything into action
+            ed.Resource = resource;
+            
+            //The values we're interested in
+            Assert.IsFalse(ed.CanUpgrade);
+            Assert.IsTrue(ed.CanBePreviewed);
+
+            resource = new LayerDefinition();
+            resource.ResourceID = "Library://UnitTest/Test.LayerDefinition";
+            resource.CurrentConnection = conn;
+
+            //The bit that actually kicks everything into action
+            ed.Resource = resource;
+
+            //The values we're interested in
+            Assert.IsFalse(ed.CanUpgrade);
+            Assert.IsTrue(ed.CanBePreviewed);
+
+            resource = new MapDefinition();
+            resource.ResourceID = "Library://UnitTest/Test.MapDefinition";
+            resource.CurrentConnection = conn;
+
+            //The bit that actually kicks everything into action
+            ed.Resource = resource;
+
+            //The values we're interested in
+            Assert.IsFalse(ed.CanUpgrade);
+            Assert.IsTrue(ed.CanBePreviewed);
+
+            resource = new WebLayoutType();
+            resource.ResourceID = "Library://UnitTest/Test.WebLayout";
+            resource.CurrentConnection = conn;
+
+            //The bit that actually kicks everything into action
+            ed.Resource = resource;
+
+            //The values we're interested in
+            Assert.IsFalse(ed.CanUpgrade);
+            Assert.IsTrue(ed.CanBePreviewed);
+
+            resource = new PrintLayout();
+            resource.ResourceID = "Library://UnitTest/Test.PrintLayout";
+            resource.CurrentConnection = conn;
+
+            //The bit that actually kicks everything into action
+            ed.Resource = resource;
+
+            //The values we're interested in
+            Assert.IsFalse(ed.CanUpgrade);
+            Assert.IsFalse(ed.CanBePreviewed);
+
+            resource = new LoadProcedure();
+            resource.ResourceID = "Library://UnitTest/Test.LoadProcedure";
+            resource.CurrentConnection = conn;
+
+            //The bit that actually kicks everything into action
+            ed.Resource = resource;
+
+            //The values we're interested in
+            Assert.IsFalse(ed.CanUpgrade);
+            Assert.IsFalse(ed.CanBePreviewed);
+
+            //MGOS 1.0.0 doesn't do fusion
+            resource = new ApplicationDefinitionType();
+            resource.ResourceID = "Library://UnitTest/Test.ApplicationDefinition";
+            resource.CurrentConnection = conn;
+
+            //The bit that actually kicks everything into action
+            try
+            {
+                ed.Resource = resource;
+            }
+            catch (UnsupportedResourceTypeException ex)
+            {
+                Assert.AreEqual(ex.ResourceType, ResourceTypes.ApplicationDefinition);
+            }
+
+            //MGOS 1.0.0 doesn't do advanced symbology either
+            resource = new CompoundSymbolDefinition();
+            resource.ResourceID = "Library://UnitTest/Test.SymbolDefinition";
+            resource.CurrentConnection = conn;
+
+            //The bit that actually kicks everything into action
+            try
+            {
+                ed.Resource = resource;
+            }
+            catch (UnsupportedResourceTypeException ex)
+            {
+                Assert.AreEqual(ex.ResourceType, ResourceTypes.SymbolDefinition);
+            }
+
+            resource = new SimpleSymbolDefinition();
+            resource.ResourceID = "Library://UnitTest/Test.SymbolDefinition";
+            resource.CurrentConnection = conn;
+
+            //The bit that actually kicks everything into action
+            try
+            {
+                ed.Resource = resource;
+            }
+            catch (UnsupportedResourceTypeException ex)
+            {
+                Assert.AreEqual(ex.ResourceType, ResourceTypes.SymbolDefinition);
+            }
+        }
+
+        [Test]
+        public void TestUpgradeableXmlEditor110()
+        {
+            //All resource objects are based on 1.0.0 xsd schemas
+            //MGOS 1.1.0 has the same capability matrix as 1.0.0 so the code is 99% the same
+
+            _mocks = new Mockery();
+
+            var resSvc = new MockResourceServiceForXmlEditor();
+
+            var conn = _mocks.NewMock<IServerConnection>();
+            var caps = new HttpCapabilities(conn);
+
+            Stub.On(conn).GetProperty("SiteVersion").Will(Return.Value(new Version(1, 1)));
+            Stub.On(conn).GetProperty("ResourceService").Will(Return.Value(resSvc));
+            Stub.On(conn).GetProperty("Capabilities").Will(Return.Value(caps));
+
+
+            IEditorViewContent ed = new XmlEditor();
+
+            IResource resource = new FeatureSourceType();
+            resource.ResourceID = "Library://UnitTest/Test.FeatureSource";
+            resource.CurrentConnection = conn;
+
+            //The bit that actually kicks everything into action
+            ed.Resource = resource;
+
+            //The values we're interested in
+            Assert.IsFalse(ed.CanUpgrade);
+            Assert.IsTrue(ed.CanBePreviewed);
+
+            resource = new LayerDefinition();
+            resource.ResourceID = "Library://UnitTest/Test.LayerDefinition";
+            resource.CurrentConnection = conn;
+
+            //The bit that actually kicks everything into action
+            ed.Resource = resource;
+
+            //The values we're interested in
+            Assert.IsFalse(ed.CanUpgrade);
+            Assert.IsTrue(ed.CanBePreviewed);
+
+            resource = new MapDefinition();
+            resource.ResourceID = "Library://UnitTest/Test.MapDefinition";
+            resource.CurrentConnection = conn;
+
+            //The bit that actually kicks everything into action
+            ed.Resource = resource;
+
+            //The values we're interested in
+            Assert.IsFalse(ed.CanUpgrade);
+            Assert.IsTrue(ed.CanBePreviewed);
+
+            resource = new WebLayoutType();
+            resource.ResourceID = "Library://UnitTest/Test.WebLayout";
+            resource.CurrentConnection = conn;
+
+            //The bit that actually kicks everything into action
+            ed.Resource = resource;
+
+            //The values we're interested in
+            Assert.IsFalse(ed.CanUpgrade);
+            Assert.IsTrue(ed.CanBePreviewed);
+
+            resource = new PrintLayout();
+            resource.ResourceID = "Library://UnitTest/Test.PrintLayout";
+            resource.CurrentConnection = conn;
+
+            //The bit that actually kicks everything into action
+            ed.Resource = resource;
+
+            //The values we're interested in
+            Assert.IsFalse(ed.CanUpgrade);
+            Assert.IsFalse(ed.CanBePreviewed);
+
+            resource = new LoadProcedure();
+            resource.ResourceID = "Library://UnitTest/Test.LoadProcedure";
+            resource.CurrentConnection = conn;
+
+            //The bit that actually kicks everything into action
+            ed.Resource = resource;
+
+            //The values we're interested in
+            Assert.IsFalse(ed.CanUpgrade);
+            Assert.IsFalse(ed.CanBePreviewed);
+
+            //MGOS 1.1.0 doesn't do fusion
+            resource = new ApplicationDefinitionType();
+            resource.ResourceID = "Library://UnitTest/Test.ApplicationDefinition";
+            resource.CurrentConnection = conn;
+
+            //The bit that actually kicks everything into action
+            try
+            {
+                ed.Resource = resource;
+            }
+            catch (UnsupportedResourceTypeException ex)
+            {
+                Assert.AreEqual(ex.ResourceType, ResourceTypes.ApplicationDefinition);
+            }
+
+            //MGOS 1.1.0 doesn't do advanced symbology either
+            resource = new CompoundSymbolDefinition();
+            resource.ResourceID = "Library://UnitTest/Test.SymbolDefinition";
+            resource.CurrentConnection = conn;
+
+            //The bit that actually kicks everything into action
+            try
+            {
+                ed.Resource = resource;
+            }
+            catch (UnsupportedResourceTypeException ex)
+            {
+                Assert.AreEqual(ex.ResourceType, ResourceTypes.SymbolDefinition);
+            }
+
+            resource = new SimpleSymbolDefinition();
+            resource.ResourceID = "Library://UnitTest/Test.SymbolDefinition";
+            resource.CurrentConnection = conn;
+
+            //The bit that actually kicks everything into action
+            try
+            {
+                ed.Resource = resource;
+            }
+            catch (UnsupportedResourceTypeException ex)
+            {
+                Assert.AreEqual(ex.ResourceType, ResourceTypes.SymbolDefinition);
+            }
+        }
+
+        [Test]
+        public void TestUpgradeableXmlEditor120()
+        {
+            //All resource objects are based on 1.0.0 xsd schemas
+
+            _mocks = new Mockery();
+
+            var resSvc = new MockResourceServiceForXmlEditor();
+
+            var conn = _mocks.NewMock<IServerConnection>();
+            var caps = new HttpCapabilities(conn);
+
+            Stub.On(conn).GetProperty("SiteVersion").Will(Return.Value(new Version(1, 2)));
+            Stub.On(conn).GetProperty("ResourceService").Will(Return.Value(resSvc));
+            Stub.On(conn).GetProperty("Capabilities").Will(Return.Value(caps));
+
+
+            IEditorViewContent ed = new XmlEditor();
+
+            IResource resource = new FeatureSourceType();
+            resource.ResourceID = "Library://UnitTest/Test.FeatureSource";
+            resource.CurrentConnection = conn;
+
+            //The bit that actually kicks everything into action
+            ed.Resource = resource;
+
+            //The values we're interested in
+            Assert.IsFalse(ed.CanUpgrade);
+            Assert.IsTrue(ed.CanBePreviewed);
+
+            resource = new LayerDefinition();
+            resource.ResourceID = "Library://UnitTest/Test.LayerDefinition";
+            resource.CurrentConnection = conn;
+
+            //The bit that actually kicks everything into action
+            ed.Resource = resource;
+
+            //The values we're interested in
+            Assert.IsTrue(ed.CanUpgrade);
+            Assert.IsTrue(ed.CanBePreviewed);
+
+            resource = new MapDefinition();
+            resource.ResourceID = "Library://UnitTest/Test.MapDefinition";
+            resource.CurrentConnection = conn;
+
+            //The bit that actually kicks everything into action
+            ed.Resource = resource;
+
+            //The values we're interested in
+            Assert.IsFalse(ed.CanUpgrade);
+            Assert.IsTrue(ed.CanBePreviewed);
+
+            resource = new WebLayoutType();
+            resource.ResourceID = "Library://UnitTest/Test.WebLayout";
+            resource.CurrentConnection = conn;
+
+            //The bit that actually kicks everything into action
+            ed.Resource = resource;
+
+            //The values we're interested in
+            Assert.IsFalse(ed.CanUpgrade);
+            Assert.IsTrue(ed.CanBePreviewed);
+
+            resource = new PrintLayout();
+            resource.ResourceID = "Library://UnitTest/Test.PrintLayout";
+            resource.CurrentConnection = conn;
+
+            //The bit that actually kicks everything into action
+            ed.Resource = resource;
+
+            //The values we're interested in
+            Assert.IsFalse(ed.CanUpgrade);
+            Assert.IsFalse(ed.CanBePreviewed);
+
+            resource = new LoadProcedure();
+            resource.ResourceID = "Library://UnitTest/Test.LoadProcedure";
+            resource.CurrentConnection = conn;
+
+            //The bit that actually kicks everything into action
+            ed.Resource = resource;
+
+            //The values we're interested in
+            Assert.IsFalse(ed.CanUpgrade);
+            Assert.IsFalse(ed.CanBePreviewed);
+
+            //MGOS 1.2.0 doesn't do fusion
+            resource = new ApplicationDefinitionType();
+            resource.ResourceID = "Library://UnitTest/Test.ApplicationDefinition";
+            resource.CurrentConnection = conn;
+
+            //The bit that actually kicks everything into action
+            try
+            {
+                ed.Resource = resource;
+            }
+            catch (UnsupportedResourceTypeException ex)
+            {
+                Assert.AreEqual(ex.ResourceType, ResourceTypes.ApplicationDefinition);
+            }
+
+            resource = new CompoundSymbolDefinition();
+            resource.ResourceID = "Library://UnitTest/Test.SymbolDefinition";
+            resource.CurrentConnection = conn;
+
+            //The bit that actually kicks everything into action
+            ed.Resource = resource;
+
+            //The values we're interested in
+            Assert.IsFalse(ed.CanUpgrade);
+            Assert.IsFalse(ed.CanBePreviewed);
+
+            resource = new SimpleSymbolDefinition();
+            resource.ResourceID = "Library://UnitTest/Test.SymbolDefinition";
+            resource.CurrentConnection = conn;
+
+            //The bit that actually kicks everything into action
+            ed.Resource = resource;
+            //The values we're interested in
+            Assert.IsFalse(ed.CanUpgrade);
+            Assert.IsFalse(ed.CanBePreviewed);
+        }
+
+        [Test]
+        public void TestUpgradeableXmlEditor200()
+        {
+            //All resource objects are based on 1.0.0 xsd schemas
+
+            _mocks = new Mockery();
+
+            var resSvc = new MockResourceServiceForXmlEditor();
+
+            var conn = _mocks.NewMock<IServerConnection>();
+            var caps = new HttpCapabilities(conn);
+
+            Stub.On(conn).GetProperty("SiteVersion").Will(Return.Value(new Version(2, 0)));
+            Stub.On(conn).GetProperty("ResourceService").Will(Return.Value(resSvc));
+            Stub.On(conn).GetProperty("Capabilities").Will(Return.Value(caps));
+
+
+            IEditorViewContent ed = new XmlEditor();
+
+            IResource resource = new FeatureSourceType();
+            resource.ResourceID = "Library://UnitTest/Test.FeatureSource";
+            resource.CurrentConnection = conn;
+
+            //The bit that actually kicks everything into action
+            ed.Resource = resource;
+
+            //The values we're interested in
+            Assert.IsFalse(ed.CanUpgrade);
+            Assert.IsTrue(ed.CanBePreviewed);
+
+            resource = new LayerDefinition();
+            resource.ResourceID = "Library://UnitTest/Test.LayerDefinition";
+            resource.CurrentConnection = conn;
+
+            //The bit that actually kicks everything into action
+            ed.Resource = resource;
+
+            //The values we're interested in
+            Assert.IsTrue(ed.CanUpgrade);
+            Assert.IsTrue(ed.CanBePreviewed);
+
+            resource = new MapDefinition();
+            resource.ResourceID = "Library://UnitTest/Test.MapDefinition";
+            resource.CurrentConnection = conn;
+
+            //The bit that actually kicks everything into action
+            ed.Resource = resource;
+
+            //The values we're interested in
+            Assert.IsFalse(ed.CanUpgrade);
+            Assert.IsTrue(ed.CanBePreviewed);
+
+            resource = new WebLayoutType();
+            resource.ResourceID = "Library://UnitTest/Test.WebLayout";
+            resource.CurrentConnection = conn;
+
+            //The bit that actually kicks everything into action
+            ed.Resource = resource;
+
+            //The values we're interested in
+            Assert.IsFalse(ed.CanUpgrade);
+            Assert.IsTrue(ed.CanBePreviewed);
+
+            resource = new PrintLayout();
+            resource.ResourceID = "Library://UnitTest/Test.PrintLayout";
+            resource.CurrentConnection = conn;
+
+            //The bit that actually kicks everything into action
+            ed.Resource = resource;
+
+            //The values we're interested in
+            Assert.IsFalse(ed.CanUpgrade);
+            Assert.IsFalse(ed.CanBePreviewed);
+
+            resource = new LoadProcedure();
+            resource.ResourceID = "Library://UnitTest/Test.LoadProcedure";
+            resource.CurrentConnection = conn;
+
+            //The bit that actually kicks everything into action
+            ed.Resource = resource;
+
+            //The values we're interested in
+            Assert.IsTrue(ed.CanUpgrade);
+            Assert.IsFalse(ed.CanBePreviewed);
+
+
+            resource = new ApplicationDefinitionType();
+            resource.ResourceID = "Library://UnitTest/Test.ApplicationDefinition";
+            resource.CurrentConnection = conn;
+
+            //The bit that actually kicks everything into action
+            ed.Resource = resource;
+
+            //The values we're interested in
+            Assert.IsFalse(ed.CanUpgrade);
+            Assert.IsTrue(ed.CanBePreviewed);
+
+            resource = new CompoundSymbolDefinition();
+            resource.ResourceID = "Library://UnitTest/Test.SymbolDefinition";
+            resource.CurrentConnection = conn;
+
+            //The bit that actually kicks everything into action
+            ed.Resource = resource;
+
+            //The values we're interested in
+            Assert.IsTrue(ed.CanUpgrade);
+            Assert.IsFalse(ed.CanBePreviewed);
+
+            resource = new SimpleSymbolDefinition();
+            resource.ResourceID = "Library://UnitTest/Test.SymbolDefinition";
+            resource.CurrentConnection = conn;
+
+            //The bit that actually kicks everything into action
+            ed.Resource = resource;
+            //The values we're interested in
+            Assert.IsTrue(ed.CanUpgrade);
+            Assert.IsFalse(ed.CanBePreviewed);
+        }
+
+        [Test]
+        public void TestUpgradeableXmlEditor210()
+        {
+            //All resource objects are based on 1.0.0 xsd schemas
+
+            _mocks = new Mockery();
+
+            var resSvc = new MockResourceServiceForXmlEditor();
+
+            var conn = _mocks.NewMock<IServerConnection>();
+            var caps = new HttpCapabilities(conn);
+
+            Stub.On(conn).GetProperty("SiteVersion").Will(Return.Value(new Version(2, 1)));
+            Stub.On(conn).GetProperty("ResourceService").Will(Return.Value(resSvc));
+            Stub.On(conn).GetProperty("Capabilities").Will(Return.Value(caps));
+
+
+            IEditorViewContent ed = new XmlEditor();
+
+            IResource resource = new FeatureSourceType();
+            resource.ResourceID = "Library://UnitTest/Test.FeatureSource";
+            resource.CurrentConnection = conn;
+
+            //The bit that actually kicks everything into action
+            ed.Resource = resource;
+
+            //The values we're interested in
+            Assert.IsFalse(ed.CanUpgrade);
+            Assert.IsTrue(ed.CanBePreviewed);
+
+            resource = new LayerDefinition();
+            resource.ResourceID = "Library://UnitTest/Test.LayerDefinition";
+            resource.CurrentConnection = conn;
+
+            //The bit that actually kicks everything into action
+            ed.Resource = resource;
+
+            //The values we're interested in
+            Assert.IsTrue(ed.CanUpgrade);
+            Assert.IsTrue(ed.CanBePreviewed);
+
+            resource = new MapDefinition();
+            resource.ResourceID = "Library://UnitTest/Test.MapDefinition";
+            resource.CurrentConnection = conn;
+
+            //The bit that actually kicks everything into action
+            ed.Resource = resource;
+
+            //The values we're interested in
+            Assert.IsFalse(ed.CanUpgrade);
+            Assert.IsTrue(ed.CanBePreviewed);
+
+            resource = new WebLayoutType();
+            resource.ResourceID = "Library://UnitTest/Test.WebLayout";
+            resource.CurrentConnection = conn;
+
+            //The bit that actually kicks everything into action
+            ed.Resource = resource;
+
+            //The values we're interested in
+            Assert.IsFalse(ed.CanUpgrade);
+            Assert.IsTrue(ed.CanBePreviewed);
+
+            resource = new PrintLayout();
+            resource.ResourceID = "Library://UnitTest/Test.PrintLayout";
+            resource.CurrentConnection = conn;
+
+            //The bit that actually kicks everything into action
+            ed.Resource = resource;
+
+            //The values we're interested in
+            Assert.IsFalse(ed.CanUpgrade);
+            Assert.IsFalse(ed.CanBePreviewed);
+
+            resource = new LoadProcedure();
+            resource.ResourceID = "Library://UnitTest/Test.LoadProcedure";
+            resource.CurrentConnection = conn;
+
+            //The bit that actually kicks everything into action
+            ed.Resource = resource;
+
+            //The values we're interested in
+            Assert.IsTrue(ed.CanUpgrade);
+            Assert.IsFalse(ed.CanBePreviewed);
+
+
+            resource = new ApplicationDefinitionType();
+            resource.ResourceID = "Library://UnitTest/Test.ApplicationDefinition";
+            resource.CurrentConnection = conn;
+
+            //The bit that actually kicks everything into action
+            ed.Resource = resource;
+
+            //The values we're interested in
+            Assert.IsFalse(ed.CanUpgrade);
+            Assert.IsTrue(ed.CanBePreviewed);
+
+            resource = new CompoundSymbolDefinition();
+            resource.ResourceID = "Library://UnitTest/Test.SymbolDefinition";
+            resource.CurrentConnection = conn;
+
+            //The bit that actually kicks everything into action
+            ed.Resource = resource;
+
+            //The values we're interested in
+            Assert.IsTrue(ed.CanUpgrade);
+            Assert.IsFalse(ed.CanBePreviewed);
+
+            resource = new SimpleSymbolDefinition();
+            resource.ResourceID = "Library://UnitTest/Test.SymbolDefinition";
+            resource.CurrentConnection = conn;
+
+            //The bit that actually kicks everything into action
+            ed.Resource = resource;
+            //The values we're interested in
+            Assert.IsTrue(ed.CanUpgrade);
+            Assert.IsFalse(ed.CanBePreviewed);
+        }
+
+        [Test]
+        public void TestUpgradeableXmlEditor220()
+        {
+            //All resource objects are based on 1.0.0 xsd schemas
+
+            _mocks = new Mockery();
+
+            var resSvc = new MockResourceServiceForXmlEditor();
+
+            var conn = _mocks.NewMock<IServerConnection>();
+            var caps = new HttpCapabilities(conn);
+
+            Stub.On(conn).GetProperty("SiteVersion").Will(Return.Value(new Version(2, 2)));
+            Stub.On(conn).GetProperty("ResourceService").Will(Return.Value(resSvc));
+            Stub.On(conn).GetProperty("Capabilities").Will(Return.Value(caps));
+
+
+            IEditorViewContent ed = new XmlEditor();
+
+            IResource resource = new FeatureSourceType();
+            resource.ResourceID = "Library://UnitTest/Test.FeatureSource";
+            resource.CurrentConnection = conn;
+
+            //The bit that actually kicks everything into action
+            ed.Resource = resource;
+
+            //The values we're interested in
+            Assert.IsFalse(ed.CanUpgrade);
+            Assert.IsTrue(ed.CanBePreviewed);
+
+            resource = new LayerDefinition();
+            resource.ResourceID = "Library://UnitTest/Test.LayerDefinition";
+            resource.CurrentConnection = conn;
+
+            //The bit that actually kicks everything into action
+            ed.Resource = resource;
+
+            //The values we're interested in
+            Assert.IsTrue(ed.CanUpgrade);
+            Assert.IsTrue(ed.CanBePreviewed);
+
+            resource = new MapDefinition();
+            resource.ResourceID = "Library://UnitTest/Test.MapDefinition";
+            resource.CurrentConnection = conn;
+
+            //The bit that actually kicks everything into action
+            ed.Resource = resource;
+
+            //The values we're interested in
+            Assert.IsFalse(ed.CanUpgrade);
+            Assert.IsTrue(ed.CanBePreviewed);
+
+            resource = new WebLayoutType();
+            resource.ResourceID = "Library://UnitTest/Test.WebLayout";
+            resource.CurrentConnection = conn;
+
+            //The bit that actually kicks everything into action
+            ed.Resource = resource;
+
+            //The values we're interested in
+            Assert.IsTrue(ed.CanUpgrade);
+            Assert.IsTrue(ed.CanBePreviewed);
+
+            resource = new PrintLayout();
+            resource.ResourceID = "Library://UnitTest/Test.PrintLayout";
+            resource.CurrentConnection = conn;
+
+            //The bit that actually kicks everything into action
+            ed.Resource = resource;
+
+            //The values we're interested in
+            Assert.IsFalse(ed.CanUpgrade);
+            Assert.IsFalse(ed.CanBePreviewed);
+
+            resource = new LoadProcedure();
+            resource.ResourceID = "Library://UnitTest/Test.LoadProcedure";
+            resource.CurrentConnection = conn;
+
+            //The bit that actually kicks everything into action
+            ed.Resource = resource;
+
+            //The values we're interested in
+            Assert.IsTrue(ed.CanUpgrade);
+            Assert.IsFalse(ed.CanBePreviewed);
+
+
+            resource = new ApplicationDefinitionType();
+            resource.ResourceID = "Library://UnitTest/Test.ApplicationDefinition";
+            resource.CurrentConnection = conn;
+
+            //The bit that actually kicks everything into action
+            ed.Resource = resource;
+
+            //The values we're interested in
+            Assert.IsFalse(ed.CanUpgrade);
+            Assert.IsTrue(ed.CanBePreviewed);
+
+            resource = new CompoundSymbolDefinition();
+            resource.ResourceID = "Library://UnitTest/Test.SymbolDefinition";
+            resource.CurrentConnection = conn;
+
+            //The bit that actually kicks everything into action
+            ed.Resource = resource;
+
+            //The values we're interested in
+            Assert.IsTrue(ed.CanUpgrade);
+            Assert.IsFalse(ed.CanBePreviewed);
+
+            resource = new SimpleSymbolDefinition();
+            resource.ResourceID = "Library://UnitTest/Test.SymbolDefinition";
+            resource.CurrentConnection = conn;
+
+            //The bit that actually kicks everything into action
+            ed.Resource = resource;
+            //The values we're interested in
+            Assert.IsTrue(ed.CanUpgrade);
+            Assert.IsFalse(ed.CanBePreviewed);
+        }
+    }
+}

Added: sandbox/maestro-2.5/MaestroBaseTests/MaestroBaseTests.csproj
===================================================================
--- sandbox/maestro-2.5/MaestroBaseTests/MaestroBaseTests.csproj	                        (rev 0)
+++ sandbox/maestro-2.5/MaestroBaseTests/MaestroBaseTests.csproj	2010-05-17 06:46:19 UTC (rev 4890)
@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProductVersion>9.0.30729</ProductVersion>
+    <SchemaVersion>2.0</SchemaVersion>
+    <ProjectGuid>{CE5F281C-0162-4832-87BB-A677D13D116F}</ProjectGuid>
+    <OutputType>Library</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>MaestroBaseTests</RootNamespace>
+    <AssemblyName>MaestroBaseTests</AssemblyName>
+    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
+    <FileAlignment>512</FileAlignment>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\Debug\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="NMock2, Version=2.0.0.44, Culture=neutral, PublicKeyToken=37d3be0adc87c2b7, processorArchitecture=MSIL">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>..\Thirdparty\NMock\bin\NMock2.dll</HintPath>
+    </Reference>
+    <Reference Include="nunit.framework, Version=2.5.5.10112, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>..\Thirdparty\NUnit\bin\net-2.0\nunit.framework.dll</HintPath>
+    </Reference>
+    <Reference Include="System" />
+    <Reference Include="System.Core">
+      <RequiredTargetFramework>3.5</RequiredTargetFramework>
+    </Reference>
+    <Reference Include="System.Drawing" />
+    <Reference Include="System.Windows.Forms" />
+    <Reference Include="System.Xml.Linq">
+      <RequiredTargetFramework>3.5</RequiredTargetFramework>
+    </Reference>
+    <Reference Include="System.Data.DataSetExtensions">
+      <RequiredTargetFramework>3.5</RequiredTargetFramework>
+    </Reference>
+    <Reference Include="System.Data" />
+    <Reference Include="System.Xml" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="EditorTests.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\Maestro.Base\Maestro.Base.csproj">
+      <Project>{F1E2F468-5030-4DBA-968C-9620284AFAA1}</Project>
+      <Name>Maestro.Base</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\OSGeo.MapGuide.MaestroAPI.Http\OSGeo.MapGuide.MaestroAPI.Http.csproj">
+      <Project>{6EF1E775-444B-4E5F-87FB-D687C43A68D7}</Project>
+      <Name>OSGeo.MapGuide.MaestroAPI.Http</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\OSGeo.MapGuide.MaestroAPI\OSGeo.MapGuide.MaestroAPI.csproj">
+      <Project>{80FA3158-8B5F-48D1-A393-0378AFE48A7E}</Project>
+      <Name>OSGeo.MapGuide.MaestroAPI</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\Thirdparty\SharpDevelop\ICSharpCode.Core.WinForms\ICSharpCode.Core.WinForms.csproj">
+      <Project>{857CA1A3-FC88-4BE0-AB6A-D1EE772AB288}</Project>
+      <Name>ICSharpCode.Core.WinForms</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\Thirdparty\SharpDevelop\ICSharpCode.Core\ICSharpCode.Core.csproj">
+      <Project>{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}</Project>
+      <Name>ICSharpCode.Core</Name>
+    </ProjectReference>
+  </ItemGroup>
+  <ItemGroup>
+    <Content Include="..\Maestro.Base\Maestro.Base.addin">
+      <Link>AddIns\Maestro.Base.addin</Link>
+      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+    </Content>
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="App.config" />
+  </ItemGroup>
+  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
+       Other similar extension points exist, see Microsoft.Common.targets.
+  <Target Name="BeforeBuild">
+  </Target>
+  <Target Name="AfterBuild">
+  </Target>
+  -->
+</Project>
\ No newline at end of file

Added: sandbox/maestro-2.5/MaestroBaseTests/Properties/AssemblyInfo.cs
===================================================================
--- sandbox/maestro-2.5/MaestroBaseTests/Properties/AssemblyInfo.cs	                        (rev 0)
+++ sandbox/maestro-2.5/MaestroBaseTests/Properties/AssemblyInfo.cs	2010-05-17 06:46:19 UTC (rev 4890)
@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following 
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("MaestroBaseTests")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("Microsoft")]
+[assembly: AssemblyProduct("MaestroBaseTests")]
+[assembly: AssemblyCopyright("Copyright © Microsoft 2010")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible 
+// to COM components.  If you need to access a type in this assembly from 
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("a6ba503b-3655-4dab-921e-5f1dde6153de")]
+
+// Version information for an assembly consists of the following four values:
+//
+//      Major Version
+//      Minor Version 
+//      Build Number
+//      Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers 
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]

Modified: sandbox/maestro-2.5/OSGeo.MapGuide.MaestroAPI.Http/Properties/AssemblyInfo.cs
===================================================================
--- sandbox/maestro-2.5/OSGeo.MapGuide.MaestroAPI.Http/Properties/AssemblyInfo.cs	2010-05-17 05:57:43 UTC (rev 4889)
+++ sandbox/maestro-2.5/OSGeo.MapGuide.MaestroAPI.Http/Properties/AssemblyInfo.cs	2010-05-17 06:46:19 UTC (rev 4890)
@@ -35,4 +35,5 @@
 [assembly: AssemblyVersion("1.0.0.0")]
 [assembly: AssemblyFileVersion("1.0.0.0")]
 
-[assembly: InternalsVisibleTo("MaestroAPITests")]
\ No newline at end of file
+[assembly: InternalsVisibleTo("MaestroAPITests")]
+[assembly: InternalsVisibleTo("MaestroBaseTests")]
\ No newline at end of file



More information about the mapguide-commits mailing list