"use strict"; (function () { 'use strict'; angular.module('assetModule') .factory('ciExplorerCache', ['$log', function ($log) { function generateData(count, result) { for (var i = 0; i < count; i++) { result.push({ realObject: { name: i + 1, isChild: true }, instanceId: "ACC" + i, assetType: "Software" }); } } var largeData1 = { totalCount: 198, relatedCis: [] }; generateData(100, largeData1.relatedCis); largeData1.relatedCis[0] = { "relationshipClassId": "BMC_BaseRelationship", "type": "asset", "parentId": "ASHAA5V0GQBORANBA2B584OBL2G6PM", "relationshipType": "allrelated", "realObject": { "reconciliationId": "REHAA5V0GQBORANBA16O83BDO6G66M", "name": "Dell Latitude E6430 with a display, hard-drive, floppy disk, vintage cd-rom drive, and non-laser mouse", "classId": "BMC_COMPUTERSYSTEM", "status": { "value": "In Repair Very Often" }, "hasImpact": true, "isParent": true, "isChild": false, "instanceId": "ASHAA5V0GQBORANBA16O83BDO6G66K", "assetType": "Computer System", "manufacturer": "Dell Group Incorporated", "model": "E6430 XC1 BN234 77 XL", "assetId": "GCS000000000002" }, "id": "REHAA5V0GQBORANBA2B584OBL2G6PO" }; largeData1.relatedCis[1] = { "relationshipClassId": "BMC_BaseRelationship", "type": "asset", "parentId": "ASHAA5V0GQBORANBA2B584OBL2G6PM", "relationshipType": "component", "realObject": { "reconciliationId": "REHAA5V0GQBORANBA16O83BDO6G66M", "name": "Dell Latitude E6430", "classId": "BMC_COMPUTERSYSTEM", "status": { "value": "In Repair" }, "hasImpact": false, "isParent": false, "isChild": true, "instanceId": "ASHAA5V0GQBORANBA16O83BDO6G66K", "assetType": "Computer System", "manufacturer": "Dell", "model": "E6430", "assetId": "GCS000000000002" }, "id": "REHAA5V0GQBORANBA2B584OBL2G6PO" }; largeData1.relatedCis[2] = { "relationshipClassId": "BMC_BaseRelationship", "type": "asset", "parentId": "ASHAA5V0GQBORANBA2B584OBL2G6PM", "relationshipType": "dependency", "realObject": { "reconciliationId": "REHAA5V0GQBORANBA16O83BDO6G66M", "name": "Dell Latitude E6430 with a display, hard-drive, floppy disk, vintage cd-rom drive, and non-laser mouse", "classId": "BMC_COMPUTERSYSTEM", "status": { "value": "In Repair Very Often" }, "hasImpact": false, "isParent": false, "isChild": false, "instanceId": "ASHAA5V0GQBORANBA16O83BDO6G66K", "assetType": "Computer System", "manufacturer": "Dell Group Incorporated", "model": "E6430 XC1 BN234 77 XL", "assetId": "GCS000000000002" }, "id": "REHAA5V0GQBORANBA2B584OBL2G6PO" }; var largeData2 = { totalCount: 198, relatedCis: [] }; generateData(98, largeData2.relatedCis); var mediumData = { totalCount: 105, relatedCis: [] }; generateData(mediumData.totalCount, mediumData.relatedCis); var smallData = { totalCount: 10, relatedCis: [] }; generateData(smallData.totalCount, smallData.relatedCis); var data = {}; function getHashCode(criteria) { return JSON.stringify(criteria); } function reset() { //todo: test data should be explicitly enabled on dev machine if needed //data = _.cloneDeep(initialData); } reset(); return { get: function (criteria) { $log.log(getHashCode(criteria)); return _.cloneDeep(data[getHashCode(criteria)]); }, put: function (criteria, entry) { data[getHashCode(criteria)] = _.cloneDeep(entry); }, reset: reset }; } ]); }());