@itwin/map-layers-formats 4.1.0-dev.40 → 4.1.0-dev.50
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.rush/temp/operation/build/all.log +1 -3
- package/.rush/temp/operation/build/state.json +1 -1
- package/.rush/temp/operation/cover/all.log +12 -7
- package/.rush/temp/operation/cover/state.json +1 -1
- package/.rush/temp/operation/docs/all.log +2 -2
- package/.rush/temp/operation/docs/state.json +1 -1
- package/.rush/temp/package-deps_build.json +36 -0
- package/.rush/temp/package-deps_cover.json +7 -7
- package/.rush/temp/package-deps_docs.json +7 -7
- package/.rush/temp/shrinkwrap-deps.json +70 -80
- package/CHANGELOG.json +30 -0
- package/CHANGELOG.md +26 -1
- package/lib/cjs/ArcGisFeature/ArcGisFeatureFormat.js.map +1 -1
- package/lib/cjs/ArcGisFeature/ArcGisFeatureJSON.js.map +1 -1
- package/lib/cjs/ArcGisFeature/ArcGisFeaturePBF.js.map +1 -1
- package/lib/cjs/ArcGisFeature/ArcGisFeatureProvider.d.ts +3 -0
- package/lib/cjs/ArcGisFeature/ArcGisFeatureProvider.d.ts.map +1 -1
- package/lib/cjs/ArcGisFeature/ArcGisFeatureProvider.js +49 -11
- package/lib/cjs/ArcGisFeature/ArcGisFeatureProvider.js.map +1 -1
- package/lib/cjs/ArcGisFeature/ArcGisFeatureQuery.js.map +1 -1
- package/lib/cjs/ArcGisFeature/ArcGisFeatureReader.js.map +1 -1
- package/lib/cjs/ArcGisFeature/ArcGisFeatureRenderer.js.map +1 -1
- package/lib/cjs/ArcGisFeature/ArcGisFeatureResponse.js.map +1 -1
- package/lib/cjs/ArcGisFeature/ArcGisSymbologyRenderer.js +3 -3
- package/lib/cjs/ArcGisFeature/ArcGisSymbologyRenderer.js.map +1 -1
- package/lib/cjs/ArcGisFeature/esriPBuffer.gen.js.map +1 -1
- package/lib/cjs/map-layers-formats.js.map +1 -1
- package/lib/cjs/mapLayersFormats.js.map +1 -1
- package/lib/cjs/test/ArcGisFeature/ArcGisFeatureFeatureFormats.test.js.map +1 -1
- package/lib/cjs/test/ArcGisFeature/ArcGisFeatureJSON.test.js.map +1 -1
- package/lib/cjs/test/ArcGisFeature/ArcGisFeaturePBF.test.js.map +1 -1
- package/lib/cjs/test/ArcGisFeature/ArcGisFeatureProvider.test.js +133 -6
- package/lib/cjs/test/ArcGisFeature/ArcGisFeatureProvider.test.js.map +1 -1
- package/lib/cjs/test/ArcGisFeature/ArcGisFeatureQuery.test.js.map +1 -1
- package/lib/cjs/test/ArcGisFeature/ArcGisFeatureRenderer.test.js.map +1 -1
- package/lib/cjs/test/ArcGisFeature/ArcGisFeatureResponse.test.js.map +1 -1
- package/lib/cjs/test/ArcGisFeature/ArcGisSymbologyRenderer.test.js.map +1 -1
- package/lib/cjs/test/ArcGisFeature/Mocks.js.map +1 -1
- package/lib/cjs/test/ArcGisFeature/NewYorkDataset.js.map +1 -1
- package/lib/cjs/test/ArcGisFeature/PhillyLandmarksDataset.js.map +1 -1
- package/lib/cjs/test/coverage/.nyc_output/49eeff8d-f0c9-43b5-9fa7-717e2ee4f36b.json +1 -0
- package/lib/cjs/test/coverage/.nyc_output/processinfo/49eeff8d-f0c9-43b5-9fa7-717e2ee4f36b.json +1 -0
- package/lib/cjs/test/coverage/.nyc_output/processinfo/b749190e-f7e9-4cdb-80df-74589d31e28d.json +1 -0
- package/lib/cjs/test/coverage/.nyc_output/processinfo/index.json +1 -1
- package/lib/cjs/test/coverage/cobertura-coverage.xml +291 -257
- package/lib/cjs/test/coverage/lcov-report/index.html +18 -18
- package/lib/cjs/test/coverage/lcov-report/src/ArcGisFeature/ArcGisFeatureFormat.ts.html +1 -1
- package/lib/cjs/test/coverage/lcov-report/src/ArcGisFeature/ArcGisFeatureJSON.ts.html +1 -1
- package/lib/cjs/test/coverage/lcov-report/src/ArcGisFeature/ArcGisFeaturePBF.ts.html +1 -1
- package/lib/cjs/test/coverage/lcov-report/src/ArcGisFeature/ArcGisFeatureProvider.ts.html +202 -76
- package/lib/cjs/test/coverage/lcov-report/src/ArcGisFeature/ArcGisFeatureQuery.ts.html +1 -1
- package/lib/cjs/test/coverage/lcov-report/src/ArcGisFeature/ArcGisFeatureReader.ts.html +1 -1
- package/lib/cjs/test/coverage/lcov-report/src/ArcGisFeature/ArcGisFeatureRenderer.ts.html +1 -1
- package/lib/cjs/test/coverage/lcov-report/src/ArcGisFeature/ArcGisFeatureResponse.ts.html +1 -1
- package/lib/cjs/test/coverage/lcov-report/src/ArcGisFeature/ArcGisSymbologyRenderer.ts.html +13 -13
- package/lib/cjs/test/coverage/lcov-report/src/ArcGisFeature/index.html +18 -18
- package/lib/cjs/test/coverage/lcov-report/src/index.html +1 -1
- package/lib/cjs/test/coverage/lcov-report/src/map-layers-formats.ts.html +1 -1
- package/lib/cjs/test/coverage/lcov-report/src/mapLayersFormats.ts.html +1 -1
- package/lib/cjs/test/coverage/lcov.info +420 -384
- package/lib/cjs/tsconfig.tsbuildinfo +1 -1
- package/lib/esm/ArcGisFeature/ArcGisFeatureFormat.js.map +1 -1
- package/lib/esm/ArcGisFeature/ArcGisFeatureJSON.js.map +1 -1
- package/lib/esm/ArcGisFeature/ArcGisFeaturePBF.js.map +1 -1
- package/lib/esm/ArcGisFeature/ArcGisFeatureProvider.d.ts +3 -0
- package/lib/esm/ArcGisFeature/ArcGisFeatureProvider.d.ts.map +1 -1
- package/lib/esm/ArcGisFeature/ArcGisFeatureProvider.js +49 -11
- package/lib/esm/ArcGisFeature/ArcGisFeatureProvider.js.map +1 -1
- package/lib/esm/ArcGisFeature/ArcGisFeatureQuery.js.map +1 -1
- package/lib/esm/ArcGisFeature/ArcGisFeatureReader.js.map +1 -1
- package/lib/esm/ArcGisFeature/ArcGisFeatureRenderer.js.map +1 -1
- package/lib/esm/ArcGisFeature/ArcGisFeatureResponse.js.map +1 -1
- package/lib/esm/ArcGisFeature/ArcGisSymbologyRenderer.js +3 -3
- package/lib/esm/ArcGisFeature/ArcGisSymbologyRenderer.js.map +1 -1
- package/lib/esm/ArcGisFeature/esriPBuffer.gen.js.map +1 -1
- package/lib/esm/map-layers-formats.js.map +1 -1
- package/lib/esm/mapLayersFormats.js.map +1 -1
- package/lib/esm/test/ArcGisFeature/ArcGisFeatureFeatureFormats.test.js.map +1 -1
- package/lib/esm/test/ArcGisFeature/ArcGisFeatureJSON.test.js.map +1 -1
- package/lib/esm/test/ArcGisFeature/ArcGisFeaturePBF.test.js.map +1 -1
- package/lib/esm/test/ArcGisFeature/ArcGisFeatureProvider.test.js +134 -7
- package/lib/esm/test/ArcGisFeature/ArcGisFeatureProvider.test.js.map +1 -1
- package/lib/esm/test/ArcGisFeature/ArcGisFeatureQuery.test.js.map +1 -1
- package/lib/esm/test/ArcGisFeature/ArcGisFeatureRenderer.test.js.map +1 -1
- package/lib/esm/test/ArcGisFeature/ArcGisFeatureResponse.test.js.map +1 -1
- package/lib/esm/test/ArcGisFeature/ArcGisSymbologyRenderer.test.js.map +1 -1
- package/lib/esm/test/ArcGisFeature/Mocks.js.map +1 -1
- package/lib/esm/test/ArcGisFeature/NewYorkDataset.js.map +1 -1
- package/lib/esm/test/ArcGisFeature/PhillyLandmarksDataset.js.map +1 -1
- package/lib/esm/tsconfig.tsbuildinfo +1 -1
- package/lib/test/junit_results.xml +49 -39
- package/map-layers-formats.build.cache.log +2 -0
- package/map-layers-formats.cover.log +103 -0
- package/{map-layers-formats.build.log → map-layers-formats.docs.log} +2 -2
- package/map-layers-formats.lint.error.log +1 -0
- package/map-layers-formats.lint.log +2 -0
- package/package.json +12 -12
- package/src/ArcGisFeature/ArcGisFeatureProvider.ts +53 -11
- package/src/ArcGisFeature/ArcGisSymbologyRenderer.ts +3 -3
- package/src/test/ArcGisFeature/ArcGisFeatureProvider.test.ts +173 -7
- package/.rush/temp/56b9a37b833db0202ea00aa252f5eaa1d19cf7bd.log +0 -10
- package/lib/cjs/test/coverage/.nyc_output/4dc5f60e-8ae8-48d3-b717-f77ecf525371.json +0 -1
- package/lib/cjs/test/coverage/.nyc_output/processinfo/4dc5f60e-8ae8-48d3-b717-f77ecf525371.json +0 -1
- package/lib/cjs/test/coverage/.nyc_output/processinfo/dac1e7eb-315e-4558-9250-262b6f23cf4a.json +0 -1
- /package/lib/cjs/test/coverage/.nyc_output/{dac1e7eb-315e-4558-9250-262b6f23cf4a.json → b749190e-f7e9-4cdb-80df-74589d31e28d.json} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"map-layers-formats.js","sourceRoot":"","sources":["../../src/map-layers-formats.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;;;;;;;;;;;;;;;;AAE/F,qDAAmC;AACnC,wEAAsD;AAEtD;;GAEG;AAEH;;GAEG","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n\nexport * from \"./mapLayersFormats\";\nexport * from \"./ArcGisFeature/ArcGisFeatureProvider\";\n\n/** @docs-package-description\n * This package provides support for additional map layer formats that are not included in the @itwin/core-frontend package.\n */\n\n/** @docs-group-description MapLayersFormats\n * APIs for working with the map layer formats provided by this package.\n */\n"]}
|
|
1
|
+
{"version":3,"file":"map-layers-formats.js","sourceRoot":"","sources":["../../src/map-layers-formats.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;;;;;;;;;;;;;;;;AAE/F,qDAAmC;AACnC,wEAAsD;AAEtD;;GAEG;AAEH;;GAEG","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n\r\nexport * from \"./mapLayersFormats\";\r\nexport * from \"./ArcGisFeature/ArcGisFeatureProvider\";\r\n\r\n/** @docs-package-description\r\n * This package provides support for additional map layer formats that are not included in the @itwin/core-frontend package.\r\n */\r\n\r\n/** @docs-group-description MapLayersFormats\r\n * APIs for working with the map layer formats provided by this package.\r\n */\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapLayersFormats.js","sourceRoot":"","sources":["../../src/mapLayersFormats.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;;;AAE/F;;GAEG;AACH,sDAA6C;AAC7C,wDAAiD;AACjD,6EAAkF;AAElF;;GAEG;AACH,MAAa,gBAAgB;IAC3B;;;OAGG;IACI,MAAM,CAAC,UAAU;QACtB,IAAA,qBAAM,EAAC,yBAAS,CAAC,WAAW,EAAE,kGAAkG,CAAC,CAAC;QAClI,IAAI,yBAAS,CAAC,WAAW;YACvB,yBAAS,CAAC,sBAAsB,CAAC,QAAQ,CAAC,iDAA2B,CAAC,CAAC;IAC3E,CAAC;CACF;AAVD,4CAUC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n\n/** @packageDocumentation\n * @module MapLayersFormats\n */\nimport { assert } from \"@itwin/core-bentley\";\nimport { IModelApp } from \"@itwin/core-frontend\";\nimport { ArcGisFeatureMapLayerFormat } from \"./ArcGisFeature/ArcGisFeatureFormat\";\n\n/** The primary API for the `@itwin/map-layers-formats` package. It allows the package's features to be [[initialize]]d.\n * @beta\n */\nexport class MapLayersFormats {\n /** Registers the [MapLayerFormat]($frontend)s provided by this package for use with [IModelApp]($frontend).\n * Typically, an application will call `MapLayersFormats.initialize` immediately after [IModelApp.startup]($frontend).\n * This function has no effect if called **before** [IModelApp.startup]($frontend) or **after** [IModelApp.shutdown]($frontend).\n */\n public static initialize() {\n assert(IModelApp.initialized, \"MapLayersFormats.initialize must be called after IModelApp.startup and before IModelApp.shutdown\");\n if (IModelApp.initialized)\n IModelApp.mapLayerFormatRegistry.register(ArcGisFeatureMapLayerFormat);\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"mapLayersFormats.js","sourceRoot":"","sources":["../../src/mapLayersFormats.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;;;AAE/F;;GAEG;AACH,sDAA6C;AAC7C,wDAAiD;AACjD,6EAAkF;AAElF;;GAEG;AACH,MAAa,gBAAgB;IAC3B;;;OAGG;IACI,MAAM,CAAC,UAAU;QACtB,IAAA,qBAAM,EAAC,yBAAS,CAAC,WAAW,EAAE,kGAAkG,CAAC,CAAC;QAClI,IAAI,yBAAS,CAAC,WAAW;YACvB,yBAAS,CAAC,sBAAsB,CAAC,QAAQ,CAAC,iDAA2B,CAAC,CAAC;IAC3E,CAAC;CACF;AAVD,4CAUC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n\r\n/** @packageDocumentation\r\n * @module MapLayersFormats\r\n */\r\nimport { assert } from \"@itwin/core-bentley\";\r\nimport { IModelApp } from \"@itwin/core-frontend\";\r\nimport { ArcGisFeatureMapLayerFormat } from \"./ArcGisFeature/ArcGisFeatureFormat\";\r\n\r\n/** The primary API for the `@itwin/map-layers-formats` package. It allows the package's features to be [[initialize]]d.\r\n * @beta\r\n */\r\nexport class MapLayersFormats {\r\n /** Registers the [MapLayerFormat]($frontend)s provided by this package for use with [IModelApp]($frontend).\r\n * Typically, an application will call `MapLayersFormats.initialize` immediately after [IModelApp.startup]($frontend).\r\n * This function has no effect if called **before** [IModelApp.startup]($frontend) or **after** [IModelApp.shutdown]($frontend).\r\n */\r\n public static initialize() {\r\n assert(IModelApp.initialized, \"MapLayersFormats.initialize must be called after IModelApp.startup and before IModelApp.shutdown\");\r\n if (IModelApp.initialized)\r\n IModelApp.mapLayerFormatRegistry.register(ArcGisFeatureMapLayerFormat);\r\n }\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ArcGisFeatureFeatureFormats.test.js","sourceRoot":"","sources":["../../../../src/test/ArcGisFeature/ArcGisFeatureFeatureFormats.test.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;;AAE/F,oDAA2D;AAC3D,wDAG8B;AAC9B,+BAA8B;AAC9B,iFAAsF;AACtF,mCAAkD;AAClD,+BAA+B;AAE/B,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAEhC,MAAM,OAAO,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC;IAEtC,SAAS,CAAC,KAAK,IAAI,EAAE;QACnB,OAAO,CAAC,OAAO,EAAE,CAAC;IACpB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8BAA8B,EAAE,KAAK,IAAI,EAAE;QAC5C,MAAM,QAAQ,GAAG,iDAA2B,CAAC,qBAAqB,CAAC,mCAAqB,CAAC,QAAQ,CAAC,+BAAuB,CAAC,CAAC,CAAC;QAC5H,IAAA,aAAM,EAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uBAAuB,EAAE,KAAK,IAAI,EAAE;QAErC,MAAM,UAAU,GAAG,KAAK,EAAE,IAAY,EAAE,SAAiB,EAAC,OAAiB,EAAE,SAAkB,EAAE,SAAkB,EAAE,YAAsB,EAAE,EAAE;YAC7I,OAAO,EAAC,MAAM,EAAE,oCAAoB,CAAC,KAAK,EAAC,CAAC;QAE9C,CAAC,CAAC;QACF,MAAM,kBAAkB,GAAG,KAAK,CAAC,IAAI,CAAC,+BAAe,EAAE,gBAAgB,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAE/F,MAAM,iDAA2B,CAAC,cAAc,CAAC,+BAAuB,CAAC,GAAG,CAAC,CAAC;QAE9E,IAAA,aAAM,EAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QACjD,MAAM,SAAS,GAAG,kBAAkB,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;QACnD,IAAA,aAAM,EAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,+BAAuB,CAAC,GAAG,CAAC,CAAC;QACjE,IAAA,aAAM,EAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,iDAA2B,CAAC,QAAQ,CAAC,CAAC;QAC1E,IAAA,aAAM,EAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;AAEL,CAAC,CAAC,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n\nimport { ImageMapLayerSettings } from \"@itwin/core-common\";\nimport {\n ArcGisUtilities,\n MapLayerSourceStatus,\n} from \"@itwin/core-frontend\";\nimport { expect } from \"chai\";\nimport { ArcGisFeatureMapLayerFormat } from \"../../ArcGisFeature/ArcGisFeatureFormat\";\nimport { esriFeatureSampleSource } from \"./Mocks\";\nimport * as sinon from \"sinon\";\n\ndescribe(\"ArcGisFeaturePBF\", () => {\n\n const sandbox = sinon.createSandbox();\n\n afterEach(async () => {\n sandbox.restore();\n });\n\n it(\"should createImageryProvider\", async () => {\n const provider = ArcGisFeatureMapLayerFormat.createImageryProvider(ImageMapLayerSettings.fromJSON(esriFeatureSampleSource));\n expect(provider).to.not.undefined;\n });\n\n it(\"should validateSource\", async () => {\n\n const fakeMethod = async (_url: string, _formatId: string,_filter: string[], _userName?: string, _password?: string, _ignoreCache?: boolean) => {\n return {status: MapLayerSourceStatus.Valid};\n\n };\n const validateSourceStub = sinon.stub(ArcGisUtilities, \"validateSource\").callsFake(fakeMethod);\n\n await ArcGisFeatureMapLayerFormat.validateSource(esriFeatureSampleSource.url);\n\n expect(validateSourceStub.calledOnce).to.be.true;\n const firstCall = validateSourceStub.getCalls()[0];\n expect(firstCall.args[0]).to.equals(esriFeatureSampleSource.url);\n expect(firstCall.args[1]).to.equals(ArcGisFeatureMapLayerFormat.formatId);\n expect(firstCall.args[2]).to.eqls([\"query\"]);\n });\n\n});\n"]}
|
|
1
|
+
{"version":3,"file":"ArcGisFeatureFeatureFormats.test.js","sourceRoot":"","sources":["../../../../src/test/ArcGisFeature/ArcGisFeatureFeatureFormats.test.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;;AAE/F,oDAA2D;AAC3D,wDAG8B;AAC9B,+BAA8B;AAC9B,iFAAsF;AACtF,mCAAkD;AAClD,+BAA+B;AAE/B,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAEhC,MAAM,OAAO,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC;IAEtC,SAAS,CAAC,KAAK,IAAI,EAAE;QACnB,OAAO,CAAC,OAAO,EAAE,CAAC;IACpB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8BAA8B,EAAE,KAAK,IAAI,EAAE;QAC5C,MAAM,QAAQ,GAAG,iDAA2B,CAAC,qBAAqB,CAAC,mCAAqB,CAAC,QAAQ,CAAC,+BAAuB,CAAC,CAAC,CAAC;QAC5H,IAAA,aAAM,EAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uBAAuB,EAAE,KAAK,IAAI,EAAE;QAErC,MAAM,UAAU,GAAG,KAAK,EAAE,IAAY,EAAE,SAAiB,EAAC,OAAiB,EAAE,SAAkB,EAAE,SAAkB,EAAE,YAAsB,EAAE,EAAE;YAC7I,OAAO,EAAC,MAAM,EAAE,oCAAoB,CAAC,KAAK,EAAC,CAAC;QAE9C,CAAC,CAAC;QACF,MAAM,kBAAkB,GAAG,KAAK,CAAC,IAAI,CAAC,+BAAe,EAAE,gBAAgB,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAE/F,MAAM,iDAA2B,CAAC,cAAc,CAAC,+BAAuB,CAAC,GAAG,CAAC,CAAC;QAE9E,IAAA,aAAM,EAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QACjD,MAAM,SAAS,GAAG,kBAAkB,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;QACnD,IAAA,aAAM,EAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,+BAAuB,CAAC,GAAG,CAAC,CAAC;QACjE,IAAA,aAAM,EAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,iDAA2B,CAAC,QAAQ,CAAC,CAAC;QAC1E,IAAA,aAAM,EAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;AAEL,CAAC,CAAC,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n\r\nimport { ImageMapLayerSettings } from \"@itwin/core-common\";\r\nimport {\r\n ArcGisUtilities,\r\n MapLayerSourceStatus,\r\n} from \"@itwin/core-frontend\";\r\nimport { expect } from \"chai\";\r\nimport { ArcGisFeatureMapLayerFormat } from \"../../ArcGisFeature/ArcGisFeatureFormat\";\r\nimport { esriFeatureSampleSource } from \"./Mocks\";\r\nimport * as sinon from \"sinon\";\r\n\r\ndescribe(\"ArcGisFeaturePBF\", () => {\r\n\r\n const sandbox = sinon.createSandbox();\r\n\r\n afterEach(async () => {\r\n sandbox.restore();\r\n });\r\n\r\n it(\"should createImageryProvider\", async () => {\r\n const provider = ArcGisFeatureMapLayerFormat.createImageryProvider(ImageMapLayerSettings.fromJSON(esriFeatureSampleSource));\r\n expect(provider).to.not.undefined;\r\n });\r\n\r\n it(\"should validateSource\", async () => {\r\n\r\n const fakeMethod = async (_url: string, _formatId: string,_filter: string[], _userName?: string, _password?: string, _ignoreCache?: boolean) => {\r\n return {status: MapLayerSourceStatus.Valid};\r\n\r\n };\r\n const validateSourceStub = sinon.stub(ArcGisUtilities, \"validateSource\").callsFake(fakeMethod);\r\n\r\n await ArcGisFeatureMapLayerFormat.validateSource(esriFeatureSampleSource.url);\r\n\r\n expect(validateSourceStub.calledOnce).to.be.true;\r\n const firstCall = validateSourceStub.getCalls()[0];\r\n expect(firstCall.args[0]).to.equals(esriFeatureSampleSource.url);\r\n expect(firstCall.args[1]).to.equals(ArcGisFeatureMapLayerFormat.formatId);\r\n expect(firstCall.args[2]).to.eqls([\"query\"]);\r\n });\r\n\r\n});\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ArcGisFeatureJSON.test.js","sourceRoot":"","sources":["../../../../src/test/ArcGisFeature/ArcGisFeatureJSON.test.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n\nimport { Logger } from \"@itwin/core-bentley\";\nimport { ImageMapLayerSettings } from \"@itwin/core-common\";\nimport { MapLayerFeatureInfo } from \"@itwin/core-frontend\";\nimport { expect } from \"chai\";\nimport * as sinon from \"sinon\";\nimport { ArcGisFeatureMapLayerFormat } from \"../../ArcGisFeature/ArcGisFeatureFormat\";\nimport { ArcGisFeatureJSON } from \"../../ArcGisFeature/ArcGisFeatureJSON\";\nimport { ArcGisFeatureGeometryType } from \"../../ArcGisFeature/ArcGisFeatureQuery\";\nimport { ArcGisFeatureRenderer } from \"../../ArcGisFeature/ArcGisFeatureRenderer\";\nimport { ArcGisSymbologyRenderer } from \"../../ArcGisFeature/ArcGisSymbologyRenderer\";\nimport { fakeContext } from \"./Mocks\";\nimport { PhillyLandmarksDataset } from \"./PhillyLandmarksDataset\";\n\nconst esriFeatureSampleSource = {name: \"dummyFeatureLayer\", url: \"https://dummy.com\", formatId: ArcGisFeatureMapLayerFormat.formatId};\n\nconst createFeatureJSON = () => {\n const settings = ImageMapLayerSettings.fromJSON(esriFeatureSampleSource);\n const featurePbf = new ArcGisFeatureJSON(settings, {name: \"SampleLayer\"});\n\n // Locale configuration depends on the testing machine (i.e. linux vs windows),\n // so we need to force date display to Iso to get a consistent value.\n // In real scenario, we still want dates to be displayed in end-user's locale.\n featurePbf.forceDateDisplayValueToIso = true;\n return featurePbf;\n};\n\ndescribe(\"ArcGisFeatureJSON\", () => {\n\n const sandbox = sinon.createSandbox();\n\n afterEach(async () => {\n sandbox.restore();\n });\n\n it(\"should read FeatureInfo in JSON (phillyTansportation)\", async () => {\n const featureJson = createFeatureJSON();\n // In some cases, PBF gives more floating-point precision than JSON.\n // Since I want to use the same output reference for both formats, I force a max precision of 8.\n featureJson.floatPrecision = 8;\n const results: MapLayerFeatureInfo[] = [];\n featureJson.readFeatureInfo({data: PhillyLandmarksDataset.phillyTransportationGetFeatureInfoQueryJson, exceedTransferLimit: false}, results);\n expect(JSON.stringify(results)).equals(JSON.stringify(PhillyLandmarksDataset.phillyTansportationGetFeatureInfoResultRef));\n });\n\n it(\"should read FeatureInfo in JSON (phillyAirport)\", async () => {\n const settings = ImageMapLayerSettings.fromJSON(esriFeatureSampleSource);\n const featureJson = new ArcGisFeatureJSON(settings, {name: \"SampleLayer\"});\n // In some cases, PBF gives more floating-point precision than JSON.\n // Since I want to use the same output reference for both formats, I force a max precision of 8.\n featureJson.floatPrecision = 8;\n const results: MapLayerFeatureInfo[] = [];\n const data = JSON.parse(PhillyLandmarksDataset.phillyAirportGetFeatureInfoQueryJson);\n featureJson.readFeatureInfo({data, exceedTransferLimit: false}, results);\n const _test = JSON.stringify(results);\n expect(_test).equals(JSON.stringify(PhillyLandmarksDataset.phillyAirportGetFeatureInfoResultRef));\n });\n\n it(\"should deflate coordinates array\", async () => {\n // Simple deflate stride = 2\n let doubleArray = [[1,2], [3,4]];\n let deflated: number[] = [];\n let offset = (ArcGisFeatureJSON as any).deflateCoordinates(doubleArray, deflated, 2, 0);\n expect(offset).to.equals(4);\n expect(deflated).to.eql([1,2,3,4]);\n\n /// Check offset with stride = 2\n doubleArray = [[5,6]];\n offset = (ArcGisFeatureJSON as any).deflateCoordinates(doubleArray, deflated, 2, offset);\n expect(offset).to.equals(6);\n expect(deflated).to.eql([1,2,3,4,5,6]);\n\n // Simple deflate stride = 3\n doubleArray = [[1,2,3], [4,5,6]];\n deflated = [];\n offset = (ArcGisFeatureJSON as any).deflateCoordinates(doubleArray, deflated, 3, 0);\n expect(offset).to.equals(6);\n expect(deflated).to.eql([1,2,3,4,5,6]);\n\n /// Check offset with stride = 3\n doubleArray = [[7,8,9]];\n offset = (ArcGisFeatureJSON as any).deflateCoordinates(doubleArray, deflated, 3, offset);\n expect(offset).to.equals(9);\n expect(deflated).to.eql([1,2,3,4,5,6,7,8,9]);\n });\n\n it(\"should readAndRender single ring polygon feature\", async () => {\n const featureJson = createFeatureJSON();\n\n const data = PhillyLandmarksDataset.phillySimplePolyQueryJson;\n\n const symbolRenderer = new ArcGisSymbologyRenderer(data.geometryType as ArcGisFeatureGeometryType, PhillyLandmarksDataset.phillySimplePolyDrawingInfo.drawingInfo.renderer);\n\n const featureRenderer = new ArcGisFeatureRenderer(fakeContext, symbolRenderer);\n const renderPathSpy = sinon.spy(featureRenderer, \"renderPath\");\n featureJson.readAndRender({data, exceedTransferLimit: false}, featureRenderer);\n expect(renderPathSpy.calledOnce);\n\n const firstCall = renderPathSpy.getCalls()[0];\n expect(firstCall.args[0]).to.eql(PhillyLandmarksDataset.phillySimplePolyQueryPbf.queryResult.featureResult.features[0].geometry.lengths); // geometryLengths\n expect(firstCall.args[1]).to.eql(PhillyLandmarksDataset.phillySimplePolyQueryPbf.queryResult.featureResult.features[0].geometry.coords); // geometryCoords\n expect(firstCall.args[2]).to.eql(true); // fill\n expect(firstCall.args[3]).to.eql(2); // stride\n });\n\n it(\"should readAndRender multiple ring polygon feature\", async () => {\n const featureJson = createFeatureJSON();\n\n const data = PhillyLandmarksDataset.phillyDoubleRingPolyQueryJson;\n\n const symbolRenderer = new ArcGisSymbologyRenderer(data.geometryType as ArcGisFeatureGeometryType, PhillyLandmarksDataset.phillySimplePolyDrawingInfo.drawingInfo.renderer);\n\n const featureRenderer = new ArcGisFeatureRenderer(fakeContext, symbolRenderer);\n const renderPathSpy = sinon.spy(featureRenderer, \"renderPath\");\n featureJson.readAndRender({data, exceedTransferLimit: false}, featureRenderer);\n expect(renderPathSpy.calledOnce);\n\n const firstCall = renderPathSpy.getCalls()[0];\n expect(firstCall.args[0]).to.eql(PhillyLandmarksDataset.phillyDoubleRingPolyQueryPbf.queryResult.featureResult.features[0].geometry.lengths); // geometryLengths\n expect(firstCall.args[1]).to.eql(PhillyLandmarksDataset.phillyDoubleRingPolyQueryPbf.queryResult.featureResult.features[0].geometry.coords); // geometryCoords\n expect(firstCall.args[2]).to.eql(true); // fill\n expect(firstCall.args[3]).to.eql(2); // stride\n });\n\n it(\"should readAndRender simple path\", async () => {\n const featureJson = createFeatureJSON();\n const data = PhillyLandmarksDataset.phillySimplePathQueryJson;\n const symbolRenderer = new ArcGisSymbologyRenderer(data.geometryType as ArcGisFeatureGeometryType,\n PhillyLandmarksDataset.phillySimpleLineDrawingInfo.drawingInfo.renderer);\n\n const featureRenderer = new ArcGisFeatureRenderer(fakeContext, symbolRenderer);\n const renderPathSpy = sinon.spy(featureRenderer, \"renderPath\");\n featureJson.readAndRender({data, exceedTransferLimit: false}, featureRenderer);\n expect(renderPathSpy.calledOnce);\n\n const geometryCoords = [360,491,-2,-1,-1,0,-1,0,-1,0,-1,1,-4,1,-10,2,-15,3,-1,0,-1,0,-2,0,-1,0,-1,0,-1,-1,-1,0,-2,-1,0,-1,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0];\n const firstCall = renderPathSpy.getCalls()[0];\n expect(firstCall.args[0]).to.eql([24]); // geometryLengths\n expect(firstCall.args[1]).to.eql(geometryCoords); // geometryCoords\n expect(firstCall.args[2]).to.eql(false); // fill\n expect(firstCall.args[3]).to.eql(2); // stride\n });\n\n it(\"should readAndRender multi path\", async () => {\n const featureJson = createFeatureJSON();\n const data = PhillyLandmarksDataset.phillyMultiPathQueryJson;\n const symbolRenderer = new ArcGisSymbologyRenderer(data.geometryType as ArcGisFeatureGeometryType, PhillyLandmarksDataset.phillySimpleLineDrawingInfo.drawingInfo.renderer);\n\n const featureRenderer = new ArcGisFeatureRenderer(fakeContext, symbolRenderer);\n const renderPathSpy = sinon.spy(featureRenderer, \"renderPath\");\n featureJson.readAndRender({data, exceedTransferLimit: false}, featureRenderer);\n expect(renderPathSpy.calledOnce);\n\n // Pbf contains already the right output format expect, lets rely on that.\n const firstCall = renderPathSpy.getCalls()[0];\n expect(firstCall.args[0]).to.eql(PhillyLandmarksDataset.phillyMultiPathQueryPbf.queryResult.featureResult.features[0].geometry.lengths);\n expect(firstCall.args[1]).to.eql(PhillyLandmarksDataset.phillyMultiPathQueryPbf.queryResult.featureResult.features[0].geometry.coords);\n expect(firstCall.args[2]).to.eql(false); // fill\n expect(firstCall.args[3]).to.eql(2); // stride\n });\n\n it(\"should readAndRender simple point\", async () => {\n const featureJson = createFeatureJSON();\n const data = PhillyLandmarksDataset.phillySimplePointQueryJson;\n const symbolRenderer = new ArcGisSymbologyRenderer(\n data.geometryType as ArcGisFeatureGeometryType,\n PhillyLandmarksDataset.phillySimplePointDrawingInfo.drawingInfo.renderer);\n\n const featureRenderer = new ArcGisFeatureRenderer(fakeContext, symbolRenderer);\n const spy = sinon.spy(featureRenderer, \"renderPoint\");\n featureJson.readAndRender({data, exceedTransferLimit: false}, featureRenderer);\n expect(spy.calledOnce);\n\n // Pbf contains already the right output format expect, lets rely on that.\n const geometryCoords = PhillyLandmarksDataset.phillySimplePointQueryPbf.queryResult.featureResult.features[0].geometry.coords;\n const firstCall = spy.getCalls()[0];\n expect(firstCall.args[0]).to.eql(PhillyLandmarksDataset.phillySimplePointQueryPbf.queryResult.featureResult.features[0].geometry.lengths); // geometryLengths\n expect(firstCall.args[1]).to.eql(geometryCoords); // geometryCoords\n expect(firstCall.args[2]).to.eql(2); // stride\n });\n\n it(\"should log error when readAndRender / readFeatureInfo is called invalid response Data\", async () => {\n const featureJson = createFeatureJSON();\n const symbolRenderer = new ArcGisSymbologyRenderer(\n \"esriGeometryAny\",\n PhillyLandmarksDataset.phillySimplePointDrawingInfo.drawingInfo.renderer);\n\n const featureRenderer = new ArcGisFeatureRenderer(fakeContext, symbolRenderer);\n const logErrorSpy = sandbox.spy(Logger, \"logError\");\n featureJson.readAndRender({data: {test:\"test\"}, exceedTransferLimit: false}, featureRenderer);\n expect(logErrorSpy.calledOnce);\n\n logErrorSpy.resetHistory();\n featureJson.readFeatureInfo({data: {test:\"test\"}, exceedTransferLimit: false}, []);\n expect(logErrorSpy.calledOnce);\n\n });\n});\n"]}
|
|
1
|
+
{"version":3,"file":"ArcGisFeatureJSON.test.js","sourceRoot":"","sources":["../../../../src/test/ArcGisFeature/ArcGisFeatureJSON.test.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n\r\nimport { Logger } from \"@itwin/core-bentley\";\r\nimport { ImageMapLayerSettings } from \"@itwin/core-common\";\r\nimport { MapLayerFeatureInfo } from \"@itwin/core-frontend\";\r\nimport { expect } from \"chai\";\r\nimport * as sinon from \"sinon\";\r\nimport { ArcGisFeatureMapLayerFormat } from \"../../ArcGisFeature/ArcGisFeatureFormat\";\r\nimport { ArcGisFeatureJSON } from \"../../ArcGisFeature/ArcGisFeatureJSON\";\r\nimport { ArcGisFeatureGeometryType } from \"../../ArcGisFeature/ArcGisFeatureQuery\";\r\nimport { ArcGisFeatureRenderer } from \"../../ArcGisFeature/ArcGisFeatureRenderer\";\r\nimport { ArcGisSymbologyRenderer } from \"../../ArcGisFeature/ArcGisSymbologyRenderer\";\r\nimport { fakeContext } from \"./Mocks\";\r\nimport { PhillyLandmarksDataset } from \"./PhillyLandmarksDataset\";\r\n\r\nconst esriFeatureSampleSource = {name: \"dummyFeatureLayer\", url: \"https://dummy.com\", formatId: ArcGisFeatureMapLayerFormat.formatId};\r\n\r\nconst createFeatureJSON = () => {\r\n const settings = ImageMapLayerSettings.fromJSON(esriFeatureSampleSource);\r\n const featurePbf = new ArcGisFeatureJSON(settings, {name: \"SampleLayer\"});\r\n\r\n // Locale configuration depends on the testing machine (i.e. linux vs windows),\r\n // so we need to force date display to Iso to get a consistent value.\r\n // In real scenario, we still want dates to be displayed in end-user's locale.\r\n featurePbf.forceDateDisplayValueToIso = true;\r\n return featurePbf;\r\n};\r\n\r\ndescribe(\"ArcGisFeatureJSON\", () => {\r\n\r\n const sandbox = sinon.createSandbox();\r\n\r\n afterEach(async () => {\r\n sandbox.restore();\r\n });\r\n\r\n it(\"should read FeatureInfo in JSON (phillyTansportation)\", async () => {\r\n const featureJson = createFeatureJSON();\r\n // In some cases, PBF gives more floating-point precision than JSON.\r\n // Since I want to use the same output reference for both formats, I force a max precision of 8.\r\n featureJson.floatPrecision = 8;\r\n const results: MapLayerFeatureInfo[] = [];\r\n featureJson.readFeatureInfo({data: PhillyLandmarksDataset.phillyTransportationGetFeatureInfoQueryJson, exceedTransferLimit: false}, results);\r\n expect(JSON.stringify(results)).equals(JSON.stringify(PhillyLandmarksDataset.phillyTansportationGetFeatureInfoResultRef));\r\n });\r\n\r\n it(\"should read FeatureInfo in JSON (phillyAirport)\", async () => {\r\n const settings = ImageMapLayerSettings.fromJSON(esriFeatureSampleSource);\r\n const featureJson = new ArcGisFeatureJSON(settings, {name: \"SampleLayer\"});\r\n // In some cases, PBF gives more floating-point precision than JSON.\r\n // Since I want to use the same output reference for both formats, I force a max precision of 8.\r\n featureJson.floatPrecision = 8;\r\n const results: MapLayerFeatureInfo[] = [];\r\n const data = JSON.parse(PhillyLandmarksDataset.phillyAirportGetFeatureInfoQueryJson);\r\n featureJson.readFeatureInfo({data, exceedTransferLimit: false}, results);\r\n const _test = JSON.stringify(results);\r\n expect(_test).equals(JSON.stringify(PhillyLandmarksDataset.phillyAirportGetFeatureInfoResultRef));\r\n });\r\n\r\n it(\"should deflate coordinates array\", async () => {\r\n // Simple deflate stride = 2\r\n let doubleArray = [[1,2], [3,4]];\r\n let deflated: number[] = [];\r\n let offset = (ArcGisFeatureJSON as any).deflateCoordinates(doubleArray, deflated, 2, 0);\r\n expect(offset).to.equals(4);\r\n expect(deflated).to.eql([1,2,3,4]);\r\n\r\n /// Check offset with stride = 2\r\n doubleArray = [[5,6]];\r\n offset = (ArcGisFeatureJSON as any).deflateCoordinates(doubleArray, deflated, 2, offset);\r\n expect(offset).to.equals(6);\r\n expect(deflated).to.eql([1,2,3,4,5,6]);\r\n\r\n // Simple deflate stride = 3\r\n doubleArray = [[1,2,3], [4,5,6]];\r\n deflated = [];\r\n offset = (ArcGisFeatureJSON as any).deflateCoordinates(doubleArray, deflated, 3, 0);\r\n expect(offset).to.equals(6);\r\n expect(deflated).to.eql([1,2,3,4,5,6]);\r\n\r\n /// Check offset with stride = 3\r\n doubleArray = [[7,8,9]];\r\n offset = (ArcGisFeatureJSON as any).deflateCoordinates(doubleArray, deflated, 3, offset);\r\n expect(offset).to.equals(9);\r\n expect(deflated).to.eql([1,2,3,4,5,6,7,8,9]);\r\n });\r\n\r\n it(\"should readAndRender single ring polygon feature\", async () => {\r\n const featureJson = createFeatureJSON();\r\n\r\n const data = PhillyLandmarksDataset.phillySimplePolyQueryJson;\r\n\r\n const symbolRenderer = new ArcGisSymbologyRenderer(data.geometryType as ArcGisFeatureGeometryType, PhillyLandmarksDataset.phillySimplePolyDrawingInfo.drawingInfo.renderer);\r\n\r\n const featureRenderer = new ArcGisFeatureRenderer(fakeContext, symbolRenderer);\r\n const renderPathSpy = sinon.spy(featureRenderer, \"renderPath\");\r\n featureJson.readAndRender({data, exceedTransferLimit: false}, featureRenderer);\r\n expect(renderPathSpy.calledOnce);\r\n\r\n const firstCall = renderPathSpy.getCalls()[0];\r\n expect(firstCall.args[0]).to.eql(PhillyLandmarksDataset.phillySimplePolyQueryPbf.queryResult.featureResult.features[0].geometry.lengths); // geometryLengths\r\n expect(firstCall.args[1]).to.eql(PhillyLandmarksDataset.phillySimplePolyQueryPbf.queryResult.featureResult.features[0].geometry.coords); // geometryCoords\r\n expect(firstCall.args[2]).to.eql(true); // fill\r\n expect(firstCall.args[3]).to.eql(2); // stride\r\n });\r\n\r\n it(\"should readAndRender multiple ring polygon feature\", async () => {\r\n const featureJson = createFeatureJSON();\r\n\r\n const data = PhillyLandmarksDataset.phillyDoubleRingPolyQueryJson;\r\n\r\n const symbolRenderer = new ArcGisSymbologyRenderer(data.geometryType as ArcGisFeatureGeometryType, PhillyLandmarksDataset.phillySimplePolyDrawingInfo.drawingInfo.renderer);\r\n\r\n const featureRenderer = new ArcGisFeatureRenderer(fakeContext, symbolRenderer);\r\n const renderPathSpy = sinon.spy(featureRenderer, \"renderPath\");\r\n featureJson.readAndRender({data, exceedTransferLimit: false}, featureRenderer);\r\n expect(renderPathSpy.calledOnce);\r\n\r\n const firstCall = renderPathSpy.getCalls()[0];\r\n expect(firstCall.args[0]).to.eql(PhillyLandmarksDataset.phillyDoubleRingPolyQueryPbf.queryResult.featureResult.features[0].geometry.lengths); // geometryLengths\r\n expect(firstCall.args[1]).to.eql(PhillyLandmarksDataset.phillyDoubleRingPolyQueryPbf.queryResult.featureResult.features[0].geometry.coords); // geometryCoords\r\n expect(firstCall.args[2]).to.eql(true); // fill\r\n expect(firstCall.args[3]).to.eql(2); // stride\r\n });\r\n\r\n it(\"should readAndRender simple path\", async () => {\r\n const featureJson = createFeatureJSON();\r\n const data = PhillyLandmarksDataset.phillySimplePathQueryJson;\r\n const symbolRenderer = new ArcGisSymbologyRenderer(data.geometryType as ArcGisFeatureGeometryType,\r\n PhillyLandmarksDataset.phillySimpleLineDrawingInfo.drawingInfo.renderer);\r\n\r\n const featureRenderer = new ArcGisFeatureRenderer(fakeContext, symbolRenderer);\r\n const renderPathSpy = sinon.spy(featureRenderer, \"renderPath\");\r\n featureJson.readAndRender({data, exceedTransferLimit: false}, featureRenderer);\r\n expect(renderPathSpy.calledOnce);\r\n\r\n const geometryCoords = [360,491,-2,-1,-1,0,-1,0,-1,0,-1,1,-4,1,-10,2,-15,3,-1,0,-1,0,-2,0,-1,0,-1,0,-1,-1,-1,0,-2,-1,0,-1,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0];\r\n const firstCall = renderPathSpy.getCalls()[0];\r\n expect(firstCall.args[0]).to.eql([24]); // geometryLengths\r\n expect(firstCall.args[1]).to.eql(geometryCoords); // geometryCoords\r\n expect(firstCall.args[2]).to.eql(false); // fill\r\n expect(firstCall.args[3]).to.eql(2); // stride\r\n });\r\n\r\n it(\"should readAndRender multi path\", async () => {\r\n const featureJson = createFeatureJSON();\r\n const data = PhillyLandmarksDataset.phillyMultiPathQueryJson;\r\n const symbolRenderer = new ArcGisSymbologyRenderer(data.geometryType as ArcGisFeatureGeometryType, PhillyLandmarksDataset.phillySimpleLineDrawingInfo.drawingInfo.renderer);\r\n\r\n const featureRenderer = new ArcGisFeatureRenderer(fakeContext, symbolRenderer);\r\n const renderPathSpy = sinon.spy(featureRenderer, \"renderPath\");\r\n featureJson.readAndRender({data, exceedTransferLimit: false}, featureRenderer);\r\n expect(renderPathSpy.calledOnce);\r\n\r\n // Pbf contains already the right output format expect, lets rely on that.\r\n const firstCall = renderPathSpy.getCalls()[0];\r\n expect(firstCall.args[0]).to.eql(PhillyLandmarksDataset.phillyMultiPathQueryPbf.queryResult.featureResult.features[0].geometry.lengths);\r\n expect(firstCall.args[1]).to.eql(PhillyLandmarksDataset.phillyMultiPathQueryPbf.queryResult.featureResult.features[0].geometry.coords);\r\n expect(firstCall.args[2]).to.eql(false); // fill\r\n expect(firstCall.args[3]).to.eql(2); // stride\r\n });\r\n\r\n it(\"should readAndRender simple point\", async () => {\r\n const featureJson = createFeatureJSON();\r\n const data = PhillyLandmarksDataset.phillySimplePointQueryJson;\r\n const symbolRenderer = new ArcGisSymbologyRenderer(\r\n data.geometryType as ArcGisFeatureGeometryType,\r\n PhillyLandmarksDataset.phillySimplePointDrawingInfo.drawingInfo.renderer);\r\n\r\n const featureRenderer = new ArcGisFeatureRenderer(fakeContext, symbolRenderer);\r\n const spy = sinon.spy(featureRenderer, \"renderPoint\");\r\n featureJson.readAndRender({data, exceedTransferLimit: false}, featureRenderer);\r\n expect(spy.calledOnce);\r\n\r\n // Pbf contains already the right output format expect, lets rely on that.\r\n const geometryCoords = PhillyLandmarksDataset.phillySimplePointQueryPbf.queryResult.featureResult.features[0].geometry.coords;\r\n const firstCall = spy.getCalls()[0];\r\n expect(firstCall.args[0]).to.eql(PhillyLandmarksDataset.phillySimplePointQueryPbf.queryResult.featureResult.features[0].geometry.lengths); // geometryLengths\r\n expect(firstCall.args[1]).to.eql(geometryCoords); // geometryCoords\r\n expect(firstCall.args[2]).to.eql(2); // stride\r\n });\r\n\r\n it(\"should log error when readAndRender / readFeatureInfo is called invalid response Data\", async () => {\r\n const featureJson = createFeatureJSON();\r\n const symbolRenderer = new ArcGisSymbologyRenderer(\r\n \"esriGeometryAny\",\r\n PhillyLandmarksDataset.phillySimplePointDrawingInfo.drawingInfo.renderer);\r\n\r\n const featureRenderer = new ArcGisFeatureRenderer(fakeContext, symbolRenderer);\r\n const logErrorSpy = sandbox.spy(Logger, \"logError\");\r\n featureJson.readAndRender({data: {test:\"test\"}, exceedTransferLimit: false}, featureRenderer);\r\n expect(logErrorSpy.calledOnce);\r\n\r\n logErrorSpy.resetHistory();\r\n featureJson.readFeatureInfo({data: {test:\"test\"}, exceedTransferLimit: false}, []);\r\n expect(logErrorSpy.calledOnce);\r\n\r\n });\r\n});\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ArcGisFeaturePBF.test.js","sourceRoot":"","sources":["../../../../src/test/ArcGisFeature/ArcGisFeaturePBF.test.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n\nimport { Logger } from \"@itwin/core-bentley\";\nimport { Base64EncodedString, ImageMapLayerSettings } from \"@itwin/core-common\";\nimport { MapLayerFeatureInfo } from \"@itwin/core-frontend\";\nimport { expect } from \"chai\";\nimport * as sinon from \"sinon\";\nimport { ArcGisFeaturePBF } from \"../../ArcGisFeature/ArcGisFeaturePBF\";\nimport { ArcGisFeatureRenderer } from \"../../ArcGisFeature/ArcGisFeatureRenderer\";\nimport { ArcGisSymbologyRenderer } from \"../../ArcGisFeature/ArcGisSymbologyRenderer\";\nimport { esriPBuffer } from \"../../ArcGisFeature/esriPBuffer.gen\";\nimport { esriFeatureSampleSource, fakeContext } from \"./Mocks\";\nimport { PhillyLandmarksDataset } from \"./PhillyLandmarksDataset\";\n\nconst createFeaturePBF = () => {\n const settings = ImageMapLayerSettings.fromJSON(esriFeatureSampleSource);\n const featurePbf = new ArcGisFeaturePBF(settings, {name: \"SampleLayer\"});\n\n // Locale configuration depends on the testing machine (i.e. linux vs windows),\n // so we need to force date display to Iso to get a consistent value.\n // In real scenario, we still want dates to be displayed in end-user's locale.\n featurePbf.forceDateDisplayValueToIso = true;\n return featurePbf;\n};\n\ndescribe(\"ArcGisFeaturePBF\", () => {\n\n const sandbox = sinon.createSandbox();\n\n afterEach(async () => {\n sandbox.restore();\n });\n\n it(\"should convert pbf geometry type to Esri types\", async () => {\n\n expect (\n ArcGisFeaturePBF.getArcGisFeatureGeometryType(esriPBuffer.FeatureCollectionPBuffer.GeometryType.esriGeometryTypeMultipatch))\n .to.equals(\"esriGeometryMultiPatch\");\n\n expect (\n ArcGisFeaturePBF.getArcGisFeatureGeometryType(esriPBuffer.FeatureCollectionPBuffer.GeometryType.esriGeometryTypeMultipoint))\n .to.equals(\"esriGeometryMultipoint\");\n\n expect (\n ArcGisFeaturePBF.getArcGisFeatureGeometryType(esriPBuffer.FeatureCollectionPBuffer.GeometryType.esriGeometryTypePoint))\n .to.equals(\"esriGeometryPoint\");\n\n expect (\n ArcGisFeaturePBF.getArcGisFeatureGeometryType(esriPBuffer.FeatureCollectionPBuffer.GeometryType.esriGeometryTypePolygon))\n .to.equals(\"esriGeometryPolygon\");\n\n expect (\n ArcGisFeaturePBF.getArcGisFeatureGeometryType(esriPBuffer.FeatureCollectionPBuffer.GeometryType.esriGeometryTypePolyline))\n .to.equals(\"esriGeometryPolyline\");\n\n expect (\n ArcGisFeaturePBF.getArcGisFeatureGeometryType(\"\" as unknown as esriPBuffer.FeatureCollectionPBuffer.GeometryType))\n .to.equals(\"esriGeometryNull\");\n\n });\n\n it(\"should read FeatureInfo in PBF\", async () => {\n const byteArray = Base64EncodedString.toUint8Array(PhillyLandmarksDataset.phillyAirportGetFeatureInfoQueryPbf);\n const featureCollection = esriPBuffer.FeatureCollectionPBuffer.deserialize(byteArray);\n\n const settings = ImageMapLayerSettings.fromJSON(esriFeatureSampleSource);\n const featurePbf = new ArcGisFeaturePBF(settings, {name: \"SampleLayer\"});\n\n // In some cases, PBF gives more floating-point precision than JSON.\n // Since I want to use the same output reference for both formats, I force a max precision of 8.\n featurePbf.floatPrecision = 8;\n const results: MapLayerFeatureInfo[] = [];\n featurePbf.readFeatureInfo({data:featureCollection, exceedTransferLimit: false}, results);\n\n // Make deep comparison by using JSON.stringify\n expect(JSON.stringify(results)).equals(JSON.stringify(PhillyLandmarksDataset.phillyAirportGetFeatureInfoResultRef));\n\n });\n\n it(\"should read FeatureInfo from PBF (philly transportation)\", async () => {\n\n const byteArray = Base64EncodedString.toUint8Array(PhillyLandmarksDataset.phillyTransportationGetFeatureInfoQueryEncodedPbf);\n const featureCollection = esriPBuffer.FeatureCollectionPBuffer.deserialize(byteArray);\n const featurePbf = createFeaturePBF();\n\n // In some cases, PBF gives more floating-point precision than JSON.\n // Since I want to use the same output reference for both formats, I force a max precision.\n featurePbf.floatPrecision = 2;\n const results: MapLayerFeatureInfo[] = [];\n featurePbf.readFeatureInfo({data:featureCollection, exceedTransferLimit: false}, results);\n\n // Make deep comparison by using JSON.stringify\n expect(JSON.stringify(results)).equals(JSON.stringify(PhillyLandmarksDataset.phillyTansportationGetFeatureInfoResultRef));\n\n });\n\n it(\"should read all data types from FeatureInfo \", async () => {\n\n // In this test we use a synthetic PBuffer object to initialize a feature collection object.\n // The is to ensure we cover correctly all possible attribute value types.\n const featureCollection = esriPBuffer.FeatureCollectionPBuffer.fromObject(PhillyLandmarksDataset.fieldsCoveragePbufferCollection);\n\n const featurePbf = createFeaturePBF();\n\n const results: MapLayerFeatureInfo[] = [];\n featurePbf.readFeatureInfo({data:featureCollection, exceedTransferLimit: false}, results);\n\n // Make deep comparison by using JSON.stringify\n expect(JSON.stringify(results)).equals(JSON.stringify(PhillyLandmarksDataset.fieldsCoverageGetFeatureInfoResultRef));\n });\n\n it(\"should readAndRender single ring polygon feature\", async () => {\n const featurePbf = createFeaturePBF();\n\n const data = esriPBuffer.FeatureCollectionPBuffer.fromObject(PhillyLandmarksDataset.phillySimplePolyQueryPbf);\n const geomType = ArcGisFeaturePBF.getArcGisFeatureGeometryType(PhillyLandmarksDataset.phillySimplePolyQueryPbf.queryResult.featureResult.geometryType);\n const symbolRenderer = new ArcGisSymbologyRenderer(geomType, PhillyLandmarksDataset.phillySimplePolyDrawingInfo.drawingInfo.renderer);\n\n const featureRenderer = new ArcGisFeatureRenderer(fakeContext, symbolRenderer);\n const renderPathSpy = sinon.spy(featureRenderer, \"renderPath\");\n featurePbf.readAndRender({data, exceedTransferLimit: false}, featureRenderer);\n expect(renderPathSpy.calledOnce);\n\n const firstCall = renderPathSpy.getCalls()[0];\n expect(firstCall.args[0]).to.eql(PhillyLandmarksDataset.phillySimplePolyQueryPbf.queryResult.featureResult.features[0].geometry.lengths); // geometryLengths\n expect(firstCall.args[1]).to.eql(PhillyLandmarksDataset.phillySimplePolyQueryPbf.queryResult.featureResult.features[0].geometry.coords); // geometryCoords\n expect(firstCall.args[2]).to.eql(true); // fill\n expect(firstCall.args[3]).to.eql(2); // stride\n });\n\n it(\"should readAndRender multiple ring polygon feature\", async () => {\n const featurePbf = createFeaturePBF();\n\n const geomType = ArcGisFeaturePBF.getArcGisFeatureGeometryType(PhillyLandmarksDataset.phillyDoubleRingPolyQueryPbf.queryResult.featureResult.geometryType);\n const data = esriPBuffer.FeatureCollectionPBuffer.fromObject(PhillyLandmarksDataset.phillyDoubleRingPolyQueryPbf);\n\n const symbolRenderer = new ArcGisSymbologyRenderer(geomType, PhillyLandmarksDataset.phillySimplePolyDrawingInfo.drawingInfo.renderer);\n\n const featureRenderer = new ArcGisFeatureRenderer(fakeContext, symbolRenderer);\n const renderPathSpy = sinon.spy(featureRenderer, \"renderPath\");\n featurePbf.readAndRender({data, exceedTransferLimit: false}, featureRenderer);\n expect(renderPathSpy.calledOnce);\n\n const firstCall = renderPathSpy.getCalls()[0];\n expect(firstCall.args[0]).to.eql(PhillyLandmarksDataset.phillyDoubleRingPolyQueryPbf.queryResult.featureResult.features[0].geometry.lengths); // geometryLengths\n expect(firstCall.args[1]).to.eql(PhillyLandmarksDataset.phillyDoubleRingPolyQueryPbf.queryResult.featureResult.features[0].geometry.coords); // geometryCoords\n expect(firstCall.args[2]).to.eql(true); // fill\n expect(firstCall.args[3]).to.eql(2); // stride\n });\n\n it(\"should readAndRender simple path\", async () => {\n const featurePbf = createFeaturePBF();\n const data = esriPBuffer.FeatureCollectionPBuffer.fromObject(PhillyLandmarksDataset.phillySimplePathQueryPbf);\n const symbolRenderer = new ArcGisSymbologyRenderer(\n ArcGisFeaturePBF.getArcGisFeatureGeometryType(PhillyLandmarksDataset.phillySimplePathQueryPbf.queryResult.featureResult.geometryType),\n PhillyLandmarksDataset.phillySimpleLineDrawingInfo.drawingInfo.renderer);\n\n const featureRenderer = new ArcGisFeatureRenderer(fakeContext, symbolRenderer);\n const renderPathSpy = sinon.spy(featureRenderer, \"renderPath\");\n featurePbf.readAndRender({data, exceedTransferLimit: false}, featureRenderer);\n expect(renderPathSpy.calledOnce);\n\n const firstCall = renderPathSpy.getCalls()[0];\n expect(firstCall).to.not.undefined;\n expect(firstCall.args[0]).to.eql(PhillyLandmarksDataset.phillySimplePathQueryPbf.queryResult.featureResult.features[0].geometry.lengths); // geometryLengths\n expect(firstCall.args[1]).to.eql(PhillyLandmarksDataset.phillySimplePathQueryPbf.queryResult.featureResult.features[0].geometry.coords); // geometryCoords\n expect(firstCall.args[2]).to.eql(false); // fill\n expect(firstCall.args[3]).to.eql(2); // stride\n });\n\n it(\"should readAndRender multi path\", async () => {\n const featurePbf = createFeaturePBF();\n const data = esriPBuffer.FeatureCollectionPBuffer.fromObject(PhillyLandmarksDataset.phillyMultiPathQueryPbf);\n const geomType = ArcGisFeaturePBF.getArcGisFeatureGeometryType(PhillyLandmarksDataset.phillyMultiPathQueryPbf.queryResult.featureResult.geometryType);\n const symbolRenderer = new ArcGisSymbologyRenderer(geomType, PhillyLandmarksDataset.phillySimpleLineDrawingInfo.drawingInfo.renderer);\n const featureRenderer = new ArcGisFeatureRenderer(fakeContext, symbolRenderer);\n const renderPathSpy = sinon.spy(featureRenderer, \"renderPath\");\n featurePbf.readAndRender({data, exceedTransferLimit: false}, featureRenderer);\n expect(renderPathSpy.calledOnce);\n\n const firstCall = renderPathSpy.getCalls()[0];\n expect(firstCall.args[0]).to.eql(PhillyLandmarksDataset.phillyMultiPathQueryPbf.queryResult.featureResult.features[0].geometry.lengths); // geometryLengths\n expect(firstCall.args[1]).to.eql(PhillyLandmarksDataset.phillyMultiPathQueryPbf.queryResult.featureResult.features[0].geometry.coords); // geometryCoords\n expect(firstCall.args[2]).to.eql(false); // fill\n expect(firstCall.args[3]).to.eql(2); // stride\n });\n\n it(\"should readAndRender simple point\", async () => {\n const featurePbf = createFeaturePBF();\n const data = esriPBuffer.FeatureCollectionPBuffer.fromObject(PhillyLandmarksDataset.phillySimplePointQueryPbf);\n const geomType = ArcGisFeaturePBF.getArcGisFeatureGeometryType(PhillyLandmarksDataset.phillyMultiPathQueryPbf.queryResult.featureResult.geometryType);\n const symbolRenderer = new ArcGisSymbologyRenderer(geomType, PhillyLandmarksDataset.phillySimplePointDrawingInfo.drawingInfo.renderer);\n\n const featureRenderer = new ArcGisFeatureRenderer(fakeContext, symbolRenderer);\n const spy = sinon.spy(featureRenderer, \"renderPoint\");\n featurePbf.readAndRender({data, exceedTransferLimit: false}, featureRenderer);\n expect(spy.calledOnce);\n\n // Pbf contains already the right output format expect, lets rely on that.\n const geometryCoords = PhillyLandmarksDataset.phillySimplePointQueryPbf.queryResult.featureResult.features[0].geometry.coords;\n const firstCall = spy.getCalls()[0];\n expect(firstCall.args[0]).to.eql(PhillyLandmarksDataset.phillySimplePointQueryPbf.queryResult.featureResult.features[0].geometry.lengths); // geometryLengths\n expect(firstCall.args[1]).to.eql(geometryCoords); // geometryCoords\n expect(firstCall.args[2]).to.eql(2); // stride\n });\n\n it(\"should log error when readAndRender / readFeatureInfo is called invalid response Data\", async () => {\n const featurePbf = createFeaturePBF();\n const symbolRenderer = new ArcGisSymbologyRenderer(\n \"esriGeometryAny\",\n PhillyLandmarksDataset.phillySimplePointDrawingInfo.drawingInfo.renderer);\n\n const featureRenderer = new ArcGisFeatureRenderer(fakeContext, symbolRenderer);\n const logErrorSpy = sandbox.spy(Logger, \"logError\");\n featurePbf.readAndRender({data: {test:\"test\"}, exceedTransferLimit: false}, featureRenderer);\n expect(logErrorSpy.calledOnce);\n\n logErrorSpy.resetHistory();\n featurePbf.readFeatureInfo({data: {test:\"test\"}, exceedTransferLimit: false}, []);\n expect(logErrorSpy.calledOnce);\n\n });\n\n});\n"]}
|
|
1
|
+
{"version":3,"file":"ArcGisFeaturePBF.test.js","sourceRoot":"","sources":["../../../../src/test/ArcGisFeature/ArcGisFeaturePBF.test.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;;AAE/F,sDAA6C;AAC7C,oDAAgF;AAEhF,+BAA8B;AAC9B,+BAA+B;AAC/B,2EAAwE;AACxE,qFAAkF;AAClF,yFAAsF;AACtF,yEAAkE;AAClE,mCAA+D;AAC/D,qEAAkE;AAElE,MAAM,gBAAgB,GAAI,GAAG,EAAE;IAC7B,MAAM,QAAQ,GAAG,mCAAqB,CAAC,QAAQ,CAAC,+BAAuB,CAAC,CAAC;IACzE,MAAM,UAAU,GAAG,IAAI,mCAAgB,CAAC,QAAQ,EAAE,EAAC,IAAI,EAAE,aAAa,EAAC,CAAC,CAAC;IAEzE,+EAA+E;IAC/E,qEAAqE;IACrE,8EAA8E;IAC9E,UAAU,CAAC,0BAA0B,GAAG,IAAI,CAAC;IAC7C,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC;AAEF,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAEhC,MAAM,OAAO,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC;IAEtC,SAAS,CAAC,KAAK,IAAI,EAAE;QACnB,OAAO,CAAC,OAAO,EAAE,CAAC;IACpB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;QAE9D,IAAA,aAAM,EACJ,mCAAgB,CAAC,4BAA4B,CAAC,6BAAW,CAAC,wBAAwB,CAAC,YAAY,CAAC,0BAA0B,CAAC,CAAC;aAC3H,EAAE,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC;QAEvC,IAAA,aAAM,EACJ,mCAAgB,CAAC,4BAA4B,CAAC,6BAAW,CAAC,wBAAwB,CAAC,YAAY,CAAC,0BAA0B,CAAC,CAAC;aAC3H,EAAE,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC;QAEvC,IAAA,aAAM,EACJ,mCAAgB,CAAC,4BAA4B,CAAC,6BAAW,CAAC,wBAAwB,CAAC,YAAY,CAAC,qBAAqB,CAAC,CAAC;aACtH,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;QAElC,IAAA,aAAM,EACJ,mCAAgB,CAAC,4BAA4B,CAAC,6BAAW,CAAC,wBAAwB,CAAC,YAAY,CAAC,uBAAuB,CAAC,CAAC;aACxH,EAAE,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;QAEpC,IAAA,aAAM,EACJ,mCAAgB,CAAC,4BAA4B,CAAC,6BAAW,CAAC,wBAAwB,CAAC,YAAY,CAAC,wBAAwB,CAAC,CAAC;aACzH,EAAE,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;QAErC,IAAA,aAAM,EACJ,mCAAgB,CAAC,4BAA4B,CAAC,EAAkE,CAAC,CAAC;aACjH,EAAE,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;IAEnC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;QAC9C,MAAM,SAAS,GAAG,iCAAmB,CAAC,YAAY,CAAC,+CAAsB,CAAC,mCAAmC,CAAC,CAAC;QAC/G,MAAM,iBAAiB,GAAG,6BAAW,CAAC,wBAAwB,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAEtF,MAAM,QAAQ,GAAG,mCAAqB,CAAC,QAAQ,CAAC,+BAAuB,CAAC,CAAC;QACzE,MAAM,UAAU,GAAG,IAAI,mCAAgB,CAAC,QAAQ,EAAE,EAAC,IAAI,EAAE,aAAa,EAAC,CAAC,CAAC;QAEzE,oEAAoE;QACpE,gGAAgG;QAChG,UAAU,CAAC,cAAc,GAAG,CAAC,CAAC;QAC9B,MAAM,OAAO,GAA0B,EAAE,CAAC;QAC1C,UAAU,CAAC,eAAe,CAAC,EAAC,IAAI,EAAC,iBAAiB,EAAE,mBAAmB,EAAE,KAAK,EAAC,EAAE,OAAO,CAAC,CAAC;QAE1F,+CAA+C;QAC/C,IAAA,aAAM,EAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,+CAAsB,CAAC,oCAAoC,CAAC,CAAC,CAAC;IAEtH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0DAA0D,EAAE,KAAK,IAAI,EAAE;QAExE,MAAM,SAAS,GAAG,iCAAmB,CAAC,YAAY,CAAC,+CAAsB,CAAC,iDAAiD,CAAC,CAAC;QAC7H,MAAM,iBAAiB,GAAG,6BAAW,CAAC,wBAAwB,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QACtF,MAAM,UAAU,GAAG,gBAAgB,EAAE,CAAC;QAEtC,oEAAoE;QACpE,2FAA2F;QAC3F,UAAU,CAAC,cAAc,GAAG,CAAC,CAAC;QAC9B,MAAM,OAAO,GAA0B,EAAE,CAAC;QAC1C,UAAU,CAAC,eAAe,CAAC,EAAC,IAAI,EAAC,iBAAiB,EAAE,mBAAmB,EAAE,KAAK,EAAC,EAAE,OAAO,CAAC,CAAC;QAE1F,+CAA+C;QAC/C,IAAA,aAAM,EAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,+CAAsB,CAAC,0CAA0C,CAAC,CAAC,CAAC;IAE5H,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;QAE5D,4FAA4F;QAC5F,0EAA0E;QAC1E,MAAM,iBAAiB,GAAG,6BAAW,CAAC,wBAAwB,CAAC,UAAU,CAAC,+CAAsB,CAAC,+BAA+B,CAAC,CAAC;QAElI,MAAM,UAAU,GAAG,gBAAgB,EAAE,CAAC;QAEtC,MAAM,OAAO,GAA0B,EAAE,CAAC;QAC1C,UAAU,CAAC,eAAe,CAAC,EAAC,IAAI,EAAC,iBAAiB,EAAE,mBAAmB,EAAE,KAAK,EAAC,EAAE,OAAO,CAAC,CAAC;QAE1F,+CAA+C;QAC/C,IAAA,aAAM,EAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,+CAAsB,CAAC,qCAAqC,CAAC,CAAC,CAAC;IACvH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;QAChE,MAAM,UAAU,GAAG,gBAAgB,EAAE,CAAC;QAEtC,MAAM,IAAI,GAAG,6BAAW,CAAC,wBAAwB,CAAC,UAAU,CAAC,+CAAsB,CAAC,wBAAwB,CAAC,CAAC;QAC9G,MAAM,QAAQ,GAAG,mCAAgB,CAAC,4BAA4B,CAAC,+CAAsB,CAAC,wBAAwB,CAAC,WAAW,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;QACvJ,MAAM,cAAc,GAAG,IAAI,iDAAuB,CAAC,QAAQ,EAAE,+CAAsB,CAAC,2BAA2B,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAEtI,MAAM,eAAe,GAAG,IAAI,6CAAqB,CAAC,mBAAW,EAAE,cAAc,CAAC,CAAC;QAC/E,MAAM,aAAa,GAAG,KAAK,CAAC,GAAG,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC;QAC/D,UAAU,CAAC,aAAa,CAAC,EAAC,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAC,EAAE,eAAe,CAAC,CAAC;QAC9E,IAAA,aAAM,EAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QAEjC,MAAM,SAAS,GAAG,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;QAC9C,IAAA,aAAM,EAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,+CAAsB,CAAC,wBAAwB,CAAC,WAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,kBAAkB;QAC5J,IAAA,aAAM,EAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,+CAAsB,CAAC,wBAAwB,CAAC,WAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAc,iBAAiB;QACvK,IAAA,aAAM,EAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAW,OAAO;QACzD,IAAA,aAAM,EAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAc,SAAS;IAC7D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;QAClE,MAAM,UAAU,GAAG,gBAAgB,EAAE,CAAC;QAEtC,MAAM,QAAQ,GAAG,mCAAgB,CAAC,4BAA4B,CAAC,+CAAsB,CAAC,4BAA4B,CAAC,WAAW,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;QAC3J,MAAM,IAAI,GAAG,6BAAW,CAAC,wBAAwB,CAAC,UAAU,CAAC,+CAAsB,CAAC,4BAA4B,CAAC,CAAC;QAElH,MAAM,cAAc,GAAG,IAAI,iDAAuB,CAAC,QAAQ,EAAE,+CAAsB,CAAC,2BAA2B,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAEtI,MAAM,eAAe,GAAG,IAAI,6CAAqB,CAAC,mBAAW,EAAE,cAAc,CAAC,CAAC;QAC/E,MAAM,aAAa,GAAG,KAAK,CAAC,GAAG,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC;QAC/D,UAAU,CAAC,aAAa,CAAC,EAAC,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAC,EAAE,eAAe,CAAC,CAAC;QAC9E,IAAA,aAAM,EAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QAEjC,MAAM,SAAS,GAAG,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;QAC9C,IAAA,aAAM,EAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,+CAAsB,CAAC,4BAA4B,CAAC,WAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,kBAAkB;QAChK,IAAA,aAAM,EAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,+CAAsB,CAAC,4BAA4B,CAAC,WAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAc,iBAAiB;QAC3K,IAAA,aAAM,EAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAwB,OAAO;QACtE,IAAA,aAAM,EAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAc,SAAS;IAC7D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;QAChD,MAAM,UAAU,GAAG,gBAAgB,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,6BAAW,CAAC,wBAAwB,CAAC,UAAU,CAAC,+CAAsB,CAAC,wBAAwB,CAAC,CAAC;QAC9G,MAAM,cAAc,GAAG,IAAI,iDAAuB,CAChD,mCAAgB,CAAC,4BAA4B,CAAC,+CAAsB,CAAC,wBAAwB,CAAC,WAAW,CAAC,aAAa,CAAC,YAAY,CAAC,EACrI,+CAAsB,CAAC,2BAA2B,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAE3E,MAAM,eAAe,GAAG,IAAI,6CAAqB,CAAC,mBAAW,EAAE,cAAc,CAAC,CAAC;QAC/E,MAAM,aAAa,GAAG,KAAK,CAAC,GAAG,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC;QAC/D,UAAU,CAAC,aAAa,CAAC,EAAC,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAC,EAAE,eAAe,CAAC,CAAC;QAC9E,IAAA,aAAM,EAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QAEjC,MAAM,SAAS,GAAG,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;QAC9C,IAAA,aAAM,EAAC,SAAS,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC;QACnC,IAAA,aAAM,EAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,+CAAsB,CAAC,wBAAwB,CAAC,WAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAU,kBAAkB;QACrK,IAAA,aAAM,EAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,+CAAsB,CAAC,wBAAwB,CAAC,WAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,iBAAiB;QAC1J,IAAA,aAAM,EAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAW,OAAO;QAC1D,IAAA,aAAM,EAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAc,SAAS;IAC7D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE;QAC/C,MAAM,UAAU,GAAG,gBAAgB,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,6BAAW,CAAC,wBAAwB,CAAC,UAAU,CAAC,+CAAsB,CAAC,uBAAuB,CAAC,CAAC;QAC7G,MAAM,QAAQ,GAAG,mCAAgB,CAAC,4BAA4B,CAAC,+CAAsB,CAAC,uBAAuB,CAAC,WAAW,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;QACtJ,MAAM,cAAc,GAAG,IAAI,iDAAuB,CAAC,QAAQ,EAAE,+CAAsB,CAAC,2BAA2B,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QACtI,MAAM,eAAe,GAAG,IAAI,6CAAqB,CAAC,mBAAW,EAAE,cAAc,CAAC,CAAC;QAC/E,MAAM,aAAa,GAAG,KAAK,CAAC,GAAG,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC;QAC/D,UAAU,CAAC,aAAa,CAAC,EAAC,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAC,EAAE,eAAe,CAAC,CAAC;QAC9E,IAAA,aAAM,EAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QAEjC,MAAM,SAAS,GAAG,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;QAC9C,IAAA,aAAM,EAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,+CAAsB,CAAC,uBAAuB,CAAC,WAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAU,kBAAkB;QACpK,IAAA,aAAM,EAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,+CAAsB,CAAC,uBAAuB,CAAC,WAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,iBAAiB;QACzJ,IAAA,aAAM,EAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAW,OAAO;QAC1D,IAAA,aAAM,EAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAc,SAAS;IAC7D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;QACjD,MAAM,UAAU,GAAG,gBAAgB,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,6BAAW,CAAC,wBAAwB,CAAC,UAAU,CAAC,+CAAsB,CAAC,yBAAyB,CAAC,CAAC;QAC/G,MAAM,QAAQ,GAAG,mCAAgB,CAAC,4BAA4B,CAAC,+CAAsB,CAAC,uBAAuB,CAAC,WAAW,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;QACtJ,MAAM,cAAc,GAAG,IAAI,iDAAuB,CAAC,QAAQ,EAAE,+CAAsB,CAAC,4BAA4B,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAEvI,MAAM,eAAe,GAAG,IAAI,6CAAqB,CAAC,mBAAW,EAAE,cAAc,CAAC,CAAC;QAC/E,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;QACtD,UAAU,CAAC,aAAa,CAAC,EAAC,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAC,EAAE,eAAe,CAAC,CAAC;QAC9E,IAAA,aAAM,EAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAEvB,0EAA0E;QAC1E,MAAM,cAAc,GAAG,+CAAsB,CAAC,yBAAyB,CAAC,WAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC9H,MAAM,SAAS,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;QACpC,IAAA,aAAM,EAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,+CAAsB,CAAC,yBAAyB,CAAC,WAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAU,kBAAkB;QACtK,IAAA,aAAM,EAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,iBAAiB;QACnE,IAAA,aAAM,EAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAc,SAAS;IAC7D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wFAAwF,EAAE,KAAK,IAAI,EAAE;QACtG,MAAM,UAAU,GAAG,gBAAgB,EAAE,CAAC;QACtC,MAAM,cAAc,GAAG,IAAI,iDAAuB,CAChD,iBAAiB,EACjB,+CAAsB,CAAC,4BAA4B,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAE5E,MAAM,eAAe,GAAG,IAAI,6CAAqB,CAAC,mBAAW,EAAE,cAAc,CAAC,CAAC;QAC/E,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAM,EAAE,UAAU,CAAC,CAAC;QACpD,UAAU,CAAC,aAAa,CAAC,EAAC,IAAI,EAAE,EAAC,IAAI,EAAC,MAAM,EAAC,EAAE,mBAAmB,EAAE,KAAK,EAAC,EAAE,eAAe,CAAC,CAAC;QAC7F,IAAA,aAAM,EAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QAE/B,WAAW,CAAC,YAAY,EAAE,CAAC;QAC3B,UAAU,CAAC,eAAe,CAAC,EAAC,IAAI,EAAE,EAAC,IAAI,EAAC,MAAM,EAAC,EAAE,mBAAmB,EAAE,KAAK,EAAC,EAAE,EAAE,CAAC,CAAC;QAClF,IAAA,aAAM,EAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAEjC,CAAC,CAAC,CAAC;AAEL,CAAC,CAAC,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n\r\nimport { Logger } from \"@itwin/core-bentley\";\r\nimport { Base64EncodedString, ImageMapLayerSettings } from \"@itwin/core-common\";\r\nimport { MapLayerFeatureInfo } from \"@itwin/core-frontend\";\r\nimport { expect } from \"chai\";\r\nimport * as sinon from \"sinon\";\r\nimport { ArcGisFeaturePBF } from \"../../ArcGisFeature/ArcGisFeaturePBF\";\r\nimport { ArcGisFeatureRenderer } from \"../../ArcGisFeature/ArcGisFeatureRenderer\";\r\nimport { ArcGisSymbologyRenderer } from \"../../ArcGisFeature/ArcGisSymbologyRenderer\";\r\nimport { esriPBuffer } from \"../../ArcGisFeature/esriPBuffer.gen\";\r\nimport { esriFeatureSampleSource, fakeContext } from \"./Mocks\";\r\nimport { PhillyLandmarksDataset } from \"./PhillyLandmarksDataset\";\r\n\r\nconst createFeaturePBF = () => {\r\n const settings = ImageMapLayerSettings.fromJSON(esriFeatureSampleSource);\r\n const featurePbf = new ArcGisFeaturePBF(settings, {name: \"SampleLayer\"});\r\n\r\n // Locale configuration depends on the testing machine (i.e. linux vs windows),\r\n // so we need to force date display to Iso to get a consistent value.\r\n // In real scenario, we still want dates to be displayed in end-user's locale.\r\n featurePbf.forceDateDisplayValueToIso = true;\r\n return featurePbf;\r\n};\r\n\r\ndescribe(\"ArcGisFeaturePBF\", () => {\r\n\r\n const sandbox = sinon.createSandbox();\r\n\r\n afterEach(async () => {\r\n sandbox.restore();\r\n });\r\n\r\n it(\"should convert pbf geometry type to Esri types\", async () => {\r\n\r\n expect (\r\n ArcGisFeaturePBF.getArcGisFeatureGeometryType(esriPBuffer.FeatureCollectionPBuffer.GeometryType.esriGeometryTypeMultipatch))\r\n .to.equals(\"esriGeometryMultiPatch\");\r\n\r\n expect (\r\n ArcGisFeaturePBF.getArcGisFeatureGeometryType(esriPBuffer.FeatureCollectionPBuffer.GeometryType.esriGeometryTypeMultipoint))\r\n .to.equals(\"esriGeometryMultipoint\");\r\n\r\n expect (\r\n ArcGisFeaturePBF.getArcGisFeatureGeometryType(esriPBuffer.FeatureCollectionPBuffer.GeometryType.esriGeometryTypePoint))\r\n .to.equals(\"esriGeometryPoint\");\r\n\r\n expect (\r\n ArcGisFeaturePBF.getArcGisFeatureGeometryType(esriPBuffer.FeatureCollectionPBuffer.GeometryType.esriGeometryTypePolygon))\r\n .to.equals(\"esriGeometryPolygon\");\r\n\r\n expect (\r\n ArcGisFeaturePBF.getArcGisFeatureGeometryType(esriPBuffer.FeatureCollectionPBuffer.GeometryType.esriGeometryTypePolyline))\r\n .to.equals(\"esriGeometryPolyline\");\r\n\r\n expect (\r\n ArcGisFeaturePBF.getArcGisFeatureGeometryType(\"\" as unknown as esriPBuffer.FeatureCollectionPBuffer.GeometryType))\r\n .to.equals(\"esriGeometryNull\");\r\n\r\n });\r\n\r\n it(\"should read FeatureInfo in PBF\", async () => {\r\n const byteArray = Base64EncodedString.toUint8Array(PhillyLandmarksDataset.phillyAirportGetFeatureInfoQueryPbf);\r\n const featureCollection = esriPBuffer.FeatureCollectionPBuffer.deserialize(byteArray);\r\n\r\n const settings = ImageMapLayerSettings.fromJSON(esriFeatureSampleSource);\r\n const featurePbf = new ArcGisFeaturePBF(settings, {name: \"SampleLayer\"});\r\n\r\n // In some cases, PBF gives more floating-point precision than JSON.\r\n // Since I want to use the same output reference for both formats, I force a max precision of 8.\r\n featurePbf.floatPrecision = 8;\r\n const results: MapLayerFeatureInfo[] = [];\r\n featurePbf.readFeatureInfo({data:featureCollection, exceedTransferLimit: false}, results);\r\n\r\n // Make deep comparison by using JSON.stringify\r\n expect(JSON.stringify(results)).equals(JSON.stringify(PhillyLandmarksDataset.phillyAirportGetFeatureInfoResultRef));\r\n\r\n });\r\n\r\n it(\"should read FeatureInfo from PBF (philly transportation)\", async () => {\r\n\r\n const byteArray = Base64EncodedString.toUint8Array(PhillyLandmarksDataset.phillyTransportationGetFeatureInfoQueryEncodedPbf);\r\n const featureCollection = esriPBuffer.FeatureCollectionPBuffer.deserialize(byteArray);\r\n const featurePbf = createFeaturePBF();\r\n\r\n // In some cases, PBF gives more floating-point precision than JSON.\r\n // Since I want to use the same output reference for both formats, I force a max precision.\r\n featurePbf.floatPrecision = 2;\r\n const results: MapLayerFeatureInfo[] = [];\r\n featurePbf.readFeatureInfo({data:featureCollection, exceedTransferLimit: false}, results);\r\n\r\n // Make deep comparison by using JSON.stringify\r\n expect(JSON.stringify(results)).equals(JSON.stringify(PhillyLandmarksDataset.phillyTansportationGetFeatureInfoResultRef));\r\n\r\n });\r\n\r\n it(\"should read all data types from FeatureInfo \", async () => {\r\n\r\n // In this test we use a synthetic PBuffer object to initialize a feature collection object.\r\n // The is to ensure we cover correctly all possible attribute value types.\r\n const featureCollection = esriPBuffer.FeatureCollectionPBuffer.fromObject(PhillyLandmarksDataset.fieldsCoveragePbufferCollection);\r\n\r\n const featurePbf = createFeaturePBF();\r\n\r\n const results: MapLayerFeatureInfo[] = [];\r\n featurePbf.readFeatureInfo({data:featureCollection, exceedTransferLimit: false}, results);\r\n\r\n // Make deep comparison by using JSON.stringify\r\n expect(JSON.stringify(results)).equals(JSON.stringify(PhillyLandmarksDataset.fieldsCoverageGetFeatureInfoResultRef));\r\n });\r\n\r\n it(\"should readAndRender single ring polygon feature\", async () => {\r\n const featurePbf = createFeaturePBF();\r\n\r\n const data = esriPBuffer.FeatureCollectionPBuffer.fromObject(PhillyLandmarksDataset.phillySimplePolyQueryPbf);\r\n const geomType = ArcGisFeaturePBF.getArcGisFeatureGeometryType(PhillyLandmarksDataset.phillySimplePolyQueryPbf.queryResult.featureResult.geometryType);\r\n const symbolRenderer = new ArcGisSymbologyRenderer(geomType, PhillyLandmarksDataset.phillySimplePolyDrawingInfo.drawingInfo.renderer);\r\n\r\n const featureRenderer = new ArcGisFeatureRenderer(fakeContext, symbolRenderer);\r\n const renderPathSpy = sinon.spy(featureRenderer, \"renderPath\");\r\n featurePbf.readAndRender({data, exceedTransferLimit: false}, featureRenderer);\r\n expect(renderPathSpy.calledOnce);\r\n\r\n const firstCall = renderPathSpy.getCalls()[0];\r\n expect(firstCall.args[0]).to.eql(PhillyLandmarksDataset.phillySimplePolyQueryPbf.queryResult.featureResult.features[0].geometry.lengths); // geometryLengths\r\n expect(firstCall.args[1]).to.eql(PhillyLandmarksDataset.phillySimplePolyQueryPbf.queryResult.featureResult.features[0].geometry.coords); // geometryCoords\r\n expect(firstCall.args[2]).to.eql(true); // fill\r\n expect(firstCall.args[3]).to.eql(2); // stride\r\n });\r\n\r\n it(\"should readAndRender multiple ring polygon feature\", async () => {\r\n const featurePbf = createFeaturePBF();\r\n\r\n const geomType = ArcGisFeaturePBF.getArcGisFeatureGeometryType(PhillyLandmarksDataset.phillyDoubleRingPolyQueryPbf.queryResult.featureResult.geometryType);\r\n const data = esriPBuffer.FeatureCollectionPBuffer.fromObject(PhillyLandmarksDataset.phillyDoubleRingPolyQueryPbf);\r\n\r\n const symbolRenderer = new ArcGisSymbologyRenderer(geomType, PhillyLandmarksDataset.phillySimplePolyDrawingInfo.drawingInfo.renderer);\r\n\r\n const featureRenderer = new ArcGisFeatureRenderer(fakeContext, symbolRenderer);\r\n const renderPathSpy = sinon.spy(featureRenderer, \"renderPath\");\r\n featurePbf.readAndRender({data, exceedTransferLimit: false}, featureRenderer);\r\n expect(renderPathSpy.calledOnce);\r\n\r\n const firstCall = renderPathSpy.getCalls()[0];\r\n expect(firstCall.args[0]).to.eql(PhillyLandmarksDataset.phillyDoubleRingPolyQueryPbf.queryResult.featureResult.features[0].geometry.lengths); // geometryLengths\r\n expect(firstCall.args[1]).to.eql(PhillyLandmarksDataset.phillyDoubleRingPolyQueryPbf.queryResult.featureResult.features[0].geometry.coords); // geometryCoords\r\n expect(firstCall.args[2]).to.eql(true); // fill\r\n expect(firstCall.args[3]).to.eql(2); // stride\r\n });\r\n\r\n it(\"should readAndRender simple path\", async () => {\r\n const featurePbf = createFeaturePBF();\r\n const data = esriPBuffer.FeatureCollectionPBuffer.fromObject(PhillyLandmarksDataset.phillySimplePathQueryPbf);\r\n const symbolRenderer = new ArcGisSymbologyRenderer(\r\n ArcGisFeaturePBF.getArcGisFeatureGeometryType(PhillyLandmarksDataset.phillySimplePathQueryPbf.queryResult.featureResult.geometryType),\r\n PhillyLandmarksDataset.phillySimpleLineDrawingInfo.drawingInfo.renderer);\r\n\r\n const featureRenderer = new ArcGisFeatureRenderer(fakeContext, symbolRenderer);\r\n const renderPathSpy = sinon.spy(featureRenderer, \"renderPath\");\r\n featurePbf.readAndRender({data, exceedTransferLimit: false}, featureRenderer);\r\n expect(renderPathSpy.calledOnce);\r\n\r\n const firstCall = renderPathSpy.getCalls()[0];\r\n expect(firstCall).to.not.undefined;\r\n expect(firstCall.args[0]).to.eql(PhillyLandmarksDataset.phillySimplePathQueryPbf.queryResult.featureResult.features[0].geometry.lengths); // geometryLengths\r\n expect(firstCall.args[1]).to.eql(PhillyLandmarksDataset.phillySimplePathQueryPbf.queryResult.featureResult.features[0].geometry.coords); // geometryCoords\r\n expect(firstCall.args[2]).to.eql(false); // fill\r\n expect(firstCall.args[3]).to.eql(2); // stride\r\n });\r\n\r\n it(\"should readAndRender multi path\", async () => {\r\n const featurePbf = createFeaturePBF();\r\n const data = esriPBuffer.FeatureCollectionPBuffer.fromObject(PhillyLandmarksDataset.phillyMultiPathQueryPbf);\r\n const geomType = ArcGisFeaturePBF.getArcGisFeatureGeometryType(PhillyLandmarksDataset.phillyMultiPathQueryPbf.queryResult.featureResult.geometryType);\r\n const symbolRenderer = new ArcGisSymbologyRenderer(geomType, PhillyLandmarksDataset.phillySimpleLineDrawingInfo.drawingInfo.renderer);\r\n const featureRenderer = new ArcGisFeatureRenderer(fakeContext, symbolRenderer);\r\n const renderPathSpy = sinon.spy(featureRenderer, \"renderPath\");\r\n featurePbf.readAndRender({data, exceedTransferLimit: false}, featureRenderer);\r\n expect(renderPathSpy.calledOnce);\r\n\r\n const firstCall = renderPathSpy.getCalls()[0];\r\n expect(firstCall.args[0]).to.eql(PhillyLandmarksDataset.phillyMultiPathQueryPbf.queryResult.featureResult.features[0].geometry.lengths); // geometryLengths\r\n expect(firstCall.args[1]).to.eql(PhillyLandmarksDataset.phillyMultiPathQueryPbf.queryResult.featureResult.features[0].geometry.coords); // geometryCoords\r\n expect(firstCall.args[2]).to.eql(false); // fill\r\n expect(firstCall.args[3]).to.eql(2); // stride\r\n });\r\n\r\n it(\"should readAndRender simple point\", async () => {\r\n const featurePbf = createFeaturePBF();\r\n const data = esriPBuffer.FeatureCollectionPBuffer.fromObject(PhillyLandmarksDataset.phillySimplePointQueryPbf);\r\n const geomType = ArcGisFeaturePBF.getArcGisFeatureGeometryType(PhillyLandmarksDataset.phillyMultiPathQueryPbf.queryResult.featureResult.geometryType);\r\n const symbolRenderer = new ArcGisSymbologyRenderer(geomType, PhillyLandmarksDataset.phillySimplePointDrawingInfo.drawingInfo.renderer);\r\n\r\n const featureRenderer = new ArcGisFeatureRenderer(fakeContext, symbolRenderer);\r\n const spy = sinon.spy(featureRenderer, \"renderPoint\");\r\n featurePbf.readAndRender({data, exceedTransferLimit: false}, featureRenderer);\r\n expect(spy.calledOnce);\r\n\r\n // Pbf contains already the right output format expect, lets rely on that.\r\n const geometryCoords = PhillyLandmarksDataset.phillySimplePointQueryPbf.queryResult.featureResult.features[0].geometry.coords;\r\n const firstCall = spy.getCalls()[0];\r\n expect(firstCall.args[0]).to.eql(PhillyLandmarksDataset.phillySimplePointQueryPbf.queryResult.featureResult.features[0].geometry.lengths); // geometryLengths\r\n expect(firstCall.args[1]).to.eql(geometryCoords); // geometryCoords\r\n expect(firstCall.args[2]).to.eql(2); // stride\r\n });\r\n\r\n it(\"should log error when readAndRender / readFeatureInfo is called invalid response Data\", async () => {\r\n const featurePbf = createFeaturePBF();\r\n const symbolRenderer = new ArcGisSymbologyRenderer(\r\n \"esriGeometryAny\",\r\n PhillyLandmarksDataset.phillySimplePointDrawingInfo.drawingInfo.renderer);\r\n\r\n const featureRenderer = new ArcGisFeatureRenderer(fakeContext, symbolRenderer);\r\n const logErrorSpy = sandbox.spy(Logger, \"logError\");\r\n featurePbf.readAndRender({data: {test:\"test\"}, exceedTransferLimit: false}, featureRenderer);\r\n expect(logErrorSpy.calledOnce);\r\n\r\n logErrorSpy.resetHistory();\r\n featurePbf.readFeatureInfo({data: {test:\"test\"}, exceedTransferLimit: false}, []);\r\n expect(logErrorSpy.calledOnce);\r\n\r\n });\r\n\r\n});\r\n"]}
|
|
@@ -20,7 +20,7 @@ const ArcGisFeaturePBF_1 = require("../../ArcGisFeature/ArcGisFeaturePBF");
|
|
|
20
20
|
const ArcGisFeatureJSON_1 = require("../../ArcGisFeature/ArcGisFeatureJSON");
|
|
21
21
|
const expect = chai.expect;
|
|
22
22
|
chai.use(chaiAsPromised);
|
|
23
|
-
const esriFeatureSampleSource = { name: "dummyFeatureLayer", url: "https://dummy.com", formatId: ArcGisFeatureFormat_1.ArcGisFeatureMapLayerFormat.formatId };
|
|
23
|
+
const esriFeatureSampleSource = { name: "dummyFeatureLayer", url: "https://dummy.com/SomeGuid/ArcGIS/rest/services/SomeService/FeatureServer", formatId: ArcGisFeatureFormat_1.ArcGisFeatureMapLayerFormat.formatId };
|
|
24
24
|
const pngTransparent1x1 = "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNkYPhfDwAChwGA60e6kgAAAABJRU5ErkJggg==";
|
|
25
25
|
describe("ArcGisFeatureProvider", () => {
|
|
26
26
|
const sandbox = sinon.createSandbox();
|
|
@@ -32,7 +32,7 @@ describe("ArcGisFeatureProvider", () => {
|
|
|
32
32
|
afterEach(async () => {
|
|
33
33
|
sandbox.restore();
|
|
34
34
|
});
|
|
35
|
-
it("should initialize with valid
|
|
35
|
+
it("should initialize with valid service metadata", async () => {
|
|
36
36
|
sandbox.stub(core_frontend_1.ArcGisUtilities, "getServiceJson").callsFake(async function _(_url, _formatId, _userName, _password, _ignoreCache, _requireToken) {
|
|
37
37
|
return { accessTokenRequired: false, content: NewYorkDataset_1.NewYorkDataset.serviceCapabilities };
|
|
38
38
|
});
|
|
@@ -45,6 +45,133 @@ describe("ArcGisFeatureProvider", () => {
|
|
|
45
45
|
expect(provider._minDepthFromLod).to.equals(11);
|
|
46
46
|
expect(provider._maxDepthFromLod).to.equals(22);
|
|
47
47
|
});
|
|
48
|
+
it("should initialize and set cartoRange without making extra extent request", async () => {
|
|
49
|
+
sandbox.stub(core_frontend_1.ArcGisUtilities, "getServiceJson").callsFake(async function _(_url, _formatId, _userName, _password, _ignoreCache, _requireToken) {
|
|
50
|
+
return { accessTokenRequired: false, content: NewYorkDataset_1.NewYorkDataset.serviceCapabilities };
|
|
51
|
+
});
|
|
52
|
+
sandbox.stub(map_layers_formats_1.ArcGisFeatureProvider.prototype, "getLayerMetadata").callsFake(async function _(_layerId) {
|
|
53
|
+
return NewYorkDataset_1.NewYorkDataset.streetsLayerCapabilities;
|
|
54
|
+
});
|
|
55
|
+
const setCartoSpy = sandbox.spy(map_layers_formats_1.ArcGisFeatureProvider.prototype, "setCartoRangeFromExtentJson");
|
|
56
|
+
const fetchLayerExtentSpy = sandbox.spy(map_layers_formats_1.ArcGisFeatureProvider.prototype, "fetchLayerExtent");
|
|
57
|
+
const settings = core_common_1.ImageMapLayerSettings.fromJSON(esriFeatureSampleSource);
|
|
58
|
+
const provider = new map_layers_formats_1.ArcGisFeatureProvider(settings);
|
|
59
|
+
await provider.initialize();
|
|
60
|
+
expect(setCartoSpy.called).to.be.true;
|
|
61
|
+
expect(setCartoSpy.args[0][0]).to.be.equals(NewYorkDataset_1.NewYorkDataset.streetsLayerCapabilities.extent);
|
|
62
|
+
expect(fetchLayerExtentSpy.called).to.be.false;
|
|
63
|
+
});
|
|
64
|
+
it("should make an extra extent request when none available in layer metadata", async () => {
|
|
65
|
+
sandbox.stub(core_frontend_1.ArcGisUtilities, "getServiceJson").callsFake(async function _(_url, _formatId, _userName, _password, _ignoreCache, _requireToken) {
|
|
66
|
+
return { accessTokenRequired: false, content: NewYorkDataset_1.NewYorkDataset.serviceCapabilities };
|
|
67
|
+
});
|
|
68
|
+
const setCartoSpy = sandbox.spy(map_layers_formats_1.ArcGisFeatureProvider.prototype, "setCartoRangeFromExtentJson");
|
|
69
|
+
const layerExtent = { ...NewYorkDataset_1.NewYorkDataset.streetsLayerCapabilities.extent };
|
|
70
|
+
const fetchLayerExtentStub = sandbox.stub(map_layers_formats_1.ArcGisFeatureProvider.prototype, "fetchLayerExtent").callsFake(async function _(_layerId) {
|
|
71
|
+
return layerExtent;
|
|
72
|
+
});
|
|
73
|
+
const layerCapabilitiesNoExtent = { ...NewYorkDataset_1.NewYorkDataset.streetsLayerCapabilities, extent: null };
|
|
74
|
+
sandbox.stub(map_layers_formats_1.ArcGisFeatureProvider.prototype, "getLayerMetadata").callsFake(async function _(_layerId) {
|
|
75
|
+
return layerCapabilitiesNoExtent;
|
|
76
|
+
});
|
|
77
|
+
const settings = core_common_1.ImageMapLayerSettings.fromJSON(esriFeatureSampleSource);
|
|
78
|
+
const provider = new map_layers_formats_1.ArcGisFeatureProvider(settings);
|
|
79
|
+
await provider.initialize();
|
|
80
|
+
expect(fetchLayerExtentStub.called).to.be.true;
|
|
81
|
+
expect(setCartoSpy.called).to.be.true;
|
|
82
|
+
expect(setCartoSpy.args[0][0]).to.be.equals(layerExtent);
|
|
83
|
+
});
|
|
84
|
+
it("should make an extra extent request when none available in layer metadata", async () => {
|
|
85
|
+
sandbox.stub(core_frontend_1.ArcGisUtilities, "getServiceJson").callsFake(async function _(_url, _formatId, _userName, _password, _ignoreCache, _requireToken) {
|
|
86
|
+
return { accessTokenRequired: false, content: NewYorkDataset_1.NewYorkDataset.serviceCapabilities };
|
|
87
|
+
});
|
|
88
|
+
const setCartoSpy = sandbox.spy(map_layers_formats_1.ArcGisFeatureProvider.prototype, "setCartoRangeFromExtentJson");
|
|
89
|
+
const layerExtent = { ...NewYorkDataset_1.NewYorkDataset.streetsLayerCapabilities.extent };
|
|
90
|
+
const fetchLayerExtentStub = sandbox.stub(map_layers_formats_1.ArcGisFeatureProvider.prototype, "fetchLayerExtent").callsFake(async function _(_layerId) {
|
|
91
|
+
return layerExtent;
|
|
92
|
+
});
|
|
93
|
+
const layerExtentBadSrs = { ...NewYorkDataset_1.NewYorkDataset.streetsLayerCapabilities };
|
|
94
|
+
layerExtentBadSrs.extent.spatialReference.wkid = 1234;
|
|
95
|
+
layerExtentBadSrs.extent.spatialReference.latestWkid = 1234;
|
|
96
|
+
sandbox.stub(map_layers_formats_1.ArcGisFeatureProvider.prototype, "getLayerMetadata").callsFake(async function _(_layerId) {
|
|
97
|
+
return layerExtentBadSrs;
|
|
98
|
+
});
|
|
99
|
+
const settings = core_common_1.ImageMapLayerSettings.fromJSON(esriFeatureSampleSource);
|
|
100
|
+
const provider = new map_layers_formats_1.ArcGisFeatureProvider(settings);
|
|
101
|
+
await provider.initialize();
|
|
102
|
+
expect(fetchLayerExtentStub.called).to.be.true;
|
|
103
|
+
expect(setCartoSpy.called).to.be.true;
|
|
104
|
+
expect(setCartoSpy.args[0][0]).to.be.equals(layerExtent);
|
|
105
|
+
});
|
|
106
|
+
it("should set cartoRange from Extent json", async () => {
|
|
107
|
+
const newYorkLayerExtent = NewYorkDataset_1.NewYorkDataset.streetsLayerCapabilities.extent;
|
|
108
|
+
const settings = core_common_1.ImageMapLayerSettings.fromJSON(esriFeatureSampleSource);
|
|
109
|
+
const provider = new map_layers_formats_1.ArcGisFeatureProvider(settings);
|
|
110
|
+
const west = provider.getEPSG4326Lon(newYorkLayerExtent.xmin);
|
|
111
|
+
const south = provider.getEPSG4326Lat(newYorkLayerExtent.ymin);
|
|
112
|
+
const east = provider.getEPSG4326Lon(newYorkLayerExtent.xmax);
|
|
113
|
+
const north = provider.getEPSG4326Lat(newYorkLayerExtent.ymax);
|
|
114
|
+
provider.setCartoRangeFromExtentJson(newYorkLayerExtent);
|
|
115
|
+
expect(provider.cartoRange).to.be.not.undefined;
|
|
116
|
+
const delta = 0.0000001;
|
|
117
|
+
expect(provider.cartoRange.west * core_geometry_1.Angle.degreesPerRadian).to.approximately(west, delta);
|
|
118
|
+
expect(provider.cartoRange.south * core_geometry_1.Angle.degreesPerRadian).to.approximately(south, delta);
|
|
119
|
+
expect(provider.cartoRange.east * core_geometry_1.Angle.degreesPerRadian).to.approximately(east, delta);
|
|
120
|
+
expect(provider.cartoRange.north * core_geometry_1.Angle.degreesPerRadian).to.approximately(north, delta);
|
|
121
|
+
});
|
|
122
|
+
it("should compose proper request to get extent", async () => {
|
|
123
|
+
fetchStub.restore(); // fetch is always stubbed by default, restore and provide our own stub
|
|
124
|
+
sandbox.stub(core_frontend_1.ArcGisUtilities, "getServiceJson").callsFake(async function _(_url, _formatId, _userName, _password, _ignoreCache, _requireToken) {
|
|
125
|
+
return { accessTokenRequired: false, content: NewYorkDataset_1.NewYorkDataset.serviceCapabilities };
|
|
126
|
+
});
|
|
127
|
+
const layerCapabilitiesNoExtent = { ...NewYorkDataset_1.NewYorkDataset.streetsLayerCapabilities };
|
|
128
|
+
sandbox.stub(map_layers_formats_1.ArcGisFeatureProvider.prototype, "getLayerMetadata").callsFake(async function _(_layerId) {
|
|
129
|
+
return layerCapabilitiesNoExtent;
|
|
130
|
+
});
|
|
131
|
+
const referenceExtent = { extent: NewYorkDataset_1.NewYorkDataset.streetsLayerCapabilities.extent };
|
|
132
|
+
const stub = sandbox.stub(core_frontend_1.ArcGISImageryProvider.prototype, "fetch").callsFake(async function _(_url, _options) {
|
|
133
|
+
const test = {
|
|
134
|
+
headers: { "content-type": "json" },
|
|
135
|
+
json: async () => {
|
|
136
|
+
return referenceExtent;
|
|
137
|
+
},
|
|
138
|
+
status: 200,
|
|
139
|
+
}; // By using unknown type, I can define parts of Response I really need
|
|
140
|
+
return test;
|
|
141
|
+
});
|
|
142
|
+
let layerId = 0;
|
|
143
|
+
let expectedUrl = `https://dummy.com/SomeGuid/ArcGIS/rest/services/SomeService/FeatureServer/${layerId}/query?where=1%3D1&outSR=3857&returnExtentOnly=true&f=json`;
|
|
144
|
+
let cachedExtent = map_layers_formats_1.ArcGisFeatureProvider._extentCache.get(expectedUrl);
|
|
145
|
+
expect(cachedExtent).to.be.undefined;
|
|
146
|
+
const settings = core_common_1.ImageMapLayerSettings.fromJSON(esriFeatureSampleSource);
|
|
147
|
+
const provider = new map_layers_formats_1.ArcGisFeatureProvider(settings);
|
|
148
|
+
await provider.initialize();
|
|
149
|
+
let fetchExtent = await provider.fetchLayerExtent();
|
|
150
|
+
expect(fetchExtent).to.equals(referenceExtent.extent);
|
|
151
|
+
expect(stub.getCalls().length).to.equals(1);
|
|
152
|
+
expect(stub.args[0][0].toString()).to.be.equals(expectedUrl);
|
|
153
|
+
// Check if entry has been created in cache
|
|
154
|
+
cachedExtent = map_layers_formats_1.ArcGisFeatureProvider._extentCache.get(expectedUrl);
|
|
155
|
+
expect(cachedExtent).to.be.not.undefined;
|
|
156
|
+
expect(cachedExtent).to.equals(referenceExtent);
|
|
157
|
+
// Make sure cache is used
|
|
158
|
+
await provider.fetchLayerExtent();
|
|
159
|
+
expect(stub.getCalls().length).to.equals(1);
|
|
160
|
+
// Force a different layerId, and check a new request has been made
|
|
161
|
+
layerId = 2;
|
|
162
|
+
expectedUrl = `https://dummy.com/SomeGuid/ArcGIS/rest/services/SomeService/FeatureServer/${layerId}/query?where=1%3D1&outSR=3857&returnExtentOnly=true&f=json`;
|
|
163
|
+
cachedExtent = map_layers_formats_1.ArcGisFeatureProvider._extentCache.get(expectedUrl);
|
|
164
|
+
expect(cachedExtent).to.be.undefined;
|
|
165
|
+
provider._layerId = layerId;
|
|
166
|
+
fetchExtent = await provider.fetchLayerExtent();
|
|
167
|
+
expect(fetchExtent).to.equals(referenceExtent.extent);
|
|
168
|
+
expect(stub.getCalls().length).to.equals(2);
|
|
169
|
+
expect(stub.args[1][0].toString()).to.be.equals(expectedUrl);
|
|
170
|
+
// check cache has been updated with a new entry
|
|
171
|
+
cachedExtent = map_layers_formats_1.ArcGisFeatureProvider._extentCache.get(expectedUrl);
|
|
172
|
+
expect(cachedExtent).to.be.not.undefined;
|
|
173
|
+
expect(cachedExtent).to.equals(referenceExtent);
|
|
174
|
+
});
|
|
48
175
|
it("should not initialize with no service metadata", async () => {
|
|
49
176
|
sandbox.stub(core_frontend_1.ArcGisUtilities, "getServiceJson").callsFake(async function _(_url, _formatId, _userName, _password, _ignoreCache, _requireToken) {
|
|
50
177
|
return undefined;
|
|
@@ -238,7 +365,7 @@ describe("ArcGisFeatureProvider", () => {
|
|
|
238
365
|
latestWkid: 3857,
|
|
239
366
|
},
|
|
240
367
|
};
|
|
241
|
-
expect(url?.url).to.equals(
|
|
368
|
+
expect(url?.url).to.equals("https://dummy.com/SomeGuid/ArcGIS/rest/services/SomeService/FeatureServer/0/query?f=PBF&resultType=tile&maxRecordCountFactor=3&returnExceededLimitFeatures=false&outSR=102100&geometryType=esriGeometryEnvelope&geometry=%7B%22xmin%22%3A-20037508.34%2C%22ymin%22%3A-20037508.339999996%2C%22xmax%22%3A20037508.34%2C%22ymax%22%3A20037508.340000004%2C%22spatialReference%22%3A%7B%22wkid%22%3A102100%2C%22latestWkid%22%3A3857%7D%7D&units=esriSRUnit_Meter&inSR=102100");
|
|
242
369
|
expect(url?.envelope?.xmin).to.be.closeTo(extent.xmin, 0.01);
|
|
243
370
|
expect(url?.envelope?.ymin).to.be.closeTo(extent.ymin, 0.01);
|
|
244
371
|
expect(url?.envelope?.xmax).to.be.closeTo(extent.xmax, 0.01);
|
|
@@ -257,7 +384,7 @@ describe("ArcGisFeatureProvider", () => {
|
|
|
257
384
|
const provider2 = new map_layers_formats_1.ArcGisFeatureProvider(settings);
|
|
258
385
|
await provider2.initialize();
|
|
259
386
|
url = provider2.constructFeatureUrl(0, 0, 0, "PBF");
|
|
260
|
-
expect(url?.url).to.equals(
|
|
387
|
+
expect(url?.url).to.equals("https://dummy.com/SomeGuid/ArcGIS/rest/services/SomeService/FeatureServer/0/query?f=PBF&resultType=tile&maxRecordCountFactor=3&returnExceededLimitFeatures=false&outSR=102100&geometryType=esriGeometryEnvelope&geometry=%7B%22xmin%22%3A-20037508.34%2C%22ymin%22%3A-20037508.339999996%2C%22xmax%22%3A20037508.34%2C%22ymax%22%3A20037508.340000004%2C%22spatialReference%22%3A%7B%22wkid%22%3A102100%2C%22latestWkid%22%3A3857%7D%7D&units=esriSRUnit_Meter&inSR=102100&quantizationParameters=%7B%22mode%22%3A%22view%22%2C%22originPosition%22%3A%22upperLeft%22%2C%22tolerance%22%3A78271.516953125%2C%22extent%22%3A%7B%22xmin%22%3A-20037508.34%2C%22ymin%22%3A-20037508.339999996%2C%22xmax%22%3A20037508.34%2C%22ymax%22%3A20037508.340000004%2C%22spatialReference%22%3A%7B%22wkid%22%3A102100%2C%22latestWkid%22%3A3857%7D%7D%7D");
|
|
261
388
|
expect(url?.envelope?.xmin).to.be.closeTo(extent.xmin, 0.01);
|
|
262
389
|
expect(url?.envelope?.ymin).to.be.closeTo(extent.ymin, 0.01);
|
|
263
390
|
expect(url?.envelope?.xmax).to.be.closeTo(extent.xmax, 0.01);
|
|
@@ -281,7 +408,7 @@ describe("ArcGisFeatureProvider", () => {
|
|
|
281
408
|
const provider3 = new map_layers_formats_1.ArcGisFeatureProvider(settings);
|
|
282
409
|
await provider3.initialize();
|
|
283
410
|
url = provider3.constructFeatureUrl(0, 0, 0, "PBF", overrideGeom);
|
|
284
|
-
expect(url?.url).to.equals(
|
|
411
|
+
expect(url?.url).to.equals("https://dummy.com/SomeGuid/ArcGIS/rest/services/SomeService/FeatureServer/0/query?f=PBF&resultType=tile&maxRecordCountFactor=3&returnExceededLimitFeatures=false&outSR=102100&geometryType=esriGeometryEnvelope&geometry=%7B%22xmin%22%3A-50%2C%22ymin%22%3A-50%2C%22xmax%22%3A50%2C%22ymax%22%3A50%2C%22spatialReference%22%3A%7B%22wkid%22%3A102100%2C%22latestWkid%22%3A3857%7D%7D&units=esriSRUnit_Meter&inSR=102100&quantizationParameters=%7B%22mode%22%3A%22view%22%2C%22originPosition%22%3A%22upperLeft%22%2C%22tolerance%22%3A78271.516953125%2C%22extent%22%3A%7B%22xmin%22%3A-20037508.34%2C%22ymin%22%3A-20037508.339999996%2C%22xmax%22%3A20037508.34%2C%22ymax%22%3A20037508.340000004%2C%22spatialReference%22%3A%7B%22wkid%22%3A102100%2C%22latestWkid%22%3A3857%7D%7D%7D");
|
|
285
412
|
expect(url?.envelope?.xmin).to.be.closeTo(overrideGeom.geom.xmin, 0.01);
|
|
286
413
|
expect(url?.envelope?.ymin).to.be.closeTo(overrideGeom.geom.ymin, 0.01);
|
|
287
414
|
expect(url?.envelope?.xmax).to.be.closeTo(overrideGeom.geom.xmax, 0.01);
|
|
@@ -290,7 +417,7 @@ describe("ArcGisFeatureProvider", () => {
|
|
|
290
417
|
expect(url?.envelope?.spatialReference.latestWkid).to.be.equal(overrideGeom.geom.spatialReference.latestWkid);
|
|
291
418
|
// Now test with a different tolerance value
|
|
292
419
|
url = provider3.constructFeatureUrl(0, 0, 0, "PBF", overrideGeom, undefined, 10);
|
|
293
|
-
expect(url?.url).to.equals(
|
|
420
|
+
expect(url?.url).to.equals("https://dummy.com/SomeGuid/ArcGIS/rest/services/SomeService/FeatureServer/0/query?f=PBF&resultType=tile&maxRecordCountFactor=3&returnExceededLimitFeatures=false&outSR=102100&geometryType=esriGeometryEnvelope&geometry=%7B%22xmin%22%3A-50%2C%22ymin%22%3A-50%2C%22xmax%22%3A50%2C%22ymax%22%3A50%2C%22spatialReference%22%3A%7B%22wkid%22%3A102100%2C%22latestWkid%22%3A3857%7D%7D&units=esriSRUnit_Meter&inSR=102100&quantizationParameters=%7B%22mode%22%3A%22view%22%2C%22originPosition%22%3A%22upperLeft%22%2C%22tolerance%22%3A78271.516953125%2C%22extent%22%3A%7B%22xmin%22%3A-20037508.34%2C%22ymin%22%3A-20037508.339999996%2C%22xmax%22%3A20037508.34%2C%22ymax%22%3A20037508.340000004%2C%22spatialReference%22%3A%7B%22wkid%22%3A102100%2C%22latestWkid%22%3A3857%7D%7D%7D&distance=782715.16953125");
|
|
294
421
|
expect(url?.envelope?.xmin).to.be.closeTo(overrideGeom.geom.xmin, 0.01);
|
|
295
422
|
expect(url?.envelope?.ymin).to.be.closeTo(overrideGeom.geom.ymin, 0.01);
|
|
296
423
|
expect(url?.envelope?.xmax).to.be.closeTo(overrideGeom.geom.xmax, 0.01);
|