Skip to content

Commit 4db0a8a

Browse files
fix icl-4542 创建临时图层报错 review by luox
1 parent 8badfdf commit 4db0a8a

File tree

4 files changed

+109
-6
lines changed

4 files changed

+109
-6
lines changed

src/common/iServer/GetGridCellInfosService.js

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -92,12 +92,15 @@ export class GetGridCellInfosService extends CommonServiceBase {
9292
method: "GET",
9393
data: null,
9494
scope: me,
95-
success({result}) {
96-
callback && me.getDatasetInfoCompleted(result, callback);
95+
success(result) {
96+
if (callback || !result.result) {
97+
result = result.result ? result.result : result;
98+
me.getDatasetInfoCompleted(result, callback);
99+
}
97100
},
98101
failure: callback
99102
}).then(({result}) => {
100-
return me.getDatasetInfoCompleted(result);
103+
return result && me.getDatasetInfoCompleted(result);
101104
});
102105
}
103106

src/common/iServer/SetLayerStatusService.js

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -106,9 +106,10 @@ export class SetLayerStatusService extends CommonServiceBase {
106106
*/
107107
createTempLayerComplete(callback, result) {
108108
var me = this;
109-
result.result = Util.transformResult(result.result);
110-
if (result.result.succeed) {
111-
me.lastparams.resourceID = result.result.newResourceID;
109+
result = result.result ? result.result : result;
110+
result = Util.transformResult(result);
111+
if (result.succeed) {
112+
me.lastparams.resourceID = result.newResourceID;
112113
}
113114

114115
return me.processAsync(me.lastparams, callback);

test/common/iServer/GetGridCellInfosServiceSpec.js

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,60 @@ describe('GetGridCellInfosService', () => {
9494
myService.processAsync(queryParam, queryCompleted);
9595
});
9696

97+
it('success:processAsync eventListeners', done => {
98+
var queryParam = new GetGridCellInfosParameters({
99+
datasetName: 'LandCover',
100+
dataSourceName: 'World',
101+
X: '110',
102+
Y: '50'
103+
});
104+
var queryCompleted = event => {
105+
eventCompleted = event;
106+
try {
107+
expect(myService.url).toEqual(
108+
dataServiceURL + '/datasources/World/datasets/LandCover'
109+
);
110+
myService.destroy();
111+
queryParam.destroy();
112+
done();
113+
} catch (exception) {
114+
expect(false).toBeTruthy();
115+
console.log('GetGridCellInfosService_' + exception.name + ':' + exception.message);
116+
myService.destroy();
117+
queryParam.destroy();
118+
done();
119+
}
120+
};
121+
var queryError = event => {
122+
eventFailed = event;
123+
};
124+
var myService = new GetGridCellInfosService(dataServiceURL, {
125+
eventListeners: {
126+
processCompleted: queryCompleted,
127+
processFailed: queryError
128+
}
129+
});
130+
spyOn(FetchRequest, 'commit').and.callFake((method, testUrl, params, options) => {
131+
expect(method).toBe('GET');
132+
expect(options).not.toBeNull();
133+
if (testUrl.indexOf('/datasources/World/datasets/LandCover') > 0) {
134+
return Promise.resolve(
135+
new Response(
136+
`{"childUriList":["http://localhost:8090/iserver/services/data-world/rest/data/datasources/World/datasets/LandCover/fields","http://localhost:8090/iserver/services/data-world/rest/data/datasources/World/datasets/LandCover/features","http://localhost:8090/iserver/services/data-world/rest/data/datasources/World/datasets/LandCover/domain"],"supportAttachments":false,"supportFeatureMetadatas":false,"datasetInfo":{"pixelFormat":"BIT32","maxValue":13,"description":"","type":"GRID","blockSize":256,"dataSourceName":"World","tableName":"LandCover","noValue":-9999,"minValue":0,"isReadOnly":false,"encodeType":"SGL","width":5760,"bounds":{"top":90,"left":-180,"bottom":-90,"leftBottom":{"x":-180,"y":-90},"right":180,"rightTop":{"x":180,"y":90}},"name":"LandCover","prjCoordSys":{"distanceUnit":"METER","projectionParam":null,"epsgCode":4326,"coordUnit":"DEGREE","name":"Longitude / Latitude Coordinate System---GCS_WGS_1984","projection":null,"type":"PCS_EARTH_LONGITUDE_LATITUDE","coordSystem":{"datum":{"name":"D_WGS_1984","type":"DATUM_WGS_1984","spheroid":{"flatten":0.00335281066474748,"name":"WGS_1984","axis":6378137,"type":"SPHEROID_WGS_1984"}},"unit":"DEGREE","spatialRefType":"SPATIALREF_EARTH_LONGITUDE_LATITUDE","name":"GCS_WGS_1984","type":"GCS_WGS_1984","primeMeridian":{"longitudeValue":0,"name":"Greenwich","type":"PRIMEMERIDIAN_GREENWICH"}}},"datasourceConnectionInfo":null,"height":2880}}`
137+
)
138+
);
139+
} else {
140+
if (testUrl.indexOf('/datasources/World/datasets/LandCover/gridValue?x=110&y=50') > 0) {
141+
return Promise.resolve(
142+
new Response(`{"column":4640,"row":640,"value":1,"centerPoint":{"x":110,"y":50}}`)
143+
);
144+
}
145+
}
146+
return null;
147+
});
148+
myService.processAsync(queryParam);
149+
});
150+
97151
it('fail:processAsync', done => {
98152
var url = dataServiceURL + '/datasources/World/datasets';
99153
var queryCompleted = event => {

test/common/iServer/SetLayerStatusServiceSpec.js

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,51 @@ describe('SetLayerStatusService_processAsync', () => {
150150
});
151151
setLayerStatusService.processAsync(setLayerStatusParams).then(setLayerStatusCompleted);
152152
})
153+
154+
it('processAsync_resourceID_null eventListeners', (done) => {
155+
var url = GlobeParameter.WorldURL;
156+
var setLayersStatusEvtArgs = null;
157+
var setLayerStatusParams = new SetLayerStatusParameters();
158+
var layerStatus = new LayerStatus();
159+
layerStatus.layerName = "super";
160+
layerStatus.isVisible = true;
161+
setLayerStatusParams.layerStatusList.push(layerStatus);
162+
var setLayerStatusCompleted = (result) => {
163+
setLayersStatusEvtArgs = result;
164+
try {
165+
expect(setLayersStatusEvtArgs.result).not.toBeNull();
166+
expect(setLayerStatusService.lastparams).not.toBeNull();
167+
setLayerStatusParams.destroy();
168+
setLayerStatusService.destroy();
169+
done();
170+
} catch (exception) {
171+
expect(false).toBeTruthy();
172+
console.log("SetLayerStatusService_" + exception.name + ":" + exception.message);
173+
setLayerStatusParams.destroy();
174+
setLayerStatusService.destroy();
175+
done();
176+
}
177+
};
178+
var setLayerStatusService = new SetLayerStatusService(url, {
179+
eventListeners: {
180+
processCompleted: setLayerStatusCompleted
181+
}
182+
});
183+
spyOn(FetchRequest, 'post').and.callFake((testUrl) => {
184+
expect(testUrl).toBe(url+"/tempLayersSet");
185+
return Promise.resolve(new Response(`{"postResultType":"CreateChild","newResourceID":"f701028a2b7144b19b582f55c1902b18_e0d63a4c61b840d1b33852fae49bad11","succeed":true,"newResourceLocation":"http://localhost:8090/iserver/services/map-world/rest/maps/World/tempLayersSet/f701028a2b7144b19b582f55c1902b18_e0d63a4c61b840d1b33852fae49bad11.json"}`));
186+
});
187+
spyOn(FetchRequest, 'put').and.callFake((testUrl,params) => {
188+
expect(testUrl).toBe(url+"/tempLayersSet/f701028a2b7144b19b582f55c1902b18_e0d63a4c61b840d1b33852fae49bad11?elementRemain=true&reference=f701028a2b7144b19b582f55c1902b18_e0d63a4c61b840d1b33852fae49bad11&holdTime=15");
189+
expect(params).not.toBeNull();
190+
var paramsObj = JSON.parse(params.replace(/'/g, "\""));
191+
expect(paramsObj[0].name).toContain("World");
192+
expect(paramsObj[0].subLayers.layers[0].name).toBe("super");
193+
expect(paramsObj[0].subLayers.layers[0].type).toBe("UGC");
194+
return Promise.resolve(new Response(`{"succeed":true}`));
195+
});
196+
setLayerStatusService.processAsync(setLayerStatusParams);
197+
})
153198
});
154199

155200

0 commit comments

Comments
 (0)