[mapguide-commits] r9676 - in sandbox/jng/catch2/Desktop: DesktopUnmanagedApi UnitTest
svn_mapguide at osgeo.org
svn_mapguide at osgeo.org
Tue Jul 21 02:14:23 PDT 2020
Author: jng
Date: 2020-07-21 02:14:23 -0700 (Tue, 21 Jul 2020)
New Revision: 9676
Added:
sandbox/jng/catch2/Desktop/UnitTest/CatchHelperMacros.h
sandbox/jng/catch2/Desktop/UnitTest/TestServiceFactory.cpp
sandbox/jng/catch2/Desktop/UnitTest/TestServiceFactory.h
Modified:
sandbox/jng/catch2/Desktop/DesktopUnmanagedApi/
Log:
mg-desktop: Add missing files
Index: sandbox/jng/catch2/Desktop/DesktopUnmanagedApi
===================================================================
--- sandbox/jng/catch2/Desktop/DesktopUnmanagedApi 2020-07-15 16:00:34 UTC (rev 9675)
+++ sandbox/jng/catch2/Desktop/DesktopUnmanagedApi 2020-07-21 09:14:23 UTC (rev 9676)
Property changes on: sandbox/jng/catch2/Desktop/DesktopUnmanagedApi
___________________________________________________________________
Added: svn:ignore
## -0,0 +1 ##
+lib
Added: sandbox/jng/catch2/Desktop/UnitTest/CatchHelperMacros.h
===================================================================
--- sandbox/jng/catch2/Desktop/UnitTest/CatchHelperMacros.h (rev 0)
+++ sandbox/jng/catch2/Desktop/UnitTest/CatchHelperMacros.h 2020-07-21 09:14:23 UTC (rev 9676)
@@ -0,0 +1,26 @@
+//
+// Copyright (C) 2004-2020 by Autodesk, Inc.
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of version 2.1 of the GNU Lesser
+// General Public License as published by the Free Software Foundation.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+//
+
+#include "catch.hpp"
+#define REQUIRE_THROWS_MG(action, extype) \
+ try { \
+ action; \
+ FAIL("Expected exception to be thrown"); \
+ } \
+ catch (extype ex) { \
+ SAFE_RELEASE(ex); \
+ }
Added: sandbox/jng/catch2/Desktop/UnitTest/TestServiceFactory.cpp
===================================================================
--- sandbox/jng/catch2/Desktop/UnitTest/TestServiceFactory.cpp (rev 0)
+++ sandbox/jng/catch2/Desktop/UnitTest/TestServiceFactory.cpp 2020-07-21 09:14:23 UTC (rev 9676)
@@ -0,0 +1,1560 @@
+//
+// Copyright (C) 2004-2020 by Autodesk, Inc.
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of version 2.1 of the GNU Lesser
+// General Public License as published by the Free Software Foundation.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+//
+
+#include "TestServiceFactory.h"
+#include "Services/Feature/FdoConnectionPool.h"
+
+#define CATCH_CONFIG_EXTERNAL_INTERFACES
+#include "catch.hpp"
+
+const STRING TestServiceFactory::TEST_LOCALE = L"en";
+
+std::set<std::string> TestServiceFactory::sm_suitesToRun;
+
+bool TestServiceFactory::IsRunningSuite(const std::string& suite)
+{
+ return sm_suitesToRun.find(suite) != sm_suitesToRun.end();
+}
+
+void TestServiceFactory::GetCatch2Tags(std::string& testOrTags)
+{
+ bool bFirst = true;
+ for (auto const& item : sm_suitesToRun)
+ {
+ if (bFirst)
+ {
+ bFirst = false;
+ }
+ else
+ {
+ testOrTags += ",";
+ }
+ testOrTags += item;
+ }
+}
+
+void TestServiceFactory::AddSuiteToRun(const std::string& suite)
+{
+ sm_suitesToRun.insert(suite);
+}
+
+struct TestDataSetup : Catch::TestEventListenerBase
+{
+ using TestEventListenerBase::TestEventListenerBase; // inherit constructor
+
+ // Get rid of Wweak-tables
+ ~TestDataSetup();
+
+ void testCaseStarting(Catch::TestCaseInfo const& _testInfo) override {
+ printf(">>> Starting test case: %s\n", _testInfo.name.c_str());
+ }
+
+ // The whole test run starting
+ void testRunStarting(Catch::TestRunInfo const& testRunInfo) override {
+
+ Ptr<MgdServiceFactory> fact = new MgdServiceFactory();
+ Ptr<MgResourceService> pService = dynamic_cast<MgResourceService*>(fact->CreateService(MgServiceType::ResourceService));
+ if (pService == nullptr)
+ {
+ throw new MgServiceNotAvailableException(L"TestFeatureService.TestStart", __LINE__, __WFILE__, nullptr, L"", nullptr);
+ }
+ Ptr<MgdFeatureService> featSvc = dynamic_cast<MgdFeatureService*>(fact->CreateService(MgServiceType::FeatureService));
+ if (featSvc == nullptr)
+ {
+ throw new MgServiceNotAvailableException(L"TestFeatureService.TestStart", __LINE__, __WFILE__, nullptr, L"", nullptr);
+ }
+
+ Ptr<MgCoordinateSystemFactory> csFactory = new MgCoordinateSystemFactory();
+ Ptr<MgCoordinateSystemCatalog> csCatalog = csFactory->GetCatalog();
+ STRING dictPath = csCatalog->GetDictionaryDir();
+ ACE_DEBUG((LM_INFO, ACE_TEXT("\nCoordinate System Dictionary Path is: %W\n"), dictPath.c_str()));
+
+#ifdef _WIN32
+ //If the FDO we're using has a full providers.xml and we haven't met the dependencies
+ //of some providers (eg. OCI.dll for King.Oracle), then it's going to show a message box
+ //in our face about this that has to be manually dismissed. Not something you want to have
+ //happen when trying to run tests in an automated fashion. This test suite only covers the
+ //SDF, SHP and SQLite providers so having such message boxes show up is intrusive.
+ //
+ //This call will suppress such message boxes when loading dlls with unmet depdendencies. It's
+ //okay to do this here because mgserver.exe would not be running as a service or long-running process
+ //when running its test suite, so this will only take effect for the duration of the test run
+ SetErrorMode(SEM_FAILCRITICALERRORS);
+#endif
+
+ printf("*******************************************\n");
+ printf("******* Setting up test environment *******\n");
+ printf("*******************************************\n");
+
+ // TestMappingService setup
+ if (TestServiceFactory::IsRunningSuite("[MappingService]"))
+ {
+ printf("Setting up data for suite: MappingService\n");
+ try
+ {
+ //publish the map definition
+ Ptr<MgResourceIdentifier> mapres = new MgResourceIdentifier(L"Library://UnitTests/Maps/Sheboygan.MapDefinition");
+ Ptr<MgByteSource> mdfsrc = new MgByteSource(L"../UnitTestFiles/UT_Sheboygan.mdf", false);
+ Ptr<MgByteReader> mdfrdr = mdfsrc->GetReader();
+ pService->SetResource(mapres, mdfrdr, nullptr);
+
+ //publish the layer definitions
+ Ptr<MgResourceIdentifier> ldfres1 = new MgResourceIdentifier(L"Library://UnitTests/Layers/HydrographicPolygons.LayerDefinition");
+ Ptr<MgByteSource> ldfsrc1 = new MgByteSource(L"../UnitTestFiles/UT_HydrographicPolygons.ldf", false);
+ Ptr<MgByteReader> ldfrdr1 = ldfsrc1->GetReader();
+ pService->SetResource(ldfres1, ldfrdr1, nullptr);
+
+ Ptr<MgResourceIdentifier> ldfres2 = new MgResourceIdentifier(L"Library://UnitTests/Layers/Parcels.LayerDefinition");
+ Ptr<MgByteSource> ldfsrc2 = new MgByteSource(L"../UnitTestFiles/UT_Parcels.ldf", false);
+ Ptr<MgByteReader> ldfrdr2 = ldfsrc2->GetReader();
+ pService->SetResource(ldfres2, ldfrdr2, nullptr);
+
+ Ptr<MgResourceIdentifier> ldfres3 = new MgResourceIdentifier(L"Library://UnitTests/Layers/Rail.LayerDefinition");
+ Ptr<MgByteSource> ldfsrc3 = new MgByteSource(L"../UnitTestFiles/UT_Rail.ldf", false);
+ Ptr<MgByteReader> ldfrdr3 = ldfsrc3->GetReader();
+ pService->SetResource(ldfres3, ldfrdr3, nullptr);
+
+ //publish the feature sources
+ Ptr<MgResourceIdentifier> fsres1 = new MgResourceIdentifier(L"Library://UnitTests/Data/HydrographicPolygons.FeatureSource");
+ Ptr<MgByteSource> fssrc1 = new MgByteSource(L"../UnitTestFiles/UT_HydrographicPolygons.fs", false);
+ Ptr<MgByteReader> fsrdr1 = fssrc1->GetReader();
+ pService->SetResource(fsres1, fsrdr1, nullptr);
+
+ Ptr<MgResourceIdentifier> fsres2 = new MgResourceIdentifier(L"Library://UnitTests/Data/Parcels.FeatureSource");
+ Ptr<MgByteSource> fssrc2 = new MgByteSource(L"../UnitTestFiles/UT_Parcels.fs", false);
+ Ptr<MgByteReader> fsrdr2 = fssrc2->GetReader();
+ pService->SetResource(fsres2, fsrdr2, nullptr);
+
+ Ptr<MgResourceIdentifier> fsres3 = new MgResourceIdentifier(L"Library://UnitTests/Data/Rail.FeatureSource");
+ Ptr<MgByteSource> fssrc3 = new MgByteSource(L"../UnitTestFiles/UT_Rail.fs", false);
+ Ptr<MgByteReader> fsrdr3 = fssrc3->GetReader();
+ pService->SetResource(fsres3, fsrdr3, nullptr);
+
+ // publish the resource data
+ Ptr<MgByteSource> dataSource1 = new MgByteSource(L"../UnitTestFiles/UT_HydrographicPolygons.sdf", false);
+ Ptr<MgByteReader> dataReader1 = dataSource1->GetReader();
+ pService->SetResourceData(fsres1, L"UT_HydrographicPolygons.sdf", L"File", dataReader1);
+
+ Ptr<MgByteSource> dataSource2 = new MgByteSource(L"../UnitTestFiles/UT_Parcels.sdf", false);
+ Ptr<MgByteReader> dataReader2 = dataSource2->GetReader();
+ pService->SetResourceData(fsres2, L"UT_Parcels.sdf", L"File", dataReader2);
+
+ Ptr<MgByteSource> dataSource3 = new MgByteSource(L"../UnitTestFiles/UT_Rail.sdf", false);
+ Ptr<MgByteReader> dataReader3 = dataSource3->GetReader();
+ pService->SetResourceData(fsres3, L"UT_Rail.sdf", L"File", dataReader3);
+
+ // publish the print layouts
+ Ptr<MgResourceIdentifier> plres1 = new MgResourceIdentifier(L"Library://UnitTests/PrintLayouts/AllElements.PrintLayout");
+ Ptr<MgByteSource> plsrc1 = new MgByteSource(L"../UnitTestFiles/UT_AllElements.pl", false);
+ Ptr<MgByteReader> plrdr1 = plsrc1->GetReader();
+ pService->SetResource(plres1, plrdr1, nullptr);
+
+ Ptr<MgResourceIdentifier> plres2 = new MgResourceIdentifier(L"Library://UnitTests/PrintLayouts/NoLegend.PrintLayout");
+ Ptr<MgByteSource> plsrc2 = new MgByteSource(L"../UnitTestFiles/UT_NoLegend.pl", false);
+ Ptr<MgByteReader> plrdr2 = plsrc2->GetReader();
+ pService->SetResource(plres2, plrdr2, nullptr);
+
+ // publish the symbol library
+ Ptr<MgResourceIdentifier> slres1 = new MgResourceIdentifier(L"Library://UnitTests/Symbols/SymbolMart.SymbolLibrary");
+ Ptr<MgByteSource> slsrc1 = new MgByteSource(L"../UnitTestFiles/UT_SymbolMart.sl", false);
+ Ptr<MgByteReader> slrdr1 = slsrc1->GetReader();
+ pService->SetResource(slres1, slrdr1, nullptr);
+ Ptr<MgByteSource> datasrc = new MgByteSource(L"../UnitTestFiles/UT_Symbols.dwf", false);
+ Ptr<MgByteReader> datardr = datasrc->GetReader();
+ pService->SetResourceData(slres1, L"symbols.dwf", L"File", datardr);
+ }
+ catch (MgException* e)
+ {
+ STRING message = e->GetDetails(TestServiceFactory::TEST_LOCALE);
+ SAFE_RELEASE(e);
+ FAIL(MG_WCHAR_TO_CHAR(message.c_str()));
+ }
+ catch (...)
+ {
+ throw;
+ }
+ }
+
+ // TestRenderingService setup
+ if (TestServiceFactory::IsRunningSuite("[RenderingService]"))
+ {
+ printf("Setting up data for suite: RenderingService\n");
+ try
+ {
+ // publish the map definition
+ Ptr<MgResourceIdentifier> mapres1 = new MgResourceIdentifier(L"Library://UnitTests/Maps/Sheboygan.MapDefinition");
+ Ptr<MgByteSource> mdfsrc1 = new MgByteSource(L"../UnitTestFiles/UT_Sheboygan.mdf", false);
+ Ptr<MgByteReader> mdfrdr1 = mdfsrc1->GetReader();
+ pService->SetResource(mapres1, mdfrdr1, nullptr);
+
+ // publish the layer definitions
+ Ptr<MgResourceIdentifier> ldfres1 = new MgResourceIdentifier(L"Library://UnitTests/Layers/HydrographicPolygons.LayerDefinition");
+ Ptr<MgByteSource> ldfsrc1 = new MgByteSource(L"../UnitTestFiles/UT_HydrographicPolygons.ldf", false);
+ Ptr<MgByteReader> ldfrdr1 = ldfsrc1->GetReader();
+ pService->SetResource(ldfres1, ldfrdr1, nullptr);
+
+ Ptr<MgResourceIdentifier> ldfres2 = new MgResourceIdentifier(L"Library://UnitTests/Layers/Rail.LayerDefinition");
+ Ptr<MgByteSource> ldfsrc2 = new MgByteSource(L"../UnitTestFiles/UT_Rail.ldf", false);
+ Ptr<MgByteReader> ldfrdr2 = ldfsrc2->GetReader();
+ pService->SetResource(ldfres2, ldfrdr2, nullptr);
+
+ Ptr<MgResourceIdentifier> ldfres3 = new MgResourceIdentifier(L"Library://UnitTests/Layers/Parcels.LayerDefinition");
+ Ptr<MgByteSource> ldfsrc3 = new MgByteSource(L"../UnitTestFiles/UT_Parcels.ldf", false);
+ Ptr<MgByteReader> ldfrdr3 = ldfsrc3->GetReader();
+ pService->SetResource(ldfres3, ldfrdr3, nullptr);
+
+ // publish the feature sources
+ Ptr<MgResourceIdentifier> fsres1 = new MgResourceIdentifier(L"Library://UnitTests/Data/HydrographicPolygons.FeatureSource");
+ Ptr<MgByteSource> fssrc1 = new MgByteSource(L"../UnitTestFiles/UT_HydrographicPolygons.fs", false);
+ Ptr<MgByteReader> fsrdr1 = fssrc1->GetReader();
+ pService->SetResource(fsres1, fsrdr1, nullptr);
+
+ Ptr<MgResourceIdentifier> fsres2 = new MgResourceIdentifier(L"Library://UnitTests/Data/Rail.FeatureSource");
+ Ptr<MgByteSource> fssrc2 = new MgByteSource(L"../UnitTestFiles/UT_Rail.fs", false);
+ Ptr<MgByteReader> fsrdr2 = fssrc2->GetReader();
+ pService->SetResource(fsres2, fsrdr2, nullptr);
+
+ Ptr<MgResourceIdentifier> fsres3 = new MgResourceIdentifier(L"Library://UnitTests/Data/Parcels.FeatureSource");
+ Ptr<MgByteSource> fssrc3 = new MgByteSource(L"../UnitTestFiles/UT_Parcels.fs", false);
+ Ptr<MgByteReader> fsrdr3 = fssrc3->GetReader();
+ pService->SetResource(fsres3, fsrdr3, nullptr);
+
+ // publish the resource data
+ Ptr<MgByteSource> dataSource1 = new MgByteSource(L"../UnitTestFiles/UT_HydrographicPolygons.sdf", false);
+ Ptr<MgByteReader> dataReader1 = dataSource1->GetReader();
+ pService->SetResourceData(fsres1, L"UT_HydrographicPolygons.sdf", L"File", dataReader1);
+
+ Ptr<MgByteSource> dataSource2 = new MgByteSource(L"../UnitTestFiles/UT_Rail.sdf", false);
+ Ptr<MgByteReader> dataReader2 = dataSource2->GetReader();
+ pService->SetResourceData(fsres2, L"UT_Rail.sdf", L"File", dataReader2);
+
+ Ptr<MgByteSource> dataSource3 = new MgByteSource(L"../UnitTestFiles/UT_Parcels.sdf", false);
+ Ptr<MgByteReader> dataReader3 = dataSource3->GetReader();
+ pService->SetResourceData(fsres3, L"UT_Parcels.sdf", L"File", dataReader3);
+
+ // publish the print layouts
+ Ptr<MgResourceIdentifier> plres1 = new MgResourceIdentifier(L"Library://UnitTests/PrintLayouts/AllElements.PrintLayout");
+ Ptr<MgByteSource> plsrc1 = new MgByteSource(L"../UnitTestFiles/UT_AllElements.pl", false);
+ Ptr<MgByteReader> plrdr1 = plsrc1->GetReader();
+ pService->SetResource(plres1, plrdr1, nullptr);
+
+ Ptr<MgResourceIdentifier> plres2 = new MgResourceIdentifier(L"Library://UnitTests/PrintLayouts/NoLegend.PrintLayout");
+ Ptr<MgByteSource> plsrc2 = new MgByteSource(L"../UnitTestFiles/UT_NoLegend.pl", false);
+ Ptr<MgByteReader> plrdr2 = plsrc2->GetReader();
+ pService->SetResource(plres2, plrdr2, nullptr);
+
+ // publish the symbol library
+ Ptr<MgResourceIdentifier> slres1 = new MgResourceIdentifier(L"Library://UnitTests/Symbols/SymbolMart.SymbolLibrary");
+ Ptr<MgByteSource> slsrc1 = new MgByteSource(L"../UnitTestFiles/UT_SymbolMart.sl", false);
+ Ptr<MgByteReader> slrdr1 = slsrc1->GetReader();
+ pService->SetResource(slres1, slrdr1, nullptr);
+ Ptr<MgByteSource> datasrc = new MgByteSource(L"../UnitTestFiles/UT_Symbols.dwf", false);
+ Ptr<MgByteReader> datardr = datasrc->GetReader();
+ pService->SetResourceData(slres1, L"symbols.dwf", L"File", datardr);
+
+ //
+ // publish symbology stuff
+ //
+
+ // the point feature source
+ Ptr<MgResourceIdentifier> fsres4 = new MgResourceIdentifier(L"Library://UnitTests/Data/Capitals.FeatureSource");
+ Ptr<MgByteSource> fssrc4 = new MgByteSource(L"../UnitTestFiles/UT_SymbologyPoints.fs", false);
+ Ptr<MgByteReader> fsrdr4 = fssrc4->GetReader();
+ pService->SetResource(fsres4, fsrdr4, nullptr);
+
+ // point sdf file
+ Ptr<MgByteSource> dataSource4 = new MgByteSource(L"../UnitTestFiles/UT_SymbologyPoints.sdf", false);
+ Ptr<MgByteReader> dataReader4 = dataSource4->GetReader();
+ pService->SetResourceData(fsres4, L"UT_SymbologyPoints.sdf", L"File", dataReader4);
+
+ // point symbols
+ Ptr<MgResourceIdentifier> sdres1 = new MgResourceIdentifier(L"Library://UnitTests/Symbols/PointSymbol.SymbolDefinition");
+ Ptr<MgByteSource> sdsrc1 = new MgByteSource(L"../UnitTestFiles/symbol.sd", false);
+ Ptr<MgByteReader> sdrdr1 = sdsrc1->GetReader();
+ pService->SetResource(sdres1, sdrdr1, nullptr);
+
+ Ptr<MgResourceIdentifier> sdres2 = new MgResourceIdentifier(L"Library://UnitTests/Symbols/PointSymbolParam.SymbolDefinition");
+ Ptr<MgByteSource> sdsrc2 = new MgByteSource(L"../UnitTestFiles/symbolp.sd", false);
+ Ptr<MgByteReader> sdrdr2 = sdsrc2->GetReader();
+ pService->SetResource(sdres2, sdrdr2, nullptr);
+
+ // point ldf
+ Ptr<MgResourceIdentifier> ldfres4 = new MgResourceIdentifier(L"Library://UnitTests/Layers/Capitals.LayerDefinition");
+ Ptr<MgByteSource> ldfsrc4 = new MgByteSource(L"../UnitTestFiles/UT_SymbologyPoints.ldf", false);
+ Ptr<MgByteReader> ldfrdr4 = ldfsrc4->GetReader();
+ pService->SetResource(ldfres4, ldfrdr4, nullptr);
+
+ Ptr<MgResourceIdentifier> ldfres5 = new MgResourceIdentifier(L"Library://UnitTests/Layers/CapitalsParam.LayerDefinition");
+ Ptr<MgByteSource> ldfsrc5 = new MgByteSource(L"../UnitTestFiles/UT_SymbologyPointsParam.ldf", false);
+ Ptr<MgByteReader> ldfrdr5 = ldfsrc5->GetReader();
+ pService->SetResource(ldfres5, ldfrdr5, nullptr);
+
+ // point mdf
+ Ptr<MgResourceIdentifier> mapres2 = new MgResourceIdentifier(L"Library://UnitTests/Maps/Capitals.MapDefinition");
+ Ptr<MgByteSource> mdfsrc2 = new MgByteSource(L"../UnitTestFiles/UT_SymbologyPoints.mdf", false);
+ Ptr<MgByteReader> mdfrdr2 = mdfsrc2->GetReader();
+ pService->SetResource(mapres2, mdfrdr2, nullptr);
+
+ Ptr<MgResourceIdentifier> mapres3 = new MgResourceIdentifier(L"Library://UnitTests/Maps/CapitalsParam.MapDefinition");
+ Ptr<MgByteSource> mdfsrc3 = new MgByteSource(L"../UnitTestFiles/UT_SymbologyPointsParam.mdf", false);
+ Ptr<MgByteReader> mdfrdr3 = mdfsrc3->GetReader();
+ pService->SetResource(mapres3, mdfrdr3, nullptr);
+
+ // the line feature source
+ Ptr<MgResourceIdentifier> fsres5 = new MgResourceIdentifier(L"Library://UnitTests/Data/Lines.FeatureSource");
+ Ptr<MgByteSource> fssrc5 = new MgByteSource(L"../UnitTestFiles/UT_SymbologyLines.fs", false);
+ Ptr<MgByteReader> fsrdr5 = fssrc5->GetReader();
+ pService->SetResource(fsres5, fsrdr5, nullptr);
+
+ // line sdf file
+ Ptr<MgByteSource> dataSource5 = new MgByteSource(L"../UnitTestFiles/UT_SymbologyLines.sdf", false);
+ Ptr<MgByteReader> dataReader5 = dataSource5->GetReader();
+ pService->SetResourceData(fsres5, L"UT_SymbologyLines.sdf", L"File", dataReader5);
+
+ // line symbols
+ Ptr<MgResourceIdentifier> sdres3 = new MgResourceIdentifier(L"Library://UnitTests/Symbols/LineSymbol.SymbolDefinition");
+ Ptr<MgByteSource> sdsrc3 = new MgByteSource(L"../UnitTestFiles/linesymbol.sd", false);
+ Ptr<MgByteReader> sdrdr3 = sdsrc3->GetReader();
+ pService->SetResource(sdres3, sdrdr3, nullptr);
+
+ Ptr<MgResourceIdentifier> sdres4 = new MgResourceIdentifier(L"Library://UnitTests/Symbols/MTYP1500a.SymbolDefinition");
+ Ptr<MgByteSource> sdsrc4 = new MgByteSource(L"../UnitTestFiles/MTYP1500a.sd", false);
+ Ptr<MgByteReader> sdrdr4 = sdsrc4->GetReader();
+ pService->SetResource(sdres4, sdrdr4, nullptr);
+
+ // line ldf
+ Ptr<MgResourceIdentifier> ldfres6 = new MgResourceIdentifier(L"Library://UnitTests/Layers/Lines.LayerDefinition");
+ Ptr<MgByteSource> ldfsrc6 = new MgByteSource(L"../UnitTestFiles/UT_SymbologyLines.ldf", false);
+ Ptr<MgByteReader> ldfrdr6 = ldfsrc6->GetReader();
+ pService->SetResource(ldfres6, ldfrdr6, nullptr);
+
+ Ptr<MgResourceIdentifier> ldfres7 = new MgResourceIdentifier(L"Library://UnitTests/Layers/LinesCrossTick.LayerDefinition");
+ Ptr<MgByteSource> ldfsrc7 = new MgByteSource(L"../UnitTestFiles/UT_SymbologyLinesCrossTick.ldf", false);
+ Ptr<MgByteReader> ldfrdr7 = ldfsrc7->GetReader();
+ pService->SetResource(ldfres7, ldfrdr7, nullptr);
+
+ // line mdf
+ Ptr<MgResourceIdentifier> mapres4 = new MgResourceIdentifier(L"Library://UnitTests/Maps/Lines.MapDefinition");
+ Ptr<MgByteSource> mdfsrc4 = new MgByteSource(L"../UnitTestFiles/UT_SymbologyLines.mdf", false);
+ Ptr<MgByteReader> mdfrdr4 = mdfsrc4->GetReader();
+ pService->SetResource(mapres4, mdfrdr4, nullptr);
+
+ Ptr<MgResourceIdentifier> mapres5 = new MgResourceIdentifier(L"Library://UnitTests/Maps/LinesCrossTick.MapDefinition");
+ Ptr<MgByteSource> mdfsrc5 = new MgByteSource(L"../UnitTestFiles/UT_SymbologyLinesCrossTick.mdf", false);
+ Ptr<MgByteReader> mdfrdr5 = mdfsrc5->GetReader();
+ pService->SetResource(mapres5, mdfrdr5, nullptr);
+
+ // annotation ldf - this shares the point sdf
+ Ptr<MgResourceIdentifier> ldfres8 = new MgResourceIdentifier(L"Library://UnitTests/Layers/UT_Annotation1.LayerDefinition");
+ Ptr<MgByteSource> ldfsrc8 = new MgByteSource(L"../UnitTestFiles/UT_Annotation1.ldf", false);
+ Ptr<MgByteReader> ldfrdr8 = ldfsrc8->GetReader();
+ pService->SetResource(ldfres8, ldfrdr8, nullptr);
+
+ Ptr<MgResourceIdentifier> ldfres9 = new MgResourceIdentifier(L"Library://UnitTests/Layers/UT_Annotation2.LayerDefinition");
+ Ptr<MgByteSource> ldfsrc9 = new MgByteSource(L"../UnitTestFiles/UT_Annotation2.ldf", false);
+ Ptr<MgByteReader> ldfrdr9 = ldfsrc9->GetReader();
+ pService->SetResource(ldfres9, ldfrdr9, nullptr);
+
+ Ptr<MgResourceIdentifier> ldfres10 = new MgResourceIdentifier(L"Library://UnitTests/Layers/UT_Annotation3.LayerDefinition");
+ Ptr<MgByteSource> ldfsrc10 = new MgByteSource(L"../UnitTestFiles/UT_Annotation3.ldf", false);
+ Ptr<MgByteReader> ldfrdr10 = ldfsrc10->GetReader();
+ pService->SetResource(ldfres10, ldfrdr10, nullptr);
+
+ // annotation mdf
+ Ptr<MgResourceIdentifier> mapres8 = new MgResourceIdentifier(L"Library://UnitTests/Maps/UT_Annotation1.MapDefinition");
+ Ptr<MgByteSource> mdfsrc8 = new MgByteSource(L"../UnitTestFiles/UT_Annotation1.mdf", false);
+ Ptr<MgByteReader> mdfrdr8 = mdfsrc8->GetReader();
+ pService->SetResource(mapres8, mdfrdr8, nullptr);
+
+ Ptr<MgResourceIdentifier> mapres9 = new MgResourceIdentifier(L"Library://UnitTests/Maps/UT_Annotation2.MapDefinition");
+ Ptr<MgByteSource> mdfsrc9 = new MgByteSource(L"../UnitTestFiles/UT_Annotation2.mdf", false);
+ Ptr<MgByteReader> mdfrdr9 = mdfsrc9->GetReader();
+ pService->SetResource(mapres9, mdfrdr9, nullptr);
+
+ Ptr<MgResourceIdentifier> mapres10 = new MgResourceIdentifier(L"Library://UnitTests/Maps/UT_Annotation3.MapDefinition");
+ Ptr<MgByteSource> mdfsrc10 = new MgByteSource(L"../UnitTestFiles/UT_Annotation3.mdf", false);
+ Ptr<MgByteReader> mdfrdr10 = mdfsrc10->GetReader();
+ pService->SetResource(mapres10, mdfrdr10, nullptr);
+
+ //symbology - polygons
+ Ptr<MgResourceIdentifier> mapres11 = new MgResourceIdentifier(L"Library://UnitTests/Maps/UT_SymbologyPolygons.MapDefinition");
+ Ptr<MgByteSource> mdfsrc11 = new MgByteSource(L"../UnitTestFiles/UT_SymbologyPolygons.mdf", false);
+ Ptr<MgByteReader> mdfrdr11 = mdfsrc11->GetReader();
+ pService->SetResource(mapres11, mdfrdr11, nullptr);
+
+ Ptr<MgResourceIdentifier> ldfres11 = new MgResourceIdentifier(L"Library://UnitTests/Layers/SymbologyParcels.LayerDefinition");
+ Ptr<MgByteSource> ldfsrc11 = new MgByteSource(L"../UnitTestFiles/UT_SymbologyParcels.ldf", false);
+ Ptr<MgByteReader> ldfrdr11 = ldfsrc11->GetReader();
+ pService->SetResource(ldfres11, ldfrdr11, nullptr);
+
+ Ptr<MgResourceIdentifier> sdres5 = new MgResourceIdentifier(L"Library://UnitTests/Symbols/AreaSymbol.SymbolDefinition");
+ Ptr<MgByteSource> sdsrc5 = new MgByteSource(L"../UnitTestFiles/areasymbol.sd", false);
+ Ptr<MgByteReader> sdrdr5 = sdsrc5->GetReader();
+ pService->SetResource(sdres5, sdrdr5, nullptr);
+
+ // For watermark test
+ // publish the map definition
+ Ptr<MgResourceIdentifier> mapres12 = new MgResourceIdentifier(L"Library://UnitTests/Maps/SheboyganWithWatermark.MapDefinition");
+ Ptr<MgByteSource> mdfsrc12 = new MgByteSource(L"../UnitTestFiles/UT_SheboyganWithWatermark.mdf", false);
+ Ptr<MgByteReader> mdfrdr12 = mdfsrc12->GetReader();
+ pService->SetResource(mapres12, mdfrdr12, nullptr);
+
+ // publish the watermark definition
+ Ptr<MgResourceIdentifier> wdfres1 = new MgResourceIdentifier(L"Library://UnitTests/Watermarks/PoweredByMapGuide.WatermarkDefinition");
+ Ptr<MgByteSource> wdfsrc1 = new MgByteSource(L"../UnitTestFiles/UT_PoweredByMapGuide.wdf", false);
+ Ptr<MgByteReader> wdfrdr1 = wdfsrc1->GetReader();
+ pService->SetResource(wdfres1, wdfrdr1, nullptr);
+
+ // ------------------------------------------------------
+ // base map source data
+ // ------------------------------------------------------
+ // publish the map definition
+ Ptr<MgResourceIdentifier> mapres13 = new MgResourceIdentifier(L"Library://UnitTests/Maps/BaseMap.MapDefinition");
+ Ptr<MgByteSource> mdfsrc13 = new MgByteSource(L"../UnitTestFiles/UT_BaseMap.mdf", false);
+ Ptr<MgByteReader> mdfrdr13 = mdfsrc13->GetReader();
+ pService->SetResource(mapres13, mdfrdr13, nullptr);
+
+ // publish the layer definitions
+ Ptr<MgResourceIdentifier> ldfres12 = new MgResourceIdentifier(L"Library://UnitTests/Layers/RoadCenterLines.LayerDefinition");
+ Ptr<MgByteSource> ldfsrc12 = new MgByteSource(L"../UnitTestFiles/UT_RoadCenterLines.ldf", false);
+ Ptr<MgByteReader> ldfrdr12 = ldfsrc12->GetReader();
+ pService->SetResource(ldfres12, ldfrdr12, nullptr);
+
+ Ptr<MgResourceIdentifier> ldfres13 = new MgResourceIdentifier(L"Library://UnitTests/Layers/VotingDistricts.LayerDefinition");
+ Ptr<MgByteSource> ldfsrc13 = new MgByteSource(L"../UnitTestFiles/UT_VotingDistricts.ldf", false);
+ Ptr<MgByteReader> ldfrdr13 = ldfsrc13->GetReader();
+ pService->SetResource(ldfres13, ldfrdr13, nullptr);
+
+ // publish the feature sources
+ Ptr<MgResourceIdentifier> fsres6 = new MgResourceIdentifier(L"Library://UnitTests/Data/RoadCenterLines.FeatureSource");
+ Ptr<MgByteSource> fssrc6 = new MgByteSource(L"../UnitTestFiles/UT_RoadCenterLines.fs", false);
+ Ptr<MgByteReader> fsrdr6 = fssrc6->GetReader();
+ pService->SetResource(fsres6, fsrdr6, nullptr);
+
+ Ptr<MgResourceIdentifier> fsres7 = new MgResourceIdentifier(L"Library://UnitTests/Data/VotingDistricts.FeatureSource");
+ Ptr<MgByteSource> fssrc7 = new MgByteSource(L"../UnitTestFiles/UT_VotingDistricts.fs", false);
+ Ptr<MgByteReader> fsrdr7 = fssrc7->GetReader();
+ pService->SetResource(fsres7, fsrdr7, nullptr);
+
+ // publish the resource data
+ Ptr<MgByteSource> dataSource6 = new MgByteSource(L"../UnitTestFiles/UT_RoadCenterLines.sdf", false);
+ Ptr<MgByteReader> dataReader6 = dataSource6->GetReader();
+ pService->SetResourceData(fsres6, L"UT_RoadCenterLines.sdf", L"File", dataReader6);
+
+ Ptr<MgByteSource> dataSource7 = new MgByteSource(L"../UnitTestFiles/UT_VotingDistricts.sdf", false);
+ Ptr<MgByteReader> dataReader7 = dataSource7->GetReader();
+ pService->SetResourceData(fsres7, L"UT_VotingDistricts.sdf", L"File", dataReader7);
+
+ // ---------------------------------------------------------
+ // Data for exercising legend rendering
+ // ---------------------------------------------------------
+ Ptr<MgResourceIdentifier> ldfres14 = new MgResourceIdentifier(L"Library://UnitTests/Layers/MultiFTS.LayerDefinition");
+ Ptr<MgByteSource> ldfsrc14 = new MgByteSource(L"../UnitTestFiles/UT_MultiFTS.ldf", false);
+ Ptr<MgByteReader> ldfrdr14 = ldfsrc14->GetReader();
+ pService->SetResource(ldfres14, ldfrdr14, nullptr);
+
+ Ptr<MgResourceIdentifier> ldfres15 = new MgResourceIdentifier(L"Library://UnitTests/Layers/MultiCTS.LayerDefinition");
+ Ptr<MgByteSource> ldfsrc15 = new MgByteSource(L"../UnitTestFiles/UT_MultiCTS.ldf", false);
+ Ptr<MgByteReader> ldfrdr15 = ldfsrc15->GetReader();
+ pService->SetResource(ldfres15, ldfrdr15, nullptr);
+
+ Ptr<MgResourceIdentifier> ldfres16 = new MgResourceIdentifier(L"Library://UnitTests/Layers/MultiFTSWithTheme.LayerDefinition");
+ Ptr<MgByteSource> ldfsrc16 = new MgByteSource(L"../UnitTestFiles/UT_MultiFTSWithTheme.ldf", false);
+ Ptr<MgByteReader> ldfrdr16 = ldfsrc16->GetReader();
+ pService->SetResource(ldfres16, ldfrdr16, nullptr);
+
+ Ptr<MgResourceIdentifier> ldfres17 = new MgResourceIdentifier(L"Library://UnitTests/Layers/MultiCTSWithTheme.LayerDefinition");
+ Ptr<MgByteSource> ldfsrc17 = new MgByteSource(L"../UnitTestFiles/UT_MultiCTSWithTheme.ldf", false);
+ Ptr<MgByteReader> ldfrdr17 = ldfsrc17->GetReader();
+ pService->SetResource(ldfres17, ldfrdr17, nullptr);
+
+ Ptr<MgResourceIdentifier> ldfres18 = new MgResourceIdentifier(L"Library://UnitTests/Layers/MultiFTSSingleCTS.LayerDefinition");
+ Ptr<MgByteSource> ldfsrc18 = new MgByteSource(L"../UnitTestFiles/UT_MultiFTSSingleCTS.ldf", false);
+ Ptr<MgByteReader> ldfrdr18 = ldfsrc18->GetReader();
+ pService->SetResource(ldfres18, ldfrdr18, nullptr);
+
+ Ptr<MgResourceIdentifier> ldfres19 = new MgResourceIdentifier(L"Library://UnitTests/Layers/SingleFTSMultiCTS.LayerDefinition");
+ Ptr<MgByteSource> ldfsrc19 = new MgByteSource(L"../UnitTestFiles/UT_SingleFTSMultiCTS.ldf", false);
+ Ptr<MgByteReader> ldfrdr19 = ldfsrc19->GetReader();
+ pService->SetResource(ldfres19, ldfrdr19, nullptr);
+
+ // Data related to stylization function tests
+ Ptr<MgResourceIdentifier> ldfres20 = new MgResourceIdentifier(L"Library://UnitTests/Layers/StylizationFuncs.LayerDefinition");
+ Ptr<MgByteSource> ldfsrc20 = new MgByteSource(L"../UnitTestFiles/UT_VotingDistrictsFunctions.ldf", false);
+ Ptr<MgByteReader> ldfrdr20 = ldfsrc20->GetReader();
+ pService->SetResource(ldfres20, ldfrdr20, nullptr);
+
+ Ptr<MgResourceIdentifier> mapres15 = new MgResourceIdentifier(L"Library://UnitTests/Maps/StylizationFuncs.MapDefinition");
+ Ptr<MgByteSource> mdfsrc15 = new MgByteSource(L"../UnitTestFiles/UT_StylizationFuncs.mdf", false);
+ Ptr<MgByteReader> mdfrdr15 = mdfsrc15->GetReader();
+ pService->SetResource(mapres15, mdfrdr15, nullptr);
+
+ // For layer watermark test
+ Ptr<MgResourceIdentifier> wdfres2 = new MgResourceIdentifier(L"Library://UnitTests/Watermarks/Rail.WatermarkDefinition");
+ Ptr<MgByteSource> wdfsrc2 = new MgByteSource(L"../UnitTestFiles/UT_Rail.wdf", false);
+ Ptr<MgByteReader> wdfrdr2 = wdfsrc2->GetReader();
+ pService->SetResource(wdfres2, wdfrdr2, nullptr);
+
+ Ptr<MgResourceIdentifier> ldfres21 = new MgResourceIdentifier(L"Library://UnitTests/Layers/RailWatermark.LayerDefinition");
+ Ptr<MgByteSource> ldfsrc21 = new MgByteSource(L"../UnitTestFiles/UT_Rail_Watermark.ldf", false);
+ Ptr<MgByteReader> ldfrdr21 = ldfsrc21->GetReader();
+ pService->SetResource(ldfres21, ldfrdr21, nullptr);
+ }
+ catch (MgException* e)
+ {
+ STRING message = e->GetDetails(TestServiceFactory::TEST_LOCALE);
+ SAFE_RELEASE(e);
+ FAIL(MG_WCHAR_TO_CHAR(message.c_str()));
+ }
+ catch (...)
+ {
+ throw;
+ }
+ }
+
+ // TestTileService setup
+ if (TestServiceFactory::IsRunningSuite("[TileService]"))
+ {
+ printf("Setting up data for suite: TileService\n");
+ try
+ {
+ // ------------------------------------------------------
+ // base map source data
+ // ------------------------------------------------------
+
+ // publish the map definition
+ Ptr<MgResourceIdentifier> mapres1 = new MgResourceIdentifier(L"Library://UnitTests/Maps/BaseMap.MapDefinition");
+ Ptr<MgByteSource> mdfsrc1 = new MgByteSource(L"../UnitTestFiles/UT_BaseMap.mdf", false);
+ Ptr<MgByteReader> mdfrdr1 = mdfsrc1->GetReader();
+ pService->SetResource(mapres1, mdfrdr1, nullptr);
+
+ // publish the layer definitions
+ Ptr<MgResourceIdentifier> ldfres1 = new MgResourceIdentifier(L"Library://UnitTests/Layers/RoadCenterLines.LayerDefinition");
+ Ptr<MgByteSource> ldfsrc1 = new MgByteSource(L"../UnitTestFiles/UT_RoadCenterLines.ldf", false);
+ Ptr<MgByteReader> ldfrdr1 = ldfsrc1->GetReader();
+ pService->SetResource(ldfres1, ldfrdr1, nullptr);
+
+ Ptr<MgResourceIdentifier> ldfres2 = new MgResourceIdentifier(L"Library://UnitTests/Layers/Parcels.LayerDefinition");
+ Ptr<MgByteSource> ldfsrc2 = new MgByteSource(L"../UnitTestFiles/UT_Parcels.ldf", false);
+ Ptr<MgByteReader> ldfrdr2 = ldfsrc2->GetReader();
+ pService->SetResource(ldfres2, ldfrdr2, nullptr);
+
+ Ptr<MgResourceIdentifier> ldfres3 = new MgResourceIdentifier(L"Library://UnitTests/Layers/VotingDistricts.LayerDefinition");
+ Ptr<MgByteSource> ldfsrc3 = new MgByteSource(L"../UnitTestFiles/UT_VotingDistricts.ldf", false);
+ Ptr<MgByteReader> ldfrdr3 = ldfsrc3->GetReader();
+ pService->SetResource(ldfres3, ldfrdr3, nullptr);
+
+ // publish the feature sources
+ Ptr<MgResourceIdentifier> fsres1 = new MgResourceIdentifier(L"Library://UnitTests/Data/RoadCenterLines.FeatureSource");
+ Ptr<MgByteSource> fssrc1 = new MgByteSource(L"../UnitTestFiles/UT_RoadCenterLines.fs", false);
+ Ptr<MgByteReader> fsrdr1 = fssrc1->GetReader();
+ pService->SetResource(fsres1, fsrdr1, nullptr);
+
+ Ptr<MgResourceIdentifier> fsres2 = new MgResourceIdentifier(L"Library://UnitTests/Data/Parcels.FeatureSource");
+ Ptr<MgByteSource> fssrc2 = new MgByteSource(L"../UnitTestFiles/UT_Parcels.fs", false);
+ Ptr<MgByteReader> fsrdr2 = fssrc2->GetReader();
+ pService->SetResource(fsres2, fsrdr2, nullptr);
+
+ Ptr<MgResourceIdentifier> fsres3 = new MgResourceIdentifier(L"Library://UnitTests/Data/VotingDistricts.FeatureSource");
+ Ptr<MgByteSource> fssrc3 = new MgByteSource(L"../UnitTestFiles/UT_VotingDistricts.fs", false);
+ Ptr<MgByteReader> fsrdr3 = fssrc3->GetReader();
+ pService->SetResource(fsres3, fsrdr3, nullptr);
+
+ // publish the resource data
+ Ptr<MgByteSource> dataSource1 = new MgByteSource(L"../UnitTestFiles/UT_RoadCenterLines.sdf", false);
+ Ptr<MgByteReader> dataReader1 = dataSource1->GetReader();
+ pService->SetResourceData(fsres1, L"UT_RoadCenterLines.sdf", L"File", dataReader1);
+
+ Ptr<MgByteSource> dataSource2 = new MgByteSource(L"../UnitTestFiles/UT_Parcels.sdf", false);
+ Ptr<MgByteReader> dataReader2 = dataSource2->GetReader();
+ pService->SetResourceData(fsres2, L"UT_Parcels.sdf", L"File", dataReader2);
+
+ Ptr<MgByteSource> dataSource3 = new MgByteSource(L"../UnitTestFiles/UT_VotingDistricts.sdf", false);
+ Ptr<MgByteReader> dataReader3 = dataSource3->GetReader();
+ pService->SetResourceData(fsres3, L"UT_VotingDistricts.sdf", L"File", dataReader3);
+
+ // set up temporary directory for tile images
+ MgFileUtil::CreateDirectory(L"./temp_tiles", false);
+ }
+ catch (MgException* e)
+ {
+ STRING message = e->GetDetails(TestServiceFactory::TEST_LOCALE);
+ SAFE_RELEASE(e);
+ FAIL(MG_WCHAR_TO_CHAR(message.c_str()));
+ }
+ catch (...)
+ {
+ throw;
+ }
+ }
+
+ // TestResourceService setup
+ if (TestServiceFactory::IsRunningSuite("[ResourceService]"))
+ {
+ Ptr<MgResourceIdentifier> fs1 = new MgResourceIdentifier(L"Library://UnitTests/Data/acea.FeatureSource");
+ Ptr<MgByteSource> fs1Source = new MgByteSource(L"../UnitTestFiles/acea.fs", false);
+ Ptr<MgByteReader> fs1Reader = fs1Source->GetReader();
+ pService->SetResource(fs1, fs1Reader, nullptr);
+
+ Ptr<MgByteSource> confSource = new MgByteSource(L"../UnitTestFiles/config.xml", false);
+ Ptr<MgByteReader> confReader = confSource->GetReader();
+ pService->SetResourceData(fs1, L"config.xml", MgResourceDataType::File, confReader);
+ }
+
+ // TestProfilingService setup
+ if (TestServiceFactory::IsRunningSuite("[ProfilingService]"))
+ {
+ printf("Setting up data for suite: ProfilingService\n");
+ try
+ {
+ // publish the map definition
+ Ptr<MgResourceIdentifier> mapres1 = new MgResourceIdentifier(L"Library://UnitTests/Maps/Sheboygan.MapDefinition");
+ Ptr<MgByteSource> mdfsrc1 = new MgByteSource(L"../UnitTestFiles/UT_Sheboygan.mdf", false);
+ Ptr<MgByteReader> mdfrdr1 = mdfsrc1->GetReader();
+ pService->SetResource(mapres1, mdfrdr1, nullptr);
+
+ // publish the layer definitions
+ Ptr<MgResourceIdentifier> ldfres1 = new MgResourceIdentifier(L"Library://UnitTests/Layers/HydrographicPolygons.LayerDefinition");
+ Ptr<MgByteSource> ldfsrc1 = new MgByteSource(L"../UnitTestFiles/UT_HydrographicPolygons.ldf", false);
+ Ptr<MgByteReader> ldfrdr1 = ldfsrc1->GetReader();
+ pService->SetResource(ldfres1, ldfrdr1, nullptr);
+
+ Ptr<MgResourceIdentifier> ldfres2 = new MgResourceIdentifier(L"Library://UnitTests/Layers/Rail.LayerDefinition");
+ Ptr<MgByteSource> ldfsrc2 = new MgByteSource(L"../UnitTestFiles/UT_Rail.ldf", false);
+ Ptr<MgByteReader> ldfrdr2 = ldfsrc2->GetReader();
+ pService->SetResource(ldfres2, ldfrdr2, nullptr);
+
+ Ptr<MgResourceIdentifier> ldfres3 = new MgResourceIdentifier(L"Library://UnitTests/Layers/Parcels.LayerDefinition");
+ Ptr<MgByteSource> ldfsrc3 = new MgByteSource(L"../UnitTestFiles/UT_Parcels.ldf", false);
+ Ptr<MgByteReader> ldfrdr3 = ldfsrc3->GetReader();
+ pService->SetResource(ldfres3, ldfrdr3, nullptr);
+
+ // publish the feature sources
+ Ptr<MgResourceIdentifier> fsres1 = new MgResourceIdentifier(L"Library://UnitTests/Data/HydrographicPolygons.FeatureSource");
+ Ptr<MgByteSource> fssrc1 = new MgByteSource(L"../UnitTestFiles/UT_HydrographicPolygons.fs", false);
+ Ptr<MgByteReader> fsrdr1 = fssrc1->GetReader();
+ pService->SetResource(fsres1, fsrdr1, nullptr);
+
+ Ptr<MgResourceIdentifier> fsres2 = new MgResourceIdentifier(L"Library://UnitTests/Data/Rail.FeatureSource");
+ Ptr<MgByteSource> fssrc2 = new MgByteSource(L"../UnitTestFiles/UT_Rail.fs", false);
+ Ptr<MgByteReader> fsrdr2 = fssrc2->GetReader();
+ pService->SetResource(fsres2, fsrdr2, nullptr);
+
+ Ptr<MgResourceIdentifier> fsres3 = new MgResourceIdentifier(L"Library://UnitTests/Data/Parcels.FeatureSource");
+ Ptr<MgByteSource> fssrc3 = new MgByteSource(L"../UnitTestFiles/UT_Parcels.fs", false);
+ Ptr<MgByteReader> fsrdr3 = fssrc3->GetReader();
+ pService->SetResource(fsres3, fsrdr3, nullptr);
+
+ // publish the resource data
+ Ptr<MgByteSource> dataSource1 = new MgByteSource(L"../UnitTestFiles/UT_HydrographicPolygons.sdf", false);
+ Ptr<MgByteReader> dataReader1 = dataSource1->GetReader();
+ pService->SetResourceData(fsres1, L"UT_HydrographicPolygons.sdf", L"File", dataReader1);
+
+ Ptr<MgByteSource> dataSource2 = new MgByteSource(L"../UnitTestFiles/UT_Rail.sdf", false);
+ Ptr<MgByteReader> dataReader2 = dataSource2->GetReader();
+ pService->SetResourceData(fsres2, L"UT_Rail.sdf", L"File", dataReader2);
+
+ Ptr<MgByteSource> dataSource3 = new MgByteSource(L"../UnitTestFiles/UT_Parcels.sdf", false);
+ Ptr<MgByteReader> dataReader3 = dataSource3->GetReader();
+ pService->SetResourceData(fsres3, L"UT_Parcels.sdf", L"File", dataReader3);
+
+ // publish the print layouts
+ Ptr<MgResourceIdentifier> plres1 = new MgResourceIdentifier(L"Library://UnitTests/PrintLayouts/AllElements.PrintLayout");
+ Ptr<MgByteSource> plsrc1 = new MgByteSource(L"../UnitTestFiles/UT_AllElements.pl", false);
+ Ptr<MgByteReader> plrdr1 = plsrc1->GetReader();
+ pService->SetResource(plres1, plrdr1, nullptr);
+
+ Ptr<MgResourceIdentifier> plres2 = new MgResourceIdentifier(L"Library://UnitTests/PrintLayouts/NoLegend.PrintLayout");
+ Ptr<MgByteSource> plsrc2 = new MgByteSource(L"../UnitTestFiles/UT_NoLegend.pl", false);
+ Ptr<MgByteReader> plrdr2 = plsrc2->GetReader();
+ pService->SetResource(plres2, plrdr2, nullptr);
+
+ // publish the symbol library
+ Ptr<MgResourceIdentifier> slres1 = new MgResourceIdentifier(L"Library://UnitTests/Symbols/SymbolMart.SymbolLibrary");
+ Ptr<MgByteSource> slsrc1 = new MgByteSource(L"../UnitTestFiles/UT_SymbolMart.sl", false);
+ Ptr<MgByteReader> slrdr1 = slsrc1->GetReader();
+ pService->SetResource(slres1, slrdr1, nullptr);
+ Ptr<MgByteSource> datasrc = new MgByteSource(L"../UnitTestFiles/UT_Symbols.dwf", false);
+ Ptr<MgByteReader> datardr = datasrc->GetReader();
+ pService->SetResourceData(slres1, L"symbols.dwf", L"File", datardr);
+
+ //
+ // publish symbology stuff
+ //
+
+ // the point feature source
+ Ptr<MgResourceIdentifier> fsres4 = new MgResourceIdentifier(L"Library://UnitTests/Data/Capitals.FeatureSource");
+ Ptr<MgByteSource> fssrc4 = new MgByteSource(L"../UnitTestFiles/UT_SymbologyPoints.fs", false);
+ Ptr<MgByteReader> fsrdr4 = fssrc4->GetReader();
+ pService->SetResource(fsres4, fsrdr4, nullptr);
+
+ // point sdf file
+ Ptr<MgByteSource> dataSource4 = new MgByteSource(L"../UnitTestFiles/UT_SymbologyPoints.sdf", false);
+ Ptr<MgByteReader> dataReader4 = dataSource4->GetReader();
+ pService->SetResourceData(fsres4, L"UT_SymbologyPoints.sdf", L"File", dataReader4);
+
+ // point symbols
+ Ptr<MgResourceIdentifier> sdres1 = new MgResourceIdentifier(L"Library://UnitTests/Symbols/PointSymbol.SymbolDefinition");
+ Ptr<MgByteSource> sdsrc1 = new MgByteSource(L"../UnitTestFiles/symbol.sd", false);
+ Ptr<MgByteReader> sdrdr1 = sdsrc1->GetReader();
+ pService->SetResource(sdres1, sdrdr1, nullptr);
+
+ Ptr<MgResourceIdentifier> sdres2 = new MgResourceIdentifier(L"Library://UnitTests/Symbols/PointSymbolParam.SymbolDefinition");
+ Ptr<MgByteSource> sdsrc2 = new MgByteSource(L"../UnitTestFiles/symbolp.sd", false);
+ Ptr<MgByteReader> sdrdr2 = sdsrc2->GetReader();
+ pService->SetResource(sdres2, sdrdr2, nullptr);
+
+ // point ldf
+ Ptr<MgResourceIdentifier> ldfres4 = new MgResourceIdentifier(L"Library://UnitTests/Layers/Capitals.LayerDefinition");
+ Ptr<MgByteSource> ldfsrc4 = new MgByteSource(L"../UnitTestFiles/UT_SymbologyPoints.ldf", false);
+ Ptr<MgByteReader> ldfrdr4 = ldfsrc4->GetReader();
+ pService->SetResource(ldfres4, ldfrdr4, nullptr);
+
+ Ptr<MgResourceIdentifier> ldfres5 = new MgResourceIdentifier(L"Library://UnitTests/Layers/CapitalsParam.LayerDefinition");
+ Ptr<MgByteSource> ldfsrc5 = new MgByteSource(L"../UnitTestFiles/UT_SymbologyPointsParam.ldf", false);
+ Ptr<MgByteReader> ldfrdr5 = ldfsrc5->GetReader();
+ pService->SetResource(ldfres5, ldfrdr5, nullptr);
+
+ // point mdf
+ Ptr<MgResourceIdentifier> mapres2 = new MgResourceIdentifier(L"Library://UnitTests/Maps/Capitals.MapDefinition");
+ Ptr<MgByteSource> mdfsrc2 = new MgByteSource(L"../UnitTestFiles/UT_SymbologyPoints.mdf", false);
+ Ptr<MgByteReader> mdfrdr2 = mdfsrc2->GetReader();
+ pService->SetResource(mapres2, mdfrdr2, nullptr);
+
+ Ptr<MgResourceIdentifier> mapres3 = new MgResourceIdentifier(L"Library://UnitTests/Maps/CapitalsParam.MapDefinition");
+ Ptr<MgByteSource> mdfsrc3 = new MgByteSource(L"../UnitTestFiles/UT_SymbologyPointsParam.mdf", false);
+ Ptr<MgByteReader> mdfrdr3 = mdfsrc3->GetReader();
+ pService->SetResource(mapres3, mdfrdr3, nullptr);
+
+ // the line feature source
+ Ptr<MgResourceIdentifier> fsres5 = new MgResourceIdentifier(L"Library://UnitTests/Data/Lines.FeatureSource");
+ Ptr<MgByteSource> fssrc5 = new MgByteSource(L"../UnitTestFiles/UT_SymbologyLines.fs", false);
+ Ptr<MgByteReader> fsrdr5 = fssrc5->GetReader();
+ pService->SetResource(fsres5, fsrdr5, nullptr);
+
+ // line sdf file
+ Ptr<MgByteSource> dataSource5 = new MgByteSource(L"../UnitTestFiles/UT_SymbologyLines.sdf", false);
+ Ptr<MgByteReader> dataReader5 = dataSource5->GetReader();
+ pService->SetResourceData(fsres5, L"UT_SymbologyLines.sdf", L"File", dataReader5);
+
+ // line symbols
+ Ptr<MgResourceIdentifier> sdres3 = new MgResourceIdentifier(L"Library://UnitTests/Symbols/LineSymbol.SymbolDefinition");
+ Ptr<MgByteSource> sdsrc3 = new MgByteSource(L"../UnitTestFiles/linesymbol.sd", false);
+ Ptr<MgByteReader> sdrdr3 = sdsrc3->GetReader();
+ pService->SetResource(sdres3, sdrdr3, nullptr);
+
+ Ptr<MgResourceIdentifier> sdres4 = new MgResourceIdentifier(L"Library://UnitTests/Symbols/MTYP1500a.SymbolDefinition");
+ Ptr<MgByteSource> sdsrc4 = new MgByteSource(L"../UnitTestFiles/MTYP1500a.sd", false);
+ Ptr<MgByteReader> sdrdr4 = sdsrc4->GetReader();
+ pService->SetResource(sdres4, sdrdr4, nullptr);
+
+ // line ldf
+ Ptr<MgResourceIdentifier> ldfres6 = new MgResourceIdentifier(L"Library://UnitTests/Layers/Lines.LayerDefinition");
+ Ptr<MgByteSource> ldfsrc6 = new MgByteSource(L"../UnitTestFiles/UT_SymbologyLines.ldf", false);
+ Ptr<MgByteReader> ldfrdr6 = ldfsrc6->GetReader();
+ pService->SetResource(ldfres6, ldfrdr6, nullptr);
+
+ Ptr<MgResourceIdentifier> ldfres7 = new MgResourceIdentifier(L"Library://UnitTests/Layers/LinesCrossTick.LayerDefinition");
+ Ptr<MgByteSource> ldfsrc7 = new MgByteSource(L"../UnitTestFiles/UT_SymbologyLinesCrossTick.ldf", false);
+ Ptr<MgByteReader> ldfrdr7 = ldfsrc7->GetReader();
+ pService->SetResource(ldfres7, ldfrdr7, nullptr);
+
+ // line mdf
+ Ptr<MgResourceIdentifier> mapres4 = new MgResourceIdentifier(L"Library://UnitTests/Maps/Lines.MapDefinition");
+ Ptr<MgByteSource> mdfsrc4 = new MgByteSource(L"../UnitTestFiles/UT_SymbologyLines.mdf", false);
+ Ptr<MgByteReader> mdfrdr4 = mdfsrc4->GetReader();
+ pService->SetResource(mapres4, mdfrdr4, nullptr);
+
+ Ptr<MgResourceIdentifier> mapres5 = new MgResourceIdentifier(L"Library://UnitTests/Maps/LinesCrossTick.MapDefinition");
+ Ptr<MgByteSource> mdfsrc5 = new MgByteSource(L"../UnitTestFiles/UT_SymbologyLinesCrossTick.mdf", false);
+ Ptr<MgByteReader> mdfrdr5 = mdfsrc5->GetReader();
+ pService->SetResource(mapres5, mdfrdr5, nullptr);
+
+ // annotation ldf - this shares the point sdf
+ Ptr<MgResourceIdentifier> ldfres8 = new MgResourceIdentifier(L"Library://UnitTests/Layers/UT_Annotation1.LayerDefinition");
+ Ptr<MgByteSource> ldfsrc8 = new MgByteSource(L"../UnitTestFiles/UT_Annotation1.ldf", false);
+ Ptr<MgByteReader> ldfrdr8 = ldfsrc8->GetReader();
+ pService->SetResource(ldfres8, ldfrdr8, nullptr);
+
+ Ptr<MgResourceIdentifier> ldfres9 = new MgResourceIdentifier(L"Library://UnitTests/Layers/UT_Annotation2.LayerDefinition");
+ Ptr<MgByteSource> ldfsrc9 = new MgByteSource(L"../UnitTestFiles/UT_Annotation2.ldf", false);
+ Ptr<MgByteReader> ldfrdr9 = ldfsrc9->GetReader();
+ pService->SetResource(ldfres9, ldfrdr9, nullptr);
+
+ Ptr<MgResourceIdentifier> ldfres10 = new MgResourceIdentifier(L"Library://UnitTests/Layers/UT_Annotation3.LayerDefinition");
+ Ptr<MgByteSource> ldfsrc10 = new MgByteSource(L"../UnitTestFiles/UT_Annotation3.ldf", false);
+ Ptr<MgByteReader> ldfrdr10 = ldfsrc10->GetReader();
+ pService->SetResource(ldfres10, ldfrdr10, nullptr);
+
+ // annotation mdf
+ Ptr<MgResourceIdentifier> mapres8 = new MgResourceIdentifier(L"Library://UnitTests/Maps/UT_Annotation1.MapDefinition");
+ Ptr<MgByteSource> mdfsrc8 = new MgByteSource(L"../UnitTestFiles/UT_Annotation1.mdf", false);
+ Ptr<MgByteReader> mdfrdr8 = mdfsrc8->GetReader();
+ pService->SetResource(mapres8, mdfrdr8, nullptr);
+
+ Ptr<MgResourceIdentifier> mapres9 = new MgResourceIdentifier(L"Library://UnitTests/Maps/UT_Annotation2.MapDefinition");
+ Ptr<MgByteSource> mdfsrc9 = new MgByteSource(L"../UnitTestFiles/UT_Annotation2.mdf", false);
+ Ptr<MgByteReader> mdfrdr9 = mdfsrc9->GetReader();
+ pService->SetResource(mapres9, mdfrdr9, nullptr);
+
+ Ptr<MgResourceIdentifier> mapres10 = new MgResourceIdentifier(L"Library://UnitTests/Maps/UT_Annotation3.MapDefinition");
+ Ptr<MgByteSource> mdfsrc10 = new MgByteSource(L"../UnitTestFiles/UT_Annotation3.mdf", false);
+ Ptr<MgByteReader> mdfrdr10 = mdfsrc10->GetReader();
+ pService->SetResource(mapres10, mdfrdr10, nullptr);
+
+ //symbology - polygons
+ Ptr<MgResourceIdentifier> mapres11 = new MgResourceIdentifier(L"Library://UnitTests/Maps/UT_SymbologyPolygons.MapDefinition");
+ Ptr<MgByteSource> mdfsrc11 = new MgByteSource(L"../UnitTestFiles/UT_SymbologyPolygons.mdf", false);
+ Ptr<MgByteReader> mdfrdr11 = mdfsrc11->GetReader();
+ pService->SetResource(mapres11, mdfrdr11, nullptr);
+
+ Ptr<MgResourceIdentifier> ldfres11 = new MgResourceIdentifier(L"Library://UnitTests/Layers/SymbologyParcels.LayerDefinition");
+ Ptr<MgByteSource> ldfsrc11 = new MgByteSource(L"../UnitTestFiles/UT_SymbologyParcels.ldf", false);
+ Ptr<MgByteReader> ldfrdr11 = ldfsrc11->GetReader();
+ pService->SetResource(ldfres11, ldfrdr11, nullptr);
+
+ Ptr<MgResourceIdentifier> sdres5 = new MgResourceIdentifier(L"Library://UnitTests/Symbols/AreaSymbol.SymbolDefinition");
+ Ptr<MgByteSource> sdsrc5 = new MgByteSource(L"../UnitTestFiles/areasymbol.sd", false);
+ Ptr<MgByteReader> sdrdr5 = sdsrc5->GetReader();
+ pService->SetResource(sdres5, sdrdr5, nullptr);
+
+ // For watermark test
+ // publish the map definition
+ Ptr<MgResourceIdentifier> mapres12 = new MgResourceIdentifier(L"Library://UnitTests/Maps/SheboyganWithWatermark.MapDefinition");
+ Ptr<MgByteSource> mdfsrc12 = new MgByteSource(L"../UnitTestFiles/UT_SheboyganWithWatermark.mdf", false);
+ Ptr<MgByteReader> mdfrdr12 = mdfsrc12->GetReader();
+ pService->SetResource(mapres12, mdfrdr12, nullptr);
+
+ // publish the watermark definition
+ Ptr<MgResourceIdentifier> wdfres1 = new MgResourceIdentifier(L"Library://UnitTests/Watermarks/PoweredByMapGuide.WatermarkDefinition");
+ Ptr<MgByteSource> wdfsrc1 = new MgByteSource(L"../UnitTestFiles/UT_PoweredByMapGuide.wdf", false);
+ Ptr<MgByteReader> wdfrdr1 = wdfsrc1->GetReader();
+ pService->SetResource(wdfres1, wdfrdr1, nullptr);
+ }
+ catch (MgException* e)
+ {
+ STRING message = e->GetDetails(TestServiceFactory::TEST_LOCALE);
+ SAFE_RELEASE(e);
+ FAIL(MG_WCHAR_TO_CHAR(message.c_str()));
+ }
+ catch (...)
+ {
+ throw;
+ }
+ }
+
+ // TestFeatureService setup
+ if (TestServiceFactory::IsRunningSuite("[FeatureService]"))
+ {
+ printf("Setting up data for suite: FeatureService\n");
+ try
+ {
+ // publish the map definition
+ Ptr<MgResourceIdentifier> mapres1 = new MgResourceIdentifier(L"Library://UnitTests/Maps/SheboyganWriteable.MapDefinition");
+ Ptr<MgByteSource> mdfsrc1 = new MgByteSource(L"../UnitTestFiles/UT_Sheboygan_Writeable.mdf", false);
+ Ptr<MgByteReader> mdfrdr1 = mdfsrc1->GetReader();
+ pService->SetResource(mapres1, mdfrdr1, nullptr);
+
+ Ptr<MgResourceIdentifier> ldfres3 = new MgResourceIdentifier(L"Library://UnitTests/Layers/ParcelsWriteable.LayerDefinition");
+ Ptr<MgByteSource> ldfsrc3 = new MgByteSource(L"../UnitTestFiles/UT_Parcels_Writeable.ldf", false);
+ Ptr<MgByteReader> ldfrdr3 = ldfsrc3->GetReader();
+ pService->SetResource(ldfres3, ldfrdr3, nullptr);
+
+ Ptr<MgResourceIdentifier> fsres3 = new MgResourceIdentifier(L"Library://UnitTests/Data/ParcelsWriteable.FeatureSource");
+ Ptr<MgByteSource> fssrc3 = new MgByteSource(L"../UnitTestFiles/UT_Parcels_writeable.fs", false);
+ Ptr<MgByteReader> fsrdr3 = fssrc3->GetReader();
+ pService->SetResource(fsres3, fsrdr3, nullptr);
+
+ Ptr<MgByteSource> fsSource3 = new MgByteSource(L"../UnitTestFiles/UT_Parcels.sdf", false);
+ Ptr<MgByteReader> fsReader3 = fsSource3->GetReader();
+ pService->SetResourceData(fsres3, L"UT_Parcels.sdf", L"File", fsReader3);
+
+ MgResourceIdentifier resourceIdentifier1(L"Library://UnitTests/Data/Sheboygan_Parcels.FeatureSource");
+ MgResourceIdentifier resourceIdentifier2(L"Library://UnitTests/Data/Redding_Parcels.FeatureSource");
+ MgResourceIdentifier resourceIdentifier3(L"Library://UnitTests/Data/Sheboygan_BuildingOutlines.FeatureSource");
+ MgResourceIdentifier resourceIdentifier4(L"Library://UnitTests/Data/Sheboygan_VotingDistricts.FeatureSource");
+ MgResourceIdentifier resourceIdentifier5(L"Library://UnitTests/Data/TestChainedInner1ToManyJoin.FeatureSource");
+ MgResourceIdentifier resourceIdentifier6(L"Library://UnitTests/Data/Empty.FeatureSource");
+ MgResourceIdentifier resourceIdentifier7(L"Library://UnitTests/Data/Sheboygan_Parcels_Writable.FeatureSource");
+ MgResourceIdentifier resourceIdentifier8(L"Library://UnitTests/Data/FdoJoin.FeatureSource");
+ MgResourceIdentifier resourceIdentifier9(L"Library://UnitTests/Data/SecuredCredentials.FeatureSource");
+#ifdef _WIN32
+ STRING resourceContentFileName1 = L"..\\UnitTestFiles\\Sheboygan_Parcels.FeatureSource";
+ STRING resourceContentFileName2 = L"..\\UnitTestFiles\\Redding_Parcels.FeatureSource";
+ STRING resourceContentFileName3 = L"..\\UnitTestFiles\\Sheboygan_BuildingOutlines.FeatureSource";
+ STRING resourceContentFileName4 = L"..\\UnitTestFiles\\Sheboygan_VotingDistricts.FeatureSource";
+ STRING resourceContentFileName5 = L"..\\UnitTestFiles\\TESTChainedInner1ToManyJoin.FeatureSource";
+ STRING resourceContentFileName6 = L"..\\UnitTestFiles\\Empty.FeatureSource";
+ STRING resourceContentFileName7 = L"..\\UnitTestFiles\\Sheboygan_Parcels_Writable.FeatureSource";
+ STRING resourceContentFileName8 = L"..\\UnitTestFiles\\UT_FdoJoin.FeatureSource";
+ STRING resourceContentFileName9 = L"..\\UnitTestFiles\\SecuredCredentials.fs";
+ STRING dataFileName1 = L"..\\UnitTestFiles\\Sheboygan_Parcels.sdf";
+ STRING dataFileName2 = L"..\\UnitTestFiles\\Redding_Parcels.shp";
+ STRING dataFileName3 = L"..\\UnitTestFiles\\Redding_Parcels.dbf";
+ STRING dataFileName4 = L"..\\UnitTestFiles\\Redding_Parcels.shx";
+ STRING dataFileName5 = L"..\\UnitTestFiles\\Sheboygan_BuildingOutlines.sdf";
+ STRING dataFileName6 = L"..\\UnitTestFiles\\Sheboygan_VotingDistricts.sdf";
+ STRING dataFileName7 = L"..\\UnitTestFiles\\Empty.sdf";
+ STRING dataFileName8 = L"..\\UnitTestFiles\\JoinTest.sqlite";
+#else
+ STRING resourceContentFileName1 = L"../UnitTestFiles/Sheboygan_Parcels.FeatureSource";
+ STRING resourceContentFileName2 = L"../UnitTestFiles/Redding_Parcels.FeatureSource";
+ STRING resourceContentFileName3 = L"../UnitTestFiles/Sheboygan_BuildingOutlines.FeatureSource";
+ STRING resourceContentFileName4 = L"../UnitTestFiles/Sheboygan_VotingDistricts.FeatureSource";
+ STRING resourceContentFileName5 = L"../UnitTestFiles/TESTChainedInner1ToManyJoin.FeatureSource";
+ STRING resourceContentFileName6 = L"../UnitTestFiles/Empty.FeatureSource";
+ STRING resourceContentFileName7 = L"../UnitTestFiles/Sheboygan_Parcels_Writable.FeatureSource";
+ STRING resourceContentFileName8 = L"../UnitTestFiles/UT_FdoJoin.FeatureSource";
+ STRING resourceContentFileName9 = L"../UnitTestFiles/SecuredCredentials.fs";
+ STRING dataFileName1 = L"../UnitTestFiles/Sheboygan_Parcels.sdf";
+ STRING dataFileName2 = L"../UnitTestFiles/Redding_Parcels.shp";
+ STRING dataFileName3 = L"../UnitTestFiles/Redding_Parcels.dbf";
+ STRING dataFileName4 = L"../UnitTestFiles/Redding_Parcels.shx";
+ STRING dataFileName5 = L"../UnitTestFiles/Sheboygan_BuildingOutlines.sdf";
+ STRING dataFileName6 = L"../UnitTestFiles/Sheboygan_VotingDistricts.sdf";
+ STRING dataFileName7 = L"../UnitTestFiles/Empty.sdf";
+ STRING dataFileName8 = L"../UnitTestFiles/JoinTest.sqlite";
+#endif
+
+ //Add a new resource
+ Ptr<MgByteSource> contentSource1 = new MgByteSource(resourceContentFileName1);
+ Ptr<MgByteReader> contentReader1 = contentSource1->GetReader();
+ pService->SetResource(&resourceIdentifier1, contentReader1, nullptr);
+
+ Ptr<MgByteSource> contentSource2 = new MgByteSource(resourceContentFileName2);
+ Ptr<MgByteReader> contentReader2 = contentSource2->GetReader();
+ pService->SetResource(&resourceIdentifier2, contentReader2, nullptr);
+
+ Ptr<MgByteSource> contentSource3 = new MgByteSource(resourceContentFileName3);
+ Ptr<MgByteReader> contentReader3 = contentSource3->GetReader();
+ pService->SetResource(&resourceIdentifier3, contentReader3, nullptr);
+
+ Ptr<MgByteSource> contentSource4 = new MgByteSource(resourceContentFileName4);
+ Ptr<MgByteReader> contentReader4 = contentSource4->GetReader();
+ pService->SetResource(&resourceIdentifier4, contentReader4, nullptr);
+
+ Ptr<MgByteSource> contentSource5 = new MgByteSource(resourceContentFileName5);
+ Ptr<MgByteReader> contentReader5 = contentSource5->GetReader();
+ pService->SetResource(&resourceIdentifier5, contentReader5, nullptr);
+
+ Ptr<MgByteSource> contentSource6 = new MgByteSource(resourceContentFileName6);
+ Ptr<MgByteReader> contentReader6 = contentSource6->GetReader();
+ pService->SetResource(&resourceIdentifier6, contentReader6, nullptr);
+
+ Ptr<MgByteSource> contentSource7 = new MgByteSource(resourceContentFileName7);
+ Ptr<MgByteReader> contentReader7 = contentSource7->GetReader();
+ pService->SetResource(&resourceIdentifier7, contentReader7, nullptr);
+
+ Ptr<MgByteSource> contentSource8 = new MgByteSource(resourceContentFileName8);
+ Ptr<MgByteReader> contentReader8 = contentSource8->GetReader();
+ pService->SetResource(&resourceIdentifier8, contentReader8, nullptr);
+
+ Ptr<MgByteSource> contentSource9 = new MgByteSource(resourceContentFileName9);
+ Ptr<MgByteReader> contentReader9 = contentSource9->GetReader();
+ pService->SetResource(&resourceIdentifier9, contentReader9, nullptr);
+
+ //Set the resource data
+ Ptr<MgByteSource> dataSource1 = new MgByteSource(dataFileName1);
+ Ptr<MgByteReader> dataReader1 = dataSource1->GetReader();
+ pService->SetResourceData(&resourceIdentifier1, L"Sheboygan_Parcels.sdf", L"File", dataReader1);
+
+ Ptr<MgByteSource> dataSource2 = new MgByteSource(dataFileName2);
+ Ptr<MgByteReader> dataReader2 = dataSource2->GetReader();
+ pService->SetResourceData(&resourceIdentifier2, L"Redding_Parcels.shp", L"File", dataReader2);
+
+ Ptr<MgByteSource> dataSource3 = new MgByteSource(dataFileName3);
+ Ptr<MgByteReader> dataReader3 = dataSource3->GetReader();
+ pService->SetResourceData(&resourceIdentifier2, L"Redding_Parcels.dbf", L"File", dataReader3);
+
+ Ptr<MgByteSource> dataSource4 = new MgByteSource(dataFileName4);
+ Ptr<MgByteReader> dataReader4 = dataSource4->GetReader();
+ pService->SetResourceData(&resourceIdentifier2, L"Redding_Parcels.shx", L"File", dataReader4);
+
+ Ptr<MgByteSource> dataSource5 = new MgByteSource(dataFileName5);
+ Ptr<MgByteReader> dataReader5 = dataSource5->GetReader();
+ pService->SetResourceData(&resourceIdentifier3, L"Sheboygan_BuildingOutlines.sdf", L"File", dataReader5);
+
+ Ptr<MgByteSource> dataSource6 = new MgByteSource(dataFileName6);
+ Ptr<MgByteReader> dataReader6 = dataSource6->GetReader();
+ pService->SetResourceData(&resourceIdentifier4, L"Sheboygan_VotingDistricts.sdf", L"File", dataReader6);
+
+ Ptr<MgByteSource> dataSource7 = new MgByteSource(dataFileName1);
+ Ptr<MgByteReader> dataReader7 = dataSource7->GetReader();
+ pService->SetResourceData(&resourceIdentifier5, L"Sheboygan_Parcels.sdf", L"File", dataReader7);
+
+ Ptr<MgByteSource> dataSource8 = new MgByteSource(dataFileName7);
+ Ptr<MgByteReader> dataReader8 = dataSource8->GetReader();
+ pService->SetResourceData(&resourceIdentifier6, L"Empty.sdf", L"File", dataReader8);
+
+ Ptr<MgByteSource> dataSource9 = new MgByteSource(dataFileName1);
+ Ptr<MgByteReader> dataReader9 = dataSource9->GetReader();
+ pService->SetResourceData(&resourceIdentifier7, L"Sheboygan_Parcels.sdf", L"File", dataReader9);
+
+ Ptr<MgByteSource> dataSource10 = new MgByteSource(dataFileName8);
+ Ptr<MgByteReader> dataReader10 = dataSource10->GetReader();
+ pService->SetResourceData(&resourceIdentifier8, L"JoinTest.sqlite", L"File", dataReader10);
+
+ //Sortable Right side data set
+ Ptr<MgResourceIdentifier> fsId = new MgResourceIdentifier(L"Library://UnitTests/Data/SortableRight.FeatureSource");
+ Ptr<MgByteSource> fsContent = new MgByteSource(L"../UnitTestFiles/UT_Sortable_Right.fs");
+ Ptr<MgByteReader> fsReader = fsContent->GetReader();
+
+ pService->SetResource(fsId, fsReader, nullptr);
+ Ptr<MgByteSource> fsData = new MgByteSource(L"../UnitTestFiles/SortableRight.sqlite");
+ Ptr<MgByteReader> fsDataReader = fsData->GetReader();
+
+ pService->SetResourceData(fsId, L"SortableRight.sqlite", L"File", fsDataReader);
+ //REQUIRE(featSvc->TestConnection(fsId));
+
+ //Sortable Left side data set
+ fsId = new MgResourceIdentifier(L"Library://UnitTests/Data/SortableLeft.FeatureSource");
+ fsContent = new MgByteSource(L"../UnitTestFiles/UT_Sortable_Left.fs");
+ fsReader = fsContent->GetReader();
+
+ pService->SetResource(fsId, fsReader, nullptr);
+ fsData = new MgByteSource(L"../UnitTestFiles/SortableLeft.sqlite");
+ fsDataReader = fsData->GetReader();
+
+ pService->SetResourceData(fsId, L"SortableLeft.sqlite", L"File", fsDataReader);
+ //REQUIRE(featSvc->TestConnection(fsId));
+
+ //Unsortable Right side data set
+ fsId = new MgResourceIdentifier(L"Library://UnitTests/Data/UnsortableRight.FeatureSource");
+ fsContent = new MgByteSource(L"../UnitTestFiles/UT_Unsortable_Right.fs");
+ fsReader = fsContent->GetReader();
+
+ pService->SetResource(fsId, fsReader, nullptr);
+ fsData = new MgByteSource(L"../UnitTestFiles/UnsortableRight.sdf");
+ fsDataReader = fsData->GetReader();
+
+ pService->SetResourceData(fsId, L"UnsortableRight.sdf", L"File", fsDataReader);
+ //REQUIRE(featSvc->TestConnection(fsId));
+
+ //Unsortable Left side data set
+ fsId = new MgResourceIdentifier(L"Library://UnitTests/Data/UnsortableLeft.FeatureSource");
+ fsContent = new MgByteSource(L"../UnitTestFiles/UT_Unsortable_Left.fs");
+ fsReader = fsContent->GetReader();
+
+ pService->SetResource(fsId, fsReader, nullptr);
+ fsData = new MgByteSource(L"../UnitTestFiles/UnsortableLeft.sdf");
+ fsDataReader = fsData->GetReader();
+
+ pService->SetResourceData(fsId, L"UnsortableLeft.sdf", L"File", fsDataReader);
+ }
+ catch (MgException* e)
+ {
+ STRING message = e->GetDetails(TestServiceFactory::TEST_LOCALE);
+ SAFE_RELEASE(e);
+ FAIL(MG_WCHAR_TO_CHAR(message.c_str()));
+ }
+ }
+ }
+
+ // The whole test run ending
+ void testRunEnded(Catch::TestRunStats const& testRunStats) override {
+ Ptr<MgdServiceFactory> factory = new MgdServiceFactory();
+
+ Ptr<MgResourceService> pService = dynamic_cast<MgdResourceService*>(
+ factory->CreateService(MgServiceType::ResourceService));
+ assert(pService.p != nullptr);
+
+ printf("Tearing down test data\n");
+
+ printf("***************************************\n");
+ printf("**** Tearing down test environment ****\n");
+ printf("***************************************\n");
+
+ // TestMappingService teardown
+ if (TestServiceFactory::IsRunningSuite("[MappingService]"))
+ {
+ printf("Tearing down data for suite: MappingService\n");
+ try
+ {
+ //delete the map definition
+ Ptr<MgResourceIdentifier> mapres = new MgResourceIdentifier(L"Library://UnitTests/Maps/Sheboygan.MapDefinition");
+ pService->DeleteResource(mapres);
+
+ //delete the layer definitions
+ Ptr<MgResourceIdentifier> ldfres1 = new MgResourceIdentifier(L"Library://UnitTests/Layers/HydrographicPolygons.LayerDefinition");
+ pService->DeleteResource(ldfres1);
+
+ Ptr<MgResourceIdentifier> ldfres2 = new MgResourceIdentifier(L"Library://UnitTests/Layers/Parcels.LayerDefinition");
+ pService->DeleteResource(ldfres2);
+
+ Ptr<MgResourceIdentifier> ldfres3 = new MgResourceIdentifier(L"Library://UnitTests/Layers/Rail.LayerDefinition");
+ pService->DeleteResource(ldfres3);
+
+ //delete the feature sources
+ Ptr<MgResourceIdentifier> fsres1 = new MgResourceIdentifier(L"Library://UnitTests/Data/HydrographicPolygons.FeatureSource");
+ pService->DeleteResource(fsres1);
+
+ Ptr<MgResourceIdentifier> fsres2 = new MgResourceIdentifier(L"Library://UnitTests/Data/Parcels.FeatureSource");
+ pService->DeleteResource(fsres2);
+
+ Ptr<MgResourceIdentifier> fsres3 = new MgResourceIdentifier(L"Library://UnitTests/Data/Rail.FeatureSource");
+ pService->DeleteResource(fsres3);
+
+ // delete the print layouts
+ Ptr<MgResourceIdentifier> plres1 = new MgResourceIdentifier(L"Library://UnitTests/PrintLayouts/AllElements.PrintLayout");
+ pService->DeleteResource(plres1);
+
+ Ptr<MgResourceIdentifier> plres2 = new MgResourceIdentifier(L"Library://UnitTests/PrintLayouts/NoLegend.PrintLayout");
+ pService->DeleteResource(plres2);
+
+ // delete the symbol library
+ Ptr<MgResourceIdentifier> slres1 = new MgResourceIdentifier(L"Library://UnitTests/Symbols/SymbolMart.SymbolLibrary");
+ pService->DeleteResource(slres1);
+ }
+ catch (MgException* e)
+ {
+ STRING message = e->GetDetails(TestServiceFactory::TEST_LOCALE);
+ SAFE_RELEASE(e);
+ FAIL(MG_WCHAR_TO_CHAR(message.c_str()));
+ }
+ catch (...)
+ {
+ throw;
+ }
+ }
+
+ // TestProfilingService teardown
+ if (TestServiceFactory::IsRunningSuite("[ProfilingService]"))
+ {
+ printf("Tearing down data for suite: ProfilingService\n");
+ try
+ {
+ // delete the map definition
+ Ptr<MgResourceIdentifier> mapres1 = new MgResourceIdentifier(L"Library://UnitTests/Maps/Sheboygan.MapDefinition");
+ pService->DeleteResource(mapres1);
+
+ // delete the layer definitions
+ Ptr<MgResourceIdentifier> ldfres1 = new MgResourceIdentifier(L"Library://UnitTests/Layers/HydrographicPolygons.LayerDefinition");
+ pService->DeleteResource(ldfres1);
+
+ Ptr<MgResourceIdentifier> ldfres2 = new MgResourceIdentifier(L"Library://UnitTests/Layers/Rail.LayerDefinition");
+ pService->DeleteResource(ldfres2);
+
+ Ptr<MgResourceIdentifier> ldfres3 = new MgResourceIdentifier(L"Library://UnitTests/Layers/Parcels.LayerDefinition");
+ pService->DeleteResource(ldfres3);
+
+ // delete the feature sources
+ Ptr<MgResourceIdentifier> fsres1 = new MgResourceIdentifier(L"Library://UnitTests/Data/HydrographicPolygons.FeatureSource");
+ pService->DeleteResource(fsres1);
+
+ Ptr<MgResourceIdentifier> fsres2 = new MgResourceIdentifier(L"Library://UnitTests/Data/Rail.FeatureSource");
+ pService->DeleteResource(fsres2);
+
+ Ptr<MgResourceIdentifier> fsres3 = new MgResourceIdentifier(L"Library://UnitTests/Data/Parcels.FeatureSource");
+ pService->DeleteResource(fsres3);
+
+ // delete the print layouts
+ Ptr<MgResourceIdentifier> plres1 = new MgResourceIdentifier(L"Library://UnitTests/PrintLayouts/AllElements.PrintLayout");
+ pService->DeleteResource(plres1);
+
+ Ptr<MgResourceIdentifier> plres2 = new MgResourceIdentifier(L"Library://UnitTests/PrintLayouts/NoLegend.PrintLayout");
+ pService->DeleteResource(plres2);
+
+ // delete the symbol library
+ Ptr<MgResourceIdentifier> slres1 = new MgResourceIdentifier(L"Library://UnitTests/Symbols/SymbolMart.SymbolLibrary");
+ pService->DeleteResource(slres1);
+
+ // delete symbology stuff
+ Ptr<MgResourceIdentifier> fsres4 = new MgResourceIdentifier(L"Library://UnitTests/Data/Capitals.FeatureSource");
+ pService->DeleteResource(fsres4);
+ Ptr<MgResourceIdentifier> sdres1 = new MgResourceIdentifier(L"Library://UnitTests/Symbols/PointSymbol.SymbolDefinition");
+ pService->DeleteResource(sdres1);
+ Ptr<MgResourceIdentifier> sdres2 = new MgResourceIdentifier(L"Library://UnitTests/Symbols/PointSymbolParam.SymbolDefinition");
+ pService->DeleteResource(sdres2);
+ Ptr<MgResourceIdentifier> ldfres4 = new MgResourceIdentifier(L"Library://UnitTests/Layers/Capitals.LayerDefinition");
+ pService->DeleteResource(ldfres4);
+ Ptr<MgResourceIdentifier> ldfres5 = new MgResourceIdentifier(L"Library://UnitTests/Layers/CapitalsParam.LayerDefinition");
+ pService->DeleteResource(ldfres5);
+ Ptr<MgResourceIdentifier> mapres2 = new MgResourceIdentifier(L"Library://UnitTests/Maps/Capitals.MapDefinition");
+ pService->DeleteResource(mapres2);
+ Ptr<MgResourceIdentifier> mapres3 = new MgResourceIdentifier(L"Library://UnitTests/Maps/CapitalsParam.MapDefinition");
+ pService->DeleteResource(mapres3);
+
+ Ptr<MgResourceIdentifier> fsres5 = new MgResourceIdentifier(L"Library://UnitTests/Data/Lines.FeatureSource");
+ pService->DeleteResource(fsres5);
+ Ptr<MgResourceIdentifier> sdres3 = new MgResourceIdentifier(L"Library://UnitTests/Symbols/LineSymbol.SymbolDefinition");
+ pService->DeleteResource(sdres3);
+ Ptr<MgResourceIdentifier> sdres4 = new MgResourceIdentifier(L"Library://UnitTests/Symbols/MTYP1500a.SymbolDefinition");
+ pService->DeleteResource(sdres4);
+ Ptr<MgResourceIdentifier> ldfres6 = new MgResourceIdentifier(L"Library://UnitTests/Layers/Lines.LayerDefinition");
+ pService->DeleteResource(ldfres6);
+ Ptr<MgResourceIdentifier> ldfres7 = new MgResourceIdentifier(L"Library://UnitTests/Layers/LinesCrossTick.LayerDefinition");
+ pService->DeleteResource(ldfres7);
+ Ptr<MgResourceIdentifier> mapres4 = new MgResourceIdentifier(L"Library://UnitTests/Maps/Lines.MapDefinition");
+ pService->DeleteResource(mapres4);
+ Ptr<MgResourceIdentifier> mapres5 = new MgResourceIdentifier(L"Library://UnitTests/Maps/LinesCrossTick.MapDefinition");
+ pService->DeleteResource(mapres5);
+
+ Ptr<MgResourceIdentifier> ldfres8 = new MgResourceIdentifier(L"Library://UnitTests/Layers/UT_Annotation1.LayerDefinition");
+ pService->DeleteResource(ldfres8);
+ Ptr<MgResourceIdentifier> ldfres9 = new MgResourceIdentifier(L"Library://UnitTests/Layers/UT_Annotation2.LayerDefinition");
+ pService->DeleteResource(ldfres9);
+ Ptr<MgResourceIdentifier> ldfres10 = new MgResourceIdentifier(L"Library://UnitTests/Layers/UT_Annotation3.LayerDefinition");
+ pService->DeleteResource(ldfres10);
+ Ptr<MgResourceIdentifier> mapres8 = new MgResourceIdentifier(L"Library://UnitTests/Maps/UT_Annotation1.MapDefinition");
+ pService->DeleteResource(mapres8);
+ Ptr<MgResourceIdentifier> mapres9 = new MgResourceIdentifier(L"Library://UnitTests/Maps/UT_Annotation2.MapDefinition");
+ pService->DeleteResource(mapres9);
+ Ptr<MgResourceIdentifier> mapres10 = new MgResourceIdentifier(L"Library://UnitTests/Maps/UT_Annotation3.MapDefinition");
+ pService->DeleteResource(mapres10);
+
+ Ptr<MgResourceIdentifier> mapres11 = new MgResourceIdentifier(L"Library://UnitTests/Maps/UT_SymbologyPolygons.MapDefinition");
+ pService->DeleteResource(mapres11);
+ Ptr<MgResourceIdentifier> ldfres11 = new MgResourceIdentifier(L"Library://UnitTests/Layers/SymbologyParcels.LayerDefinition");
+ pService->DeleteResource(ldfres11);
+ Ptr<MgResourceIdentifier> sdres5 = new MgResourceIdentifier(L"Library://UnitTests/Symbols/AreaSymbol.SymbolDefinition");
+ pService->DeleteResource(sdres5);
+
+ Ptr<MgResourceIdentifier> mapres12 = new MgResourceIdentifier(L"Library://UnitTests/Maps/SheboyganWithWatermark.MapDefinition");
+ pService->DeleteResource(mapres12);
+ Ptr<MgResourceIdentifier> wdfres1 = new MgResourceIdentifier(L"Library://UnitTests/Watermarks/PoweredByMapGuide.WatermarkDefinition");
+ pService->DeleteResource(wdfres1);
+ }
+ catch (MgFileIoException* e)
+ {
+ STRING message = e->GetDetails(TestServiceFactory::TEST_LOCALE);
+ SAFE_RELEASE(e);
+ ACE_DEBUG((LM_INFO, ACE_TEXT("\nMgFileIoException - Possible file permission error.\nError: %W\n"), message.c_str()));
+ }
+ catch (MgException* e)
+ {
+ STRING message = e->GetDetails(TestServiceFactory::TEST_LOCALE);
+ message += e->GetStackTrace(TestServiceFactory::TEST_LOCALE);
+ SAFE_RELEASE(e);
+ FAIL(MG_WCHAR_TO_CHAR(message.c_str()));
+ }
+ catch (...)
+ {
+ throw;
+ }
+ }
+
+ // TestRenderingService teardown
+ if (TestServiceFactory::IsRunningSuite("[RenderingService]"))
+ {
+ printf("Tearing down data for suite: RenderingService\n");
+ try
+ {
+ // delete the map definition
+ Ptr<MgResourceIdentifier> mapres1 = new MgResourceIdentifier(L"Library://UnitTests/Maps/Sheboygan.MapDefinition");
+ pService->DeleteResource(mapres1);
+
+ // delete the layer definitions
+ Ptr<MgResourceIdentifier> ldfres1 = new MgResourceIdentifier(L"Library://UnitTests/Layers/HydrographicPolygons.LayerDefinition");
+ pService->DeleteResource(ldfres1);
+
+ Ptr<MgResourceIdentifier> ldfres2 = new MgResourceIdentifier(L"Library://UnitTests/Layers/Rail.LayerDefinition");
+ pService->DeleteResource(ldfres2);
+
+ Ptr<MgResourceIdentifier> ldfres3 = new MgResourceIdentifier(L"Library://UnitTests/Layers/Parcels.LayerDefinition");
+ pService->DeleteResource(ldfres3);
+
+ // delete the feature sources
+ Ptr<MgResourceIdentifier> fsres1 = new MgResourceIdentifier(L"Library://UnitTests/Data/HydrographicPolygons.FeatureSource");
+ pService->DeleteResource(fsres1);
+
+ Ptr<MgResourceIdentifier> fsres2 = new MgResourceIdentifier(L"Library://UnitTests/Data/Rail.FeatureSource");
+ pService->DeleteResource(fsres2);
+
+ Ptr<MgResourceIdentifier> fsres3 = new MgResourceIdentifier(L"Library://UnitTests/Data/Parcels.FeatureSource");
+ pService->DeleteResource(fsres3);
+
+ // delete the print layouts
+ Ptr<MgResourceIdentifier> plres1 = new MgResourceIdentifier(L"Library://UnitTests/PrintLayouts/AllElements.PrintLayout");
+ pService->DeleteResource(plres1);
+
+ Ptr<MgResourceIdentifier> plres2 = new MgResourceIdentifier(L"Library://UnitTests/PrintLayouts/NoLegend.PrintLayout");
+ pService->DeleteResource(plres2);
+
+ // delete the symbol library
+ Ptr<MgResourceIdentifier> slres1 = new MgResourceIdentifier(L"Library://UnitTests/Symbols/SymbolMart.SymbolLibrary");
+ pService->DeleteResource(slres1);
+
+ // delete symbology stuff
+ Ptr<MgResourceIdentifier> fsres4 = new MgResourceIdentifier(L"Library://UnitTests/Data/Capitals.FeatureSource");
+ pService->DeleteResource(fsres4);
+ Ptr<MgResourceIdentifier> sdres1 = new MgResourceIdentifier(L"Library://UnitTests/Symbols/PointSymbol.SymbolDefinition");
+ pService->DeleteResource(sdres1);
+ Ptr<MgResourceIdentifier> sdres2 = new MgResourceIdentifier(L"Library://UnitTests/Symbols/PointSymbolParam.SymbolDefinition");
+ pService->DeleteResource(sdres2);
+ Ptr<MgResourceIdentifier> ldfres4 = new MgResourceIdentifier(L"Library://UnitTests/Layers/Capitals.LayerDefinition");
+ pService->DeleteResource(ldfres4);
+ Ptr<MgResourceIdentifier> ldfres5 = new MgResourceIdentifier(L"Library://UnitTests/Layers/CapitalsParam.LayerDefinition");
+ pService->DeleteResource(ldfres5);
+ Ptr<MgResourceIdentifier> mapres2 = new MgResourceIdentifier(L"Library://UnitTests/Maps/Capitals.MapDefinition");
+ pService->DeleteResource(mapres2);
+ Ptr<MgResourceIdentifier> mapres3 = new MgResourceIdentifier(L"Library://UnitTests/Maps/CapitalsParam.MapDefinition");
+ pService->DeleteResource(mapres3);
+
+ Ptr<MgResourceIdentifier> fsres5 = new MgResourceIdentifier(L"Library://UnitTests/Data/Lines.FeatureSource");
+ pService->DeleteResource(fsres5);
+ Ptr<MgResourceIdentifier> sdres3 = new MgResourceIdentifier(L"Library://UnitTests/Symbols/LineSymbol.SymbolDefinition");
+ pService->DeleteResource(sdres3);
+ Ptr<MgResourceIdentifier> sdres4 = new MgResourceIdentifier(L"Library://UnitTests/Symbols/MTYP1500a.SymbolDefinition");
+ pService->DeleteResource(sdres4);
+ Ptr<MgResourceIdentifier> ldfres6 = new MgResourceIdentifier(L"Library://UnitTests/Layers/Lines.LayerDefinition");
+ pService->DeleteResource(ldfres6);
+ Ptr<MgResourceIdentifier> ldfres7 = new MgResourceIdentifier(L"Library://UnitTests/Layers/LinesCrossTick.LayerDefinition");
+ pService->DeleteResource(ldfres7);
+ Ptr<MgResourceIdentifier> mapres4 = new MgResourceIdentifier(L"Library://UnitTests/Maps/Lines.MapDefinition");
+ pService->DeleteResource(mapres4);
+ Ptr<MgResourceIdentifier> mapres5 = new MgResourceIdentifier(L"Library://UnitTests/Maps/LinesCrossTick.MapDefinition");
+ pService->DeleteResource(mapres5);
+
+ Ptr<MgResourceIdentifier> ldfres8 = new MgResourceIdentifier(L"Library://UnitTests/Layers/UT_Annotation1.LayerDefinition");
+ pService->DeleteResource(ldfres8);
+ Ptr<MgResourceIdentifier> ldfres9 = new MgResourceIdentifier(L"Library://UnitTests/Layers/UT_Annotation2.LayerDefinition");
+ pService->DeleteResource(ldfres9);
+ Ptr<MgResourceIdentifier> ldfres10 = new MgResourceIdentifier(L"Library://UnitTests/Layers/UT_Annotation3.LayerDefinition");
+ pService->DeleteResource(ldfres10);
+ Ptr<MgResourceIdentifier> mapres8 = new MgResourceIdentifier(L"Library://UnitTests/Maps/UT_Annotation1.MapDefinition");
+ pService->DeleteResource(mapres8);
+ Ptr<MgResourceIdentifier> mapres9 = new MgResourceIdentifier(L"Library://UnitTests/Maps/UT_Annotation2.MapDefinition");
+ pService->DeleteResource(mapres9);
+ Ptr<MgResourceIdentifier> mapres10 = new MgResourceIdentifier(L"Library://UnitTests/Maps/UT_Annotation3.MapDefinition");
+ pService->DeleteResource(mapres10);
+
+ Ptr<MgResourceIdentifier> mapres11 = new MgResourceIdentifier(L"Library://UnitTests/Maps/UT_SymbologyPolygons.MapDefinition");
+ pService->DeleteResource(mapres11);
+ Ptr<MgResourceIdentifier> ldfres11 = new MgResourceIdentifier(L"Library://UnitTests/Layers/SymbologyParcels.LayerDefinition");
+ pService->DeleteResource(ldfres11);
+ Ptr<MgResourceIdentifier> sdres5 = new MgResourceIdentifier(L"Library://UnitTests/Symbols/AreaSymbol.SymbolDefinition");
+ pService->DeleteResource(sdres5);
+
+ Ptr<MgResourceIdentifier> mapres12 = new MgResourceIdentifier(L"Library://UnitTests/Maps/SheboyganWithWatermark.MapDefinition");
+ pService->DeleteResource(mapres12);
+ Ptr<MgResourceIdentifier> wdfres1 = new MgResourceIdentifier(L"Library://UnitTests/Watermarks/PoweredByMapGuide.WatermarkDefinition");
+ pService->DeleteResource(wdfres1);
+
+ Ptr<MgResourceIdentifier> mapres13 = new MgResourceIdentifier(L"Library://UnitTests/Maps/BaseMap.MapDefinition");
+ pService->DeleteResource(mapres13);
+ Ptr<MgResourceIdentifier> ldfres12 = new MgResourceIdentifier(L"Library://UnitTests/Layers/RoadCenterLines.LayerDefinition");
+ pService->DeleteResource(ldfres12);
+ Ptr<MgResourceIdentifier> ldfres13 = new MgResourceIdentifier(L"Library://UnitTests/Layers/VotingDistricts.LayerDefinition");
+ pService->DeleteResource(ldfres13);
+ Ptr<MgResourceIdentifier> fsres6 = new MgResourceIdentifier(L"Library://UnitTests/Data/RoadCenterLines.FeatureSource");
+ pService->DeleteResource(fsres6);
+ Ptr<MgResourceIdentifier> fsres7 = new MgResourceIdentifier(L"Library://UnitTests/Data/VotingDistricts.FeatureSource");
+ pService->DeleteResource(fsres7);
+
+ Ptr<MgResourceIdentifier> ldfres14 = new MgResourceIdentifier(L"Library://UnitTests/Layers/MultiFTS.LayerDefinition");
+ pService->DeleteResource(ldfres14);
+ Ptr<MgResourceIdentifier> ldfres15 = new MgResourceIdentifier(L"Library://UnitTests/Layers/MultiCTS.LayerDefinition");
+ pService->DeleteResource(ldfres15);
+ Ptr<MgResourceIdentifier> ldfres16 = new MgResourceIdentifier(L"Library://UnitTests/Layers/MultiFTSWithTheme.LayerDefinition");
+ pService->DeleteResource(ldfres16);
+ Ptr<MgResourceIdentifier> ldfres17 = new MgResourceIdentifier(L"Library://UnitTests/Layers/MultiCTSWithTheme.LayerDefinition");
+ pService->DeleteResource(ldfres17);
+ Ptr<MgResourceIdentifier> ldfres18 = new MgResourceIdentifier(L"Library://UnitTests/Layers/MultiFTSSingleCTS.LayerDefinition");
+ pService->DeleteResource(ldfres18);
+ Ptr<MgResourceIdentifier> ldfres19 = new MgResourceIdentifier(L"Library://UnitTests/Layers/SingleFTSMultiCTS.LayerDefinition");
+ pService->DeleteResource(ldfres19);
+
+ // Data related to stylization function tests
+ Ptr<MgResourceIdentifier> ldfres20 = new MgResourceIdentifier(L"Library://UnitTests/Layers/StylizationFuncs.LayerDefinition");
+ pService->DeleteResource(ldfres20);
+
+ Ptr<MgResourceIdentifier> mapres15 = new MgResourceIdentifier(L"Library://UnitTests/Maps/StylizationFuncs.MapDefinition");
+ pService->DeleteResource(mapres15);
+
+ // Layer watermark test
+ Ptr<MgResourceIdentifier> wdfres2 = new MgResourceIdentifier(L"Library://UnitTests/Watermarks/Rail.WatermarkDefinition");
+ pService->DeleteResource(wdfres2);
+ Ptr<MgResourceIdentifier> ldfres21 = new MgResourceIdentifier(L"Library://UnitTests/Layers/RailWatermark.LayerDefinition");
+ pService->DeleteResource(ldfres21);
+ }
+ catch (MgFileIoException* e)
+ {
+ STRING message = e->GetDetails(TestServiceFactory::TEST_LOCALE);
+ SAFE_RELEASE(e);
+ ACE_DEBUG((LM_INFO, ACE_TEXT("\nMgFileIoException - Possible file permission error.\nError: %W\n"), message.c_str()));
+ }
+ catch (MgException* e)
+ {
+ STRING message = e->GetDetails(TestServiceFactory::TEST_LOCALE);
+ message += e->GetStackTrace(TestServiceFactory::TEST_LOCALE);
+ SAFE_RELEASE(e);
+ FAIL(MG_WCHAR_TO_CHAR(message.c_str()));
+ }
+ catch (...)
+ {
+ throw;
+ }
+ }
+
+ // TestTileService teardown
+ if (TestServiceFactory::IsRunningSuite("[TileService]"))
+ {
+ printf("Tearing down data for suite: TileService\n");
+ try
+ {
+ // ------------------------------------------------------
+ // base map source data
+ // ------------------------------------------------------
+
+ // delete the map definition
+ Ptr<MgResourceIdentifier> mapres1 = new MgResourceIdentifier(L"Library://UnitTests/Maps/BaseMap.MapDefinition");
+ pService->DeleteResource(mapres1);
+
+ // delete the layer definitions
+ Ptr<MgResourceIdentifier> ldfres1 = new MgResourceIdentifier(L"Library://UnitTests/Layers/RoadCenterLines.LayerDefinition");
+ pService->DeleteResource(ldfres1);
+
+ Ptr<MgResourceIdentifier> ldfres2 = new MgResourceIdentifier(L"Library://UnitTests/Layers/Parcels.LayerDefinition");
+ pService->DeleteResource(ldfres2);
+
+ Ptr<MgResourceIdentifier> ldfres3 = new MgResourceIdentifier(L"Library://UnitTests/Layers/VotingDistricts.LayerDefinition");
+ pService->DeleteResource(ldfres3);
+
+ // delete the feature sources
+ Ptr<MgResourceIdentifier> fsres1 = new MgResourceIdentifier(L"Library://UnitTests/Data/RoadCenterLines.FeatureSource");
+ pService->DeleteResource(fsres1);
+
+ Ptr<MgResourceIdentifier> fsres2 = new MgResourceIdentifier(L"Library://UnitTests/Data/Parcels.FeatureSource");
+ pService->DeleteResource(fsres2);
+
+ Ptr<MgResourceIdentifier> fsres3 = new MgResourceIdentifier(L"Library://UnitTests/Data/VotingDistricts.FeatureSource");
+ pService->DeleteResource(fsres3);
+
+ // remove temporary directory for tile images
+ MgFileUtil::DeleteDirectory(L"./temp_tiles", true, false);
+ }
+ catch (MgException* e)
+ {
+ STRING message = e->GetDetails(TestServiceFactory::TEST_LOCALE);
+ SAFE_RELEASE(e);
+ FAIL(MG_WCHAR_TO_CHAR(message.c_str()));
+ }
+ catch (...)
+ {
+ throw;
+ }
+ }
+
+ // TestResourceService teardown
+ if (TestServiceFactory::IsRunningSuite("[ResourceService]"))
+ {
+ printf("Tearing down data for suite: ResourceService\n");
+ try
+ {
+ // delete the drawing source definition
+ Ptr<MgResourceIdentifier> mapres1 = new MgResourceIdentifier(L"Library://UnitTests/Data/Shuttle.DrawingSource");
+ pService->DeleteResource(mapres1);
+
+ Ptr<MgResourceIdentifier> fs1 = new MgResourceIdentifier(L"Library://UnitTests/Data/acea.FeatureSource");
+ pService->DeleteResource(fs1);
+
+ MgResourceIdentifier resourceIdentifier(L"Library://UnitTests/Data/test-1.FeatureSource"); // Original resource added
+ MgResourceIdentifier resourceIdentifier2(L"Library://UnitTests/Data/test-2.FeatureSource"); // Used in copy and move
+ MgResourceIdentifier resourceIdentifier3(L"Library://UnitTests/Data/World.DrawingSource"); // Added by package
+ MgResourceIdentifier resourceIdentifier4(L"Library://UnitTests/Layer/test-1.LayerDefinition"); // For cascade move resource
+
+ // Delete any resources created
+ if (pService->ResourceExists(&resourceIdentifier))
+ pService->DeleteResource(&resourceIdentifier);
+
+ if (pService->ResourceExists(&resourceIdentifier2))
+ pService->DeleteResource(&resourceIdentifier2);
+
+ if (pService->ResourceExists(&resourceIdentifier3))
+ pService->DeleteResource(&resourceIdentifier3);
+
+ if (pService->ResourceExists(&resourceIdentifier4))
+ pService->DeleteResource(&resourceIdentifier4);
+ }
+ catch (MgException* e)
+ {
+ STRING message = e->GetDetails(TestServiceFactory::TEST_LOCALE);
+ SAFE_RELEASE(e);
+ FAIL(MG_WCHAR_TO_CHAR(message.c_str()));
+ }
+ catch (...)
+ {
+ throw;
+ }
+ }
+
+ // TestFeatureService teardown
+ if (TestServiceFactory::IsRunningSuite("[FeatureService]"))
+ {
+ printf("Tearing down data for suite: FeatureService\n");
+ try
+ {
+ // delete the feature sources definition
+ Ptr<MgResourceIdentifier> fsres1 = new MgResourceIdentifier(L"Library://UnitTests/Data/Sheboygan_Parcels.FeatureSource");
+ pService->DeleteResource(fsres1);
+
+ Ptr<MgResourceIdentifier> fsres2 = new MgResourceIdentifier(L"Library://UnitTests/Data/Redding_Parcels.FeatureSource");
+ pService->DeleteResource(fsres2);
+
+ Ptr<MgResourceIdentifier> fsres3 = new MgResourceIdentifier(L"Library://UnitTests/Data/Sheboygan_BuildingOutlines.FeatureSource");
+ pService->DeleteResource(fsres3);
+
+ Ptr<MgResourceIdentifier> fsres4 = new MgResourceIdentifier(L"Library://UnitTests/Data/Sheboygan_VotingDistricts.FeatureSource");
+ pService->DeleteResource(fsres4);
+
+ Ptr<MgResourceIdentifier> fsres5 = new MgResourceIdentifier(L"Library://UnitTests/Data/TestChainedInner1ToManyJoin.FeatureSource");
+ pService->DeleteResource(fsres5);
+
+ Ptr<MgResourceIdentifier> fsres6 = new MgResourceIdentifier(L"Library://UnitTests/Data/Empty.FeatureSource");
+ pService->DeleteResource(fsres6);
+
+ Ptr<MgResourceIdentifier> fsres7 = new MgResourceIdentifier(L"Library://UnitTests/Data/Sheboygan_Parcels_Writable.FeatureSource");
+ pService->DeleteResource(fsres7);
+
+ Ptr<MgResourceIdentifier> fsres8 = new MgResourceIdentifier(L"Library://UnitTests/Data/FdoJoin.FeatureSource");
+ pService->DeleteResource(fsres8);
+
+ Ptr<MgResourceIdentifier> fsres9 = new MgResourceIdentifier(L"Library://UnitTests/Data/SecuredCredentials.FeatureSource");
+ pService->DeleteResource(fsres9);
+
+ //Ptr<MgResourceIdentifier> folder = new MgResourceIdentifier(L"Library://UnitTests/");
+ //pService->DeleteResource(folder);
+ }
+ catch (MgException* e)
+ {
+ STRING message = e->GetDetails(TestServiceFactory::TEST_LOCALE);
+ SAFE_RELEASE(e);
+ FAIL(MG_WCHAR_TO_CHAR(message.c_str()));
+ }
+ catch (...)
+ {
+ throw;
+ }
+ }
+
+#ifdef DEBUG
+ ACE_DEBUG((LM_INFO, ACE_TEXT("\nConnection Pool status: \n\n")));
+ std::vector<PoolCacheEntry*> entries;
+ MgdFdoConnectionPool::GetCacheInfo(entries);
+ for (std::vector<PoolCacheEntry*>::iterator it = entries.begin(); it != entries.end(); it++)
+ {
+ STRING resId = (*it)->ResourceId;
+ ACE_DEBUG((LM_INFO, ACE_TEXT(" - %W (%d Open, %d Closed)\n"), resId.c_str(), (*it)->OpenCount, (*it)->ClosedCount));
+ }
+#endif
+ }
+};
+
+CATCH_REGISTER_LISTENER(TestDataSetup)
+
+// Get rid of Wweak-tables
+TestDataSetup::~TestDataSetup() {}
\ No newline at end of file
Added: sandbox/jng/catch2/Desktop/UnitTest/TestServiceFactory.h
===================================================================
--- sandbox/jng/catch2/Desktop/UnitTest/TestServiceFactory.h (rev 0)
+++ sandbox/jng/catch2/Desktop/UnitTest/TestServiceFactory.h 2020-07-21 09:14:23 UTC (rev 9676)
@@ -0,0 +1,41 @@
+//
+// Copyright (C) 2004-2020 by Autodesk, Inc.
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of version 2.1 of the GNU Lesser
+// General Public License as published by the Free Software Foundation.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+//
+
+#ifndef _TESTSERVICEFACTORY_H
+#define _TESTSERVICEFACTORY_H
+
+#include "MgDesktop.h"
+
+#include <string>
+#include <set>
+
+class TestServiceFactory
+{
+public:
+ static const STRING TEST_LOCALE;
+
+ static void AddSuiteToRun(const std::string& suite);
+
+ static void GetCatch2Tags(std::string& testOrTags);
+
+ static bool IsRunningSuite(const std::string& suite);
+
+private:
+ static std::set<std::string> sm_suitesToRun;
+};
+
+#endif
More information about the mapguide-commits
mailing list