@fluid-experimental/property-properties 0.58.1001 → 0.58.2000-58133
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/dist/containerSerializer.d.ts.map +1 -1
- package/dist/containerSerializer.js +4 -10
- package/dist/containerSerializer.js.map +1 -1
- package/dist/enableValidations.d.ts.map +1 -1
- package/dist/enableValidations.js +1 -1
- package/dist/enableValidations.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/properties/abstractStaticCollectionProperty.d.ts.map +1 -1
- package/dist/properties/abstractStaticCollectionProperty.js +1 -28
- package/dist/properties/abstractStaticCollectionProperty.js.map +1 -1
- package/dist/properties/arrayProperty.d.ts.map +1 -1
- package/dist/properties/arrayProperty.js +26 -85
- package/dist/properties/arrayProperty.js.map +1 -1
- package/dist/properties/baseProperty.d.ts.map +1 -1
- package/dist/properties/baseProperty.js +9 -71
- package/dist/properties/baseProperty.js.map +1 -1
- package/dist/properties/boolProperty.d.ts.map +1 -1
- package/dist/properties/boolProperty.js +0 -1
- package/dist/properties/boolProperty.js.map +1 -1
- package/dist/properties/containerProperty.d.ts.map +1 -1
- package/dist/properties/containerProperty.js +4 -22
- package/dist/properties/containerProperty.js.map +1 -1
- package/dist/properties/enumArrayProperty.d.ts.map +1 -1
- package/dist/properties/enumArrayProperty.js +2 -14
- package/dist/properties/enumArrayProperty.js.map +1 -1
- package/dist/properties/enumProperty.d.ts.map +1 -1
- package/dist/properties/enumProperty.js +3 -10
- package/dist/properties/enumProperty.js.map +1 -1
- package/dist/properties/floatProperties.js +0 -2
- package/dist/properties/floatProperties.js.map +1 -1
- package/dist/properties/index.d.ts +7 -38
- package/dist/properties/index.d.ts.map +1 -1
- package/dist/properties/index.js +37 -68
- package/dist/properties/index.js.map +1 -1
- package/dist/properties/indexedCollectionBaseProperty.d.ts.map +1 -1
- package/dist/properties/indexedCollectionBaseProperty.js +6 -18
- package/dist/properties/indexedCollectionBaseProperty.js.map +1 -1
- package/dist/properties/intProperties.d.ts.map +1 -1
- package/dist/properties/intProperties.js +3 -20
- package/dist/properties/intProperties.js.map +1 -1
- package/dist/properties/lazyLoadedProperties.js.map +1 -1
- package/dist/properties/mapProperty.d.ts.map +1 -1
- package/dist/properties/mapProperty.js +4 -23
- package/dist/properties/mapProperty.js.map +1 -1
- package/dist/properties/namedNodeProperty.d.ts.map +1 -1
- package/dist/properties/namedNodeProperty.js.map +1 -1
- package/dist/properties/namedProperty.d.ts.map +1 -1
- package/dist/properties/namedProperty.js +0 -3
- package/dist/properties/namedProperty.js.map +1 -1
- package/dist/properties/nodeProperty.d.ts.map +1 -1
- package/dist/properties/nodeProperty.js +0 -3
- package/dist/properties/nodeProperty.js.map +1 -1
- package/dist/properties/primitiveTypeCasts.d.ts.map +1 -1
- package/dist/properties/primitiveTypeCasts.js +2 -2
- package/dist/properties/primitiveTypeCasts.js.map +1 -1
- package/dist/properties/referenceArrayProperty.d.ts.map +1 -1
- package/dist/properties/referenceArrayProperty.js +3 -16
- package/dist/properties/referenceArrayProperty.js.map +1 -1
- package/dist/properties/referenceMapProperty.d.ts.map +1 -1
- package/dist/properties/referenceMapProperty.js +3 -13
- package/dist/properties/referenceMapProperty.js.map +1 -1
- package/dist/properties/referenceProperty.d.ts.map +1 -1
- package/dist/properties/referenceProperty.js +4 -12
- package/dist/properties/referenceProperty.js.map +1 -1
- package/dist/properties/setProperty.d.ts.map +1 -1
- package/dist/properties/setProperty.js +3 -22
- package/dist/properties/setProperty.js.map +1 -1
- package/dist/properties/stringProperty.d.ts.map +1 -1
- package/dist/properties/stringProperty.js +12 -48
- package/dist/properties/stringProperty.js.map +1 -1
- package/dist/properties/uintProperties.js +0 -3
- package/dist/properties/uintProperties.js.map +1 -1
- package/dist/properties/valueArrayProperty.d.ts.map +1 -1
- package/dist/properties/valueArrayProperty.js +3 -45
- package/dist/properties/valueArrayProperty.js.map +1 -1
- package/dist/properties/valueMapProperty.d.ts.map +1 -1
- package/dist/properties/valueMapProperty.js +4 -29
- package/dist/properties/valueMapProperty.js.map +1 -1
- package/dist/properties/valueProperty.d.ts.map +1 -1
- package/dist/properties/valueProperty.js +2 -14
- package/dist/properties/valueProperty.js.map +1 -1
- package/dist/propertyFactory.d.ts.map +1 -1
- package/dist/propertyFactory.js +35 -72
- package/dist/propertyFactory.js.map +1 -1
- package/dist/propertyTemplate.d.ts.map +1 -1
- package/dist/propertyTemplate.js +0 -14
- package/dist/propertyTemplate.js.map +1 -1
- package/dist/propertyTemplateWrapper.d.ts.map +1 -1
- package/dist/propertyTemplateWrapper.js +4 -12
- package/dist/propertyTemplateWrapper.js.map +1 -1
- package/dist/propertyUtils.d.ts.map +1 -1
- package/dist/propertyUtils.js.map +1 -1
- package/dist/test/properties/arrayProperty.spec.js +82 -82
- package/dist/test/properties/arrayProperty.spec.js.map +1 -1
- package/dist/test/properties/baseProperty.spec.js +53 -53
- package/dist/test/properties/baseProperty.spec.js.map +1 -1
- package/dist/test/properties/containerProperty.spec.js +25 -25
- package/dist/test/properties/containerProperty.spec.js.map +1 -1
- package/dist/test/properties/customArrayProperty.spec.js +35 -35
- package/dist/test/properties/customArrayProperty.spec.js.map +1 -1
- package/dist/test/properties/enumArrayProperty.spec.js +6 -6
- package/dist/test/properties/enumArrayProperty.spec.js.map +1 -1
- package/dist/test/properties/enumProperty.spec.js +26 -26
- package/dist/test/properties/enumProperty.spec.js.map +1 -1
- package/dist/test/properties/float32.spec.js.map +1 -1
- package/dist/test/properties/int64ArrayProperty.spec.js +22 -22
- package/dist/test/properties/int64ArrayProperty.spec.js.map +1 -1
- package/dist/test/properties/int64MapProperty.spec.js +28 -28
- package/dist/test/properties/int64MapProperty.spec.js.map +1 -1
- package/dist/test/properties/int64Property.spec.js +11 -11
- package/dist/test/properties/int64Property.spec.js.map +1 -1
- package/dist/test/properties/isLeafNode.spec.js +25 -25
- package/dist/test/properties/isLeafNode.spec.js.map +1 -1
- package/dist/test/properties/mapProperty.spec.js +110 -110
- package/dist/test/properties/mapProperty.spec.js.map +1 -1
- package/dist/test/properties/namedNodeProperty.spec.js +5 -5
- package/dist/test/properties/namedNodeProperty.spec.js.map +1 -1
- package/dist/test/properties/nodeProperty.spec.js +160 -160
- package/dist/test/properties/nodeProperty.spec.js.map +1 -1
- package/dist/test/properties/referenceProperty.spec.js +21 -21
- package/dist/test/properties/referenceProperty.spec.js.map +1 -1
- package/dist/test/properties/relationshipProperty.spec.js +4 -4
- package/dist/test/properties/relationshipProperty.spec.js.map +1 -1
- package/dist/test/properties/setProperty.spec.js +32 -32
- package/dist/test/properties/setProperty.spec.js.map +1 -1
- package/dist/test/properties/stringProperty.spec.js +38 -38
- package/dist/test/properties/stringProperty.spec.js.map +1 -1
- package/dist/test/properties/uint64Property.spec.js +3 -3
- package/dist/test/properties/uint64Property.spec.js.map +1 -1
- package/dist/test/properties/valueMapProperty.spec.js +28 -28
- package/dist/test/properties/valueMapProperty.spec.js.map +1 -1
- package/dist/test/properties/valueProperty.spec.js +7 -7
- package/dist/test/properties/valueProperty.spec.js.map +1 -1
- package/dist/test/propertyFactory.spec.js +559 -560
- package/dist/test/propertyFactory.spec.js.map +1 -1
- package/dist/test/propertyTemplateWrapper.spec.js +38 -38
- package/dist/test/propertyTemplateWrapper.spec.js.map +1 -1
- package/dist/test/propertyUtils.spec.js +5 -5
- package/dist/test/propertyUtils.spec.js.map +1 -1
- package/dist/test/reversibleChangeset.spec.js +266 -266
- package/dist/test/reversibleChangeset.spec.js.map +1 -1
- package/dist/test/setup.js.map +1 -1
- package/dist/test/tsconfig.tsbuildinfo +145 -145
- package/dist/test/utils.spec.js +508 -517
- package/dist/test/utils.spec.js.map +1 -1
- package/dist/test/validation/badMissingSemverInTypeid.js +9 -9
- package/dist/test/validation/badMissingSemverInTypeid.js.map +1 -1
- package/dist/test/validation/badPrimitiveTypeid.js +5 -5
- package/dist/test/validation/badPrimitiveTypeid.js.map +1 -1
- package/dist/test/validation/goodColorId.js +42 -42
- package/dist/test/validation/goodColorId.js.map +1 -1
- package/dist/test/validation/goodColorPalette.js +2 -2
- package/dist/test/validation/goodColorPalette.js.map +1 -1
- package/dist/test/validation/goodPointId.js +9 -9
- package/dist/test/validation/goodPointId.js.map +1 -1
- package/dist/test/validation/reversibleChangeSetTestData.js +1 -1
- package/dist/test/validation/reversibleChangeSetTestData.js.map +1 -1
- package/lib/containerSerializer.js +4 -10
- package/lib/containerSerializer.js.map +1 -1
- package/lib/enableValidations.js +1 -1
- package/lib/enableValidations.js.map +1 -1
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- package/lib/properties/abstractStaticCollectionProperty.js +1 -28
- package/lib/properties/abstractStaticCollectionProperty.js.map +1 -1
- package/lib/properties/arrayProperty.js +26 -85
- package/lib/properties/arrayProperty.js.map +1 -1
- package/lib/properties/baseProperty.js +7 -69
- package/lib/properties/baseProperty.js.map +1 -1
- package/lib/properties/boolProperty.js +0 -1
- package/lib/properties/boolProperty.js.map +1 -1
- package/lib/properties/containerProperty.js +4 -22
- package/lib/properties/containerProperty.js.map +1 -1
- package/lib/properties/enumArrayProperty.js +2 -14
- package/lib/properties/enumArrayProperty.js.map +1 -1
- package/lib/properties/enumProperty.js +3 -10
- package/lib/properties/enumProperty.js.map +1 -1
- package/lib/properties/floatProperties.js +0 -2
- package/lib/properties/floatProperties.js.map +1 -1
- package/lib/properties/index.js +7 -38
- package/lib/properties/index.js.map +1 -1
- package/lib/properties/indexedCollectionBaseProperty.js +6 -18
- package/lib/properties/indexedCollectionBaseProperty.js.map +1 -1
- package/lib/properties/intProperties.js +3 -20
- package/lib/properties/intProperties.js.map +1 -1
- package/lib/properties/lazyLoadedProperties.js.map +1 -1
- package/lib/properties/mapProperty.js +4 -23
- package/lib/properties/mapProperty.js.map +1 -1
- package/lib/properties/namedNodeProperty.js.map +1 -1
- package/lib/properties/namedProperty.js +0 -3
- package/lib/properties/namedProperty.js.map +1 -1
- package/lib/properties/nodeProperty.js +0 -3
- package/lib/properties/nodeProperty.js.map +1 -1
- package/lib/properties/primitiveTypeCasts.js +2 -2
- package/lib/properties/primitiveTypeCasts.js.map +1 -1
- package/lib/properties/referenceArrayProperty.js +3 -16
- package/lib/properties/referenceArrayProperty.js.map +1 -1
- package/lib/properties/referenceMapProperty.js +3 -13
- package/lib/properties/referenceMapProperty.js.map +1 -1
- package/lib/properties/referenceProperty.js +4 -12
- package/lib/properties/referenceProperty.js.map +1 -1
- package/lib/properties/setProperty.js +3 -22
- package/lib/properties/setProperty.js.map +1 -1
- package/lib/properties/stringProperty.js +12 -48
- package/lib/properties/stringProperty.js.map +1 -1
- package/lib/properties/uintProperties.js +0 -3
- package/lib/properties/uintProperties.js.map +1 -1
- package/lib/properties/valueArrayProperty.js +3 -45
- package/lib/properties/valueArrayProperty.js.map +1 -1
- package/lib/properties/valueMapProperty.js +4 -29
- package/lib/properties/valueMapProperty.js.map +1 -1
- package/lib/properties/valueProperty.js +2 -14
- package/lib/properties/valueProperty.js.map +1 -1
- package/lib/propertyFactory.js +35 -72
- package/lib/propertyFactory.js.map +1 -1
- package/lib/propertyTemplate.js +0 -14
- package/lib/propertyTemplate.js.map +1 -1
- package/lib/propertyTemplateWrapper.js +4 -12
- package/lib/propertyTemplateWrapper.js.map +1 -1
- package/lib/propertyUtils.js.map +1 -1
- package/package.json +13 -6
|
@@ -3,14 +3,14 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
/* globals describe */
|
|
6
|
-
/* eslint-disable no-unused-expressions*/
|
|
6
|
+
/* eslint-disable no-unused-expressions */
|
|
7
7
|
/**
|
|
8
8
|
* @fileoverview In this file, we will test the map property
|
|
9
9
|
* object described in /src/properties/mapProperty.js
|
|
10
10
|
*/
|
|
11
|
+
const { ChangeSet } = require('@fluid-experimental/property-changeset');
|
|
11
12
|
const { PropertyFactory } = require('../..');
|
|
12
13
|
const { BaseProperty } = require('../..');
|
|
13
|
-
const { ChangeSet } = require('@fluid-experimental/property-changeset');
|
|
14
14
|
describe('ValueMapProperty', function () {
|
|
15
15
|
var myNode, Uint32Map;
|
|
16
16
|
before(function () {
|
|
@@ -19,8 +19,8 @@ describe('ValueMapProperty', function () {
|
|
|
19
19
|
typeid: 'autodesk.tests:ValueMapTestPropertyID-1.0.0',
|
|
20
20
|
inherits: ['NamedProperty'],
|
|
21
21
|
properties: [
|
|
22
|
-
{ id: 'Uint32Map', typeid: 'Uint32', context: 'map' }
|
|
23
|
-
]
|
|
22
|
+
{ id: 'Uint32Map', typeid: 'Uint32', context: 'map' },
|
|
23
|
+
],
|
|
24
24
|
};
|
|
25
25
|
// Register a template with a set property for the tests
|
|
26
26
|
var AllTypesTestPropertyTemplate = {
|
|
@@ -36,8 +36,8 @@ describe('ValueMapProperty', function () {
|
|
|
36
36
|
{ id: 'Float64Map', typeid: 'Float64', context: 'map' },
|
|
37
37
|
{ id: 'Float32Map', typeid: 'Float32', context: 'map' },
|
|
38
38
|
{ id: 'StringMap', typeid: 'String', context: 'map' },
|
|
39
|
-
{ id: 'BoolMap', typeid: 'Bool', context: 'map' }
|
|
40
|
-
]
|
|
39
|
+
{ id: 'BoolMap', typeid: 'Bool', context: 'map' },
|
|
40
|
+
],
|
|
41
41
|
};
|
|
42
42
|
PropertyFactory._reregister(TestPropertyTemplate);
|
|
43
43
|
PropertyFactory._reregister(AllTypesTestPropertyTemplate);
|
|
@@ -146,7 +146,7 @@ describe('ValueMapProperty', function () {
|
|
|
146
146
|
expect(Uint32Map.has('value2')).to.be.ok;
|
|
147
147
|
expect(Uint32Map.has('value3')).to.be.ok;
|
|
148
148
|
expect(Uint32Map.serialize()).to.deep.equal({
|
|
149
|
-
insert: { 'value1': 1, 'value2': 2, 'value3': 3 }
|
|
149
|
+
insert: { 'value1': 1, 'value2': 2, 'value3': 3 },
|
|
150
150
|
});
|
|
151
151
|
});
|
|
152
152
|
it('should be possible to remove entries', function () {
|
|
@@ -165,12 +165,12 @@ describe('ValueMapProperty', function () {
|
|
|
165
165
|
Uint32Map.remove('value1');
|
|
166
166
|
Uint32Map.insert('value1', 2);
|
|
167
167
|
expect(Uint32Map.serialize({ 'dirtyOnly': true })).to.deep.equal({
|
|
168
|
-
modify: { 'value1': 2 }
|
|
168
|
+
modify: { 'value1': 2 },
|
|
169
169
|
});
|
|
170
170
|
// This should also work for a set operation
|
|
171
171
|
Uint32Map.set('value1', 3);
|
|
172
172
|
expect(Uint32Map.serialize({ 'dirtyOnly': true })).to.deep.equal({
|
|
173
|
-
modify: { 'value1': 3 }
|
|
173
|
+
modify: { 'value1': 3 },
|
|
174
174
|
});
|
|
175
175
|
// But setting the same value should give an empty ChangeSet
|
|
176
176
|
Uint32Map.cleanDirty(BaseProperty.MODIFIED_STATE_FLAGS.DIRTY |
|
|
@@ -186,12 +186,12 @@ describe('ValueMapProperty', function () {
|
|
|
186
186
|
expect(Uint32Map.serialize({
|
|
187
187
|
'dirtyOnly': true,
|
|
188
188
|
'includeRootTypeid': false,
|
|
189
|
-
'dirtinessType': BaseProperty.MODIFIED_STATE_FLAGS.PENDING_CHANGE
|
|
189
|
+
'dirtinessType': BaseProperty.MODIFIED_STATE_FLAGS.PENDING_CHANGE,
|
|
190
190
|
})).to.deep.equal({ modify: { 'value1': 2 } });
|
|
191
191
|
expect(Uint32Map.serialize({
|
|
192
192
|
'dirtyOnly': true,
|
|
193
193
|
'includeRootTypeid': false,
|
|
194
|
-
'dirtinessType': BaseProperty.MODIFIED_STATE_FLAGS.DIRTY
|
|
194
|
+
'dirtinessType': BaseProperty.MODIFIED_STATE_FLAGS.DIRTY,
|
|
195
195
|
})).to.deep.equal({ insert: { 'value1': 2 } });
|
|
196
196
|
});
|
|
197
197
|
it('deserialize should work', function () {
|
|
@@ -347,12 +347,12 @@ describe('ValueMapProperty', function () {
|
|
|
347
347
|
callbacks: [insertNodeInRoot, insertNodeInRoot, removeFirstNodeInRoot, removeFirstNodeInRoot],
|
|
348
348
|
post: function (changeset) {
|
|
349
349
|
expect(changeset).to.be.empty;
|
|
350
|
-
}
|
|
350
|
+
},
|
|
351
351
|
});
|
|
352
352
|
});
|
|
353
353
|
it('of inserts and modifies should work', function () {
|
|
354
354
|
testChangeSetSquashing({
|
|
355
|
-
callbacks: [insertNodeInRoot, insertNodeInRoot, insertNodeInRoot, modifyEntry, modifyEntry]
|
|
355
|
+
callbacks: [insertNodeInRoot, insertNodeInRoot, insertNodeInRoot, modifyEntry, modifyEntry],
|
|
356
356
|
});
|
|
357
357
|
});
|
|
358
358
|
it('an insert, modify and a remove should give an empty changeset', function () {
|
|
@@ -360,13 +360,13 @@ describe('ValueMapProperty', function () {
|
|
|
360
360
|
callbacks: [insertNodeInRoot, modifyEntry, modifyEntry, removeFirstNodeInRoot],
|
|
361
361
|
post: function (changeset) {
|
|
362
362
|
expect(changeset).to.be.empty;
|
|
363
|
-
}
|
|
363
|
+
},
|
|
364
364
|
});
|
|
365
365
|
});
|
|
366
366
|
it('should work for modifies after an already existing insert', function () {
|
|
367
367
|
testChangeSetSquashing({
|
|
368
368
|
pre: insertNodeInRoot,
|
|
369
|
-
callbacks: [modifyEntry, modifyEntry]
|
|
369
|
+
callbacks: [modifyEntry, modifyEntry],
|
|
370
370
|
});
|
|
371
371
|
});
|
|
372
372
|
it('of modify and remove after an already existing insert should work', function () {
|
|
@@ -375,7 +375,7 @@ describe('ValueMapProperty', function () {
|
|
|
375
375
|
callbacks: [modifyEntry, removeFirstNodeInRoot],
|
|
376
376
|
post: function (changeset) {
|
|
377
377
|
expect(changeset['map<Uint32>'].Uint32Map).to.have.all.keys('remove');
|
|
378
|
-
}
|
|
378
|
+
},
|
|
379
379
|
});
|
|
380
380
|
});
|
|
381
381
|
it('of remove and insert should result in modify', function () {
|
|
@@ -388,11 +388,11 @@ describe('ValueMapProperty', function () {
|
|
|
388
388
|
removeFirstNodeInRoot,
|
|
389
389
|
function (root) {
|
|
390
390
|
root._properties.Uint32Map.insert('node1', 2);
|
|
391
|
-
}
|
|
391
|
+
},
|
|
392
392
|
],
|
|
393
393
|
post: function (changeset) {
|
|
394
394
|
expect(changeset['map<Uint32>'].Uint32Map).to.have.all.keys('modify');
|
|
395
|
-
}
|
|
395
|
+
},
|
|
396
396
|
});
|
|
397
397
|
});
|
|
398
398
|
});
|
|
@@ -450,14 +450,14 @@ describe('ValueMapProperty', function () {
|
|
|
450
450
|
it('with a NOP should be possible', function () {
|
|
451
451
|
testRebasing({
|
|
452
452
|
op2: insertEntryInRootWithUnqiueKey(),
|
|
453
|
-
compareToSequential: true
|
|
453
|
+
compareToSequential: true,
|
|
454
454
|
});
|
|
455
455
|
});
|
|
456
456
|
it('with independent inserts should be possible', function () {
|
|
457
457
|
testRebasing({
|
|
458
458
|
op1: insertEntryInRootWithUnqiueKey(),
|
|
459
459
|
op2: insertEntryInRootWithUnqiueKey(),
|
|
460
|
-
compareToSequential: true
|
|
460
|
+
compareToSequential: true,
|
|
461
461
|
});
|
|
462
462
|
});
|
|
463
463
|
it('with independent removes should be possible', function () {
|
|
@@ -472,7 +472,7 @@ describe('ValueMapProperty', function () {
|
|
|
472
472
|
op2: function (root) {
|
|
473
473
|
root._properties.Uint32Map.remove('entry2');
|
|
474
474
|
},
|
|
475
|
-
compareToSequential: true
|
|
475
|
+
compareToSequential: true,
|
|
476
476
|
});
|
|
477
477
|
});
|
|
478
478
|
it('with a modify and a remove should possible', function () {
|
|
@@ -482,7 +482,7 @@ describe('ValueMapProperty', function () {
|
|
|
482
482
|
},
|
|
483
483
|
op1: modifyEntry,
|
|
484
484
|
op2: removeFirstNodeInRoot,
|
|
485
|
-
compareToSequential: true
|
|
485
|
+
compareToSequential: true,
|
|
486
486
|
});
|
|
487
487
|
});
|
|
488
488
|
it('with a remove and a modify should possible', function () {
|
|
@@ -498,7 +498,7 @@ describe('ValueMapProperty', function () {
|
|
|
498
498
|
expect(conflicts[0].type).to.be.equal(ChangeSet.ConflictType.ENTRY_MODIFIED_AFTER_REMOVE);
|
|
499
499
|
expect(conflicts[0].path).to.be.equal('Uint32Map[entry1]');
|
|
500
500
|
expect(ChangeSet.isEmptyChangeSet(changeSet)).to.be.ok;
|
|
501
|
-
}
|
|
501
|
+
},
|
|
502
502
|
});
|
|
503
503
|
});
|
|
504
504
|
it('with two compatible removes should be possible', function () {
|
|
@@ -515,7 +515,7 @@ describe('ValueMapProperty', function () {
|
|
|
515
515
|
compareToSequential: false,
|
|
516
516
|
checkResult: function (conflicts, changeSet) {
|
|
517
517
|
expect(ChangeSet.isEmptyChangeSet(changeSet)).to.be.ok;
|
|
518
|
-
}
|
|
518
|
+
},
|
|
519
519
|
});
|
|
520
520
|
});
|
|
521
521
|
it('with two conflicting modifies should be possible and report a conflict', function () {
|
|
@@ -534,7 +534,7 @@ describe('ValueMapProperty', function () {
|
|
|
534
534
|
expect(conflicts).to.have.length(1);
|
|
535
535
|
expect(conflicts[0].type).to.be.equal(ChangeSet.ConflictType.COLLIDING_SET);
|
|
536
536
|
expect(conflicts[0].path).to.be.equal('Uint32Map[entry1]');
|
|
537
|
-
}
|
|
537
|
+
},
|
|
538
538
|
});
|
|
539
539
|
});
|
|
540
540
|
it('with modify followed by remove+insert should be a conflicting set', function () {
|
|
@@ -552,7 +552,7 @@ describe('ValueMapProperty', function () {
|
|
|
552
552
|
expect(conflicts).to.have.length(1);
|
|
553
553
|
expect(conflicts[0].type).to.be.equal(ChangeSet.ConflictType.COLLIDING_SET);
|
|
554
554
|
expect(conflicts[0].path).to.be.equal('Uint32Map[entry1]');
|
|
555
|
-
}
|
|
555
|
+
},
|
|
556
556
|
});
|
|
557
557
|
});
|
|
558
558
|
it('with remove+insert followed by modify should be a conflicting set', function () {
|
|
@@ -572,7 +572,7 @@ describe('ValueMapProperty', function () {
|
|
|
572
572
|
expect(conflicts).to.have.length(1);
|
|
573
573
|
expect(conflicts[0].type).to.be.equal(ChangeSet.ConflictType.COLLIDING_SET);
|
|
574
574
|
expect(conflicts[0].path).to.be.equal('Uint32Map[entry1]');
|
|
575
|
-
}
|
|
575
|
+
},
|
|
576
576
|
});
|
|
577
577
|
});
|
|
578
578
|
it('with conflicting inserts should report conflict', function () {
|
|
@@ -591,7 +591,7 @@ describe('ValueMapProperty', function () {
|
|
|
591
591
|
expect(conflicts).to.have.length(1);
|
|
592
592
|
expect(conflicts[0].type).to.be.equal(ChangeSet.ConflictType.COLLIDING_SET);
|
|
593
593
|
expect(conflicts[0].path).to.be.equal('Uint32Map[entry1]');
|
|
594
|
-
}
|
|
594
|
+
},
|
|
595
595
|
});
|
|
596
596
|
});
|
|
597
597
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"valueMapProperty.spec.js","sourceRoot":"","sources":["../../../src/test/properties/valueMapProperty.spec.js"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n/* globals describe */\n/* eslint-disable no-unused-expressions*/\n/**\n * @fileoverview In this file, we will test the map property\n * object described in /src/properties/mapProperty.js\n */\nconst { PropertyFactory } = require('../..');\nconst { BaseProperty } = require('../..');\nconst { ChangeSet } = require('@fluid-experimental/property-changeset')\n\ndescribe('ValueMapProperty', function () {\n var myNode, Uint32Map;\n\n before(function () {\n\n // Register a template with a set property for the tests\n var TestPropertyTemplate = {\n typeid: 'autodesk.tests:ValueMapTestPropertyID-1.0.0',\n inherits: ['NamedProperty'],\n properties: [\n { id: 'Uint32Map', typeid: 'Uint32', context: 'map' }\n ]\n };\n\n // Register a template with a set property for the tests\n var AllTypesTestPropertyTemplate = {\n typeid: 'autodesk.tests:AllTypesValueMapTestPropertyID-1.0.0',\n inherits: ['NamedProperty'],\n properties: [\n { id: 'Uint32Map', typeid: 'Uint32', context: 'map' },\n { id: 'Uint16Map', typeid: 'Uint16', context: 'map' },\n { id: 'Uint8Map', typeid: 'Uint8', context: 'map' },\n { id: 'Int32Map', typeid: 'Int32', context: 'map' },\n { id: 'Int16Map', typeid: 'Int16', context: 'map' },\n { id: 'Int8Map', typeid: 'Int8', context: 'map' },\n { id: 'Float64Map', typeid: 'Float64', context: 'map' },\n { id: 'Float32Map', typeid: 'Float32', context: 'map' },\n { id: 'StringMap', typeid: 'String', context: 'map' },\n { id: 'BoolMap', typeid: 'Bool', context: 'map' }\n ]\n };\n PropertyFactory._reregister(TestPropertyTemplate);\n PropertyFactory._reregister(AllTypesTestPropertyTemplate);\n\n myNode = PropertyFactory.create('autodesk.tests:ValueMapTestPropertyID-1.0.0');\n Uint32Map = myNode._properties.Uint32Map;\n\n });\n\n // Helper functions for the test cases\n var keyCounter = 0;\n var resetKeyCounter = function () {\n keyCounter = 0;\n };\n\n // Inserts a node with a given key (a new one is generated when undefined)\n var insertEntryInRootWithKey = function (key, root) {\n if (key === undefined) {\n key = 'node' + keyCounter++;\n }\n root._properties.Uint32Map.insert(key, keyCounter);\n };\n\n // Inserts a new node in the root\n var insertNodeInRoot = function (root) {\n insertEntryInRootWithKey(undefined, root);\n };\n\n // Returns a functor that will insert a node with a constant key\n var insertEntryInRootWithUnqiueKey = function () {\n var key = 'node' + keyCounter++;\n return insertEntryInRootWithKey.bind(undefined, key);\n };\n\n // Removes the first node from the root\n var removeFirstNodeInRoot = function (root) {\n var firstKey = root._properties.Uint32Map.getIds()[0];\n root._properties.Uint32Map.remove(firstKey);\n };\n\n // Modifies the first node\n var modifyEntry = function (root) {\n var firstKey = root._properties.Uint32Map.getIds()[0];\n root._properties.Uint32Map.set(firstKey, root._properties.Uint32Map.get(firstKey) + 1);\n };\n\n describe('Inherited API Methods', function () {\n var newMap;\n before(function () {\n newMap = PropertyFactory.create('Int32', 'map');\n });\n it('.clear should work to remove all entries in the map', function () {\n newMap.insert('one', 1);\n newMap.insert('two', 2);\n expect(newMap.getValues()).to.deep.equal({ 'one': 1, 'two': 2 });\n newMap.clear();\n expect(newMap.getValues()).to.deep.equal({});\n });\n\n it('.getAsArray should return an array of map values', function () {\n newMap.insert('one', 1);\n newMap.insert('two', 2);\n expect(newMap.getAsArray()).to.deep.equal([1, 2]);\n });\n\n it('getEntriesReadOnly should work', function () {\n newMap.insert('one', 1);\n newMap.insert('two', 2);\n expect(newMap.getEntriesReadOnly()).to.deep.equal({ 'one': 1, 'two': 2 });\n });\n\n it('.getFullTypeid should return a string of the typeid with or without collection', function () {\n expect(newMap.getFullTypeid()).to.equal('map<Int32>');\n expect(newMap.getFullTypeid(true)).to.equal('Int32');\n });\n\n it('.getIds should return an array of map keys', function () {\n newMap.insert('one', 1);\n newMap.insert('two', 2);\n expect(newMap.getIds()).to.deep.equal(['one', 'two']);\n });\n\n it('.getValues should return an object', function () {\n newMap.insert('one', 1);\n newMap.insert('two', 2);\n expect(newMap.getValues()).to.deep.equal({ 'one': 1, 'two': 2 });\n });\n\n it('.has should return a boolean', function () {\n newMap.insert('one', 1);\n newMap.insert('two', 2);\n expect(newMap.has('two')).to.equal(true);\n expect(newMap.has('three')).to.equal(false);\n });\n\n it('.setValues should work to set multiple values', function () {\n newMap.setValues({ 'first': 11, 'second': 22, 'third': 33 });\n expect(newMap.get('first')).to.equal(11);\n expect(newMap.get('third')).to.equal(33);\n });\n\n afterEach(function () {\n newMap.clear();\n });\n });\n\n describe('Testing creation, assignment and serialization', function () {\n it('should be empty at the beginning', function () {\n expect(Uint32Map.getAsArray()).to.be.empty;\n expect(Uint32Map.getEntriesReadOnly()).to.be.empty;\n expect(ChangeSet.isEmptyChangeSet(Uint32Map.serialize({ 'dirtyOnly': false }))).to.be.ok;\n expect(ChangeSet.isEmptyChangeSet(Uint32Map.serialize({ 'dirtyOnly': true }))).to.be.ok;\n });\n\n it('should be possible to add entries', function () {\n Uint32Map.insert('value1', 1);\n expect(Uint32Map.get('value1')).to.equal(1);\n Uint32Map.insert('value2', 2);\n expect(Uint32Map.get('value2')).to.equal(2);\n Uint32Map.insert('value3', 3);\n expect(Uint32Map.get('value3')).to.equal(3);\n expect(Uint32Map.getEntriesReadOnly()).to.deep.equal({ 'value1': 1, 'value2': 2, 'value3': 3 });\n expect(Uint32Map.getAsArray()).to.include(1, 2, 3);\n expect(Uint32Map.has('value1')).to.be.ok;\n expect(Uint32Map.has('value2')).to.be.ok;\n expect(Uint32Map.has('value3')).to.be.ok;\n expect(Uint32Map.serialize()).to.deep.equal({\n insert: { 'value1': 1, 'value2': 2, 'value3': 3 }\n });\n });\n\n it('should be possible to remove entries', function () {\n Uint32Map.remove('value1');\n expect(Uint32Map.has('value1')).to.be.not.ok;\n Uint32Map.remove('value2');\n expect(Uint32Map.has('value1')).to.be.not.ok;\n Uint32Map.remove('value3');\n expect(Uint32Map.has('value1')).to.be.not.ok;\n expect(ChangeSet.isEmptyChangeSet(Uint32Map.serialize())).to.be.ok;\n });\n\n it('a remove followed by an insert should become a modify', function () {\n Uint32Map.insert('value1', 1);\n Uint32Map.cleanDirty(BaseProperty.MODIFIED_STATE_FLAGS.DIRTY |\n BaseProperty.MODIFIED_STATE_FLAGS.PENDING_CHANGE);\n Uint32Map.remove('value1');\n Uint32Map.insert('value1', 2);\n\n expect(Uint32Map.serialize({ 'dirtyOnly': true })).to.deep.equal({\n modify: { 'value1': 2 }\n });\n\n // This should also work for a set operation\n Uint32Map.set('value1', 3);\n expect(Uint32Map.serialize({ 'dirtyOnly': true })).to.deep.equal({\n modify: { 'value1': 3 }\n });\n\n // But setting the same value should give an empty ChangeSet\n Uint32Map.cleanDirty(BaseProperty.MODIFIED_STATE_FLAGS.DIRTY |\n BaseProperty.MODIFIED_STATE_FLAGS.PENDING_CHANGE);\n Uint32Map.set('value1', 3);\n expect(ChangeSet.isEmptyChangeSet(Uint32Map.serialize({ 'dirtyOnly': true }))).to.be.ok;\n\n // This should be tracked separately for dirtyness and pending changes\n Uint32Map.cleanDirty(BaseProperty.MODIFIED_STATE_FLAGS.DIRTY |\n BaseProperty.MODIFIED_STATE_FLAGS.PENDING_CHANGE);\n Uint32Map.remove('value1');\n Uint32Map.cleanDirty(BaseProperty.MODIFIED_STATE_FLAGS.DIRTY);\n Uint32Map.insert('value1', 2);\n\n expect(Uint32Map.serialize({\n 'dirtyOnly': true,\n 'includeRootTypeid': false,\n 'dirtinessType': BaseProperty.MODIFIED_STATE_FLAGS.PENDING_CHANGE\n })).to.deep.equal({ modify: { 'value1': 2 } });\n\n expect(Uint32Map.serialize({\n 'dirtyOnly': true,\n 'includeRootTypeid': false,\n 'dirtinessType': BaseProperty.MODIFIED_STATE_FLAGS.DIRTY\n })).to.deep.equal({ insert: { 'value1': 2 } });\n\n });\n\n it('deserialize should work', function () {\n var myInitialStateNode = PropertyFactory.create('autodesk.tests:ValueMapTestPropertyID-1.0.0');\n myInitialStateNode._properties.Uint32Map.insert('value1', 1);\n myInitialStateNode._properties.Uint32Map.insert('value2', 2);\n var initialChangeSet = myInitialStateNode.serialize();\n\n // Deserialize a copy into a second node and check that the chageset is correct\n var myDeserializeNode1 = PropertyFactory.create('autodesk.tests:ValueMapTestPropertyID-1.0.0');\n var changes = myDeserializeNode1.deserialize(initialChangeSet);\n expect(changes).to.deep.equal(initialChangeSet);\n expect(myDeserializeNode1.serialize()).to.deep.equal(myInitialStateNode.serialize());\n myDeserializeNode1.cleanDirty(BaseProperty.MODIFIED_STATE_FLAGS.DIRTY |\n BaseProperty.MODIFIED_STATE_FLAGS.PENDING_CHANGE);\n\n // Create a third copy\n var myDeserializeNode2 = PropertyFactory.create('autodesk.tests:ValueMapTestPropertyID-1.0.0');\n myDeserializeNode2.deserialize(initialChangeSet);\n myDeserializeNode2.cleanDirty(BaseProperty.MODIFIED_STATE_FLAGS.DIRTY |\n BaseProperty.MODIFIED_STATE_FLAGS.PENDING_CHANGE);\n\n\n myInitialStateNode.cleanDirty(BaseProperty.MODIFIED_STATE_FLAGS.DIRTY |\n BaseProperty.MODIFIED_STATE_FLAGS.PENDING_CHANGE);\n myInitialStateNode._properties.Uint32Map.set('value1', 2);\n myInitialStateNode._properties.Uint32Map.remove('value2');\n myInitialStateNode._properties.Uint32Map.insert('value3', 3);\n\n var changesChangeSet = myInitialStateNode.serialize({ 'dirtyOnly': true });\n var fullChangeSet = myInitialStateNode.serialize({ 'dirtyOnly': false });\n\n var reportedChanges = myDeserializeNode1.deserialize(fullChangeSet);\n expect(myDeserializeNode1.serialize({ 'dirtyOnly': false })).to.deep.equal(\n myInitialStateNode.serialize({ 'dirtyOnly': false }));\n expect(reportedChanges).to.deep.equal(changesChangeSet);\n expect(myDeserializeNode1.serialize({ 'dirtyOnly': true })).to.deep.equal(changesChangeSet);\n\n var deserializeChanges = myDeserializeNode2.deserialize(fullChangeSet);\n expect(deserializeChanges).to.deep.equal(changesChangeSet);\n });\n\n it('inserting the same key twice should throw an exception', function () {\n var rootNode = PropertyFactory.create('autodesk.tests:ValueMapTestPropertyID-1.0.0');\n rootNode._properties.Uint32Map.insert('node1', 1);\n expect(function () {\n rootNode._properties.Uint32Map.insert('node1', 2);\n }).to.throw();\n });\n\n it('set should overwrite existing entry', function () {\n var rootNode = PropertyFactory.create('autodesk.tests:ValueMapTestPropertyID-1.0.0');\n\n rootNode._properties.Uint32Map.set('node1', 0);\n rootNode._properties.Uint32Map.set('node1', 1);\n // the set should overwrite the insert\n expect(rootNode.serialize({ 'dirtyOnly': true })['map<Uint32>'].Uint32Map).to.have.all.keys('insert');\n\n // Overwriting with the same property shouldn't dirty the node\n rootNode.cleanDirty(BaseProperty.MODIFIED_STATE_FLAGS.DIRTY |\n BaseProperty.MODIFIED_STATE_FLAGS.PENDING_CHANGE);\n rootNode._properties.Uint32Map.set('node1', 1);\n expect(ChangeSet.isEmptyChangeSet(rootNode.serialize({ 'dirtyOnly': true }))).to.be.ok;\n expect(rootNode.isDirty()).to.be.false;\n\n // Overwriting with a different value should result in a modify\n rootNode._properties.Uint32Map.set('node1', 2);\n expect(rootNode.serialize({ 'dirtyOnly': true })['map<Uint32>'].Uint32Map).to.have.all.keys('modify');\n });\n\n it('casting should work as expected', function () {\n var property = PropertyFactory.create('autodesk.tests:AllTypesValueMapTestPropertyID-1.0.0');\n property._properties.Uint32Map.set('tooLarge', 1e20);\n property._properties.Uint32Map.set('negative', -1);\n\n property._properties.Uint16Map.set('tooLarge', 1e20);\n property._properties.Uint16Map.set('negative', -1);\n\n property._properties.Uint8Map.set('tooLarge', 1e20);\n property._properties.Uint8Map.set('negative', -1);\n\n property._properties.Int16Map.set('tooSmall', -32769);\n property._properties.Int16Map.set('tooLarge', 32768);\n\n property._properties.Int8Map.set('tooSmall', -129);\n property._properties.Int8Map.set('tooLarge', 128);\n\n property._properties.Float64Map.set('value', 1e300);\n property._properties.Float32Map.set('tooLarge', 1e300);\n\n property._properties.StringMap.set('value', 'test');\n\n property._properties.BoolMap.set('true', 1);\n property._properties.BoolMap.set('false', 0);\n\n expect(property._properties.Uint32Map.get('tooLarge')).to.be.below(Math.pow(2, 32));\n expect(property._properties.Uint32Map.get('tooLarge')).to.be.above(-1);\n expect(property._properties.Uint32Map.get('negative')).to.be.below(Math.pow(2, 32));\n expect(property._properties.Uint32Map.get('negative')).to.be.above(-1);\n\n expect(property._properties.Uint16Map.get('tooLarge')).to.be.below(Math.pow(2, 16));\n expect(property._properties.Uint16Map.get('tooLarge')).to.be.above(-1);\n expect(property._properties.Uint16Map.get('negative')).to.be.below(Math.pow(2, 16));\n expect(property._properties.Uint16Map.get('negative')).to.be.above(-1);\n\n expect(property._properties.Uint8Map.get('tooLarge')).to.be.below(Math.pow(2, 8));\n expect(property._properties.Uint8Map.get('tooLarge')).to.be.above(-1);\n expect(property._properties.Uint8Map.get('negative')).to.be.below(Math.pow(2, 8));\n expect(property._properties.Uint8Map.get('negative')).to.be.above(-1);\n\n expect(property._properties.Int16Map.get('tooLarge')).to.be.below(32768);\n expect(property._properties.Int16Map.get('tooLarge')).to.be.above(-32769);\n expect(property._properties.Int16Map.get('tooSmall')).to.be.below(32768);\n expect(property._properties.Int16Map.get('tooSmall')).to.be.above(-32769);\n\n expect(property._properties.Int8Map.get('tooLarge')).to.be.below(128);\n expect(property._properties.Int8Map.get('tooLarge')).to.be.above(-129);\n expect(property._properties.Int8Map.get('tooSmall')).to.be.below(128);\n expect(property._properties.Int8Map.get('tooSmall')).to.be.above(-129);\n\n expect(property._properties.Float32Map.get('tooLarge')).to.equal(Infinity);\n expect(property._properties.Float64Map.get('value')).to.equal(1e300);\n\n expect(property._properties.StringMap.get('value')).to.equal('test');\n\n expect(property._properties.BoolMap.get('true')).to.equal(true);\n expect(property._properties.BoolMap.get('false')).to.equal(false);\n\n\n });\n\n it('prettyPrint should work', function () {\n var myProp = PropertyFactory.create('autodesk.tests:ValueMapTestPropertyID-1.0.0')._properties.Uint32Map;\n myProp.insert('value1', 1);\n myProp.insert('value2', 2);\n var expectedPrettyStr =\n 'Uint32Map (Map of Uint32):\\n' +\n ' value1: 1\\n' +\n ' value2: 2\\n';\n var prettyStr = '';\n myProp.prettyPrint(function (str) {\n prettyStr += str + '\\n';\n });\n expect(prettyStr).to.equal(expectedPrettyStr);\n });\n });\n\n describe('squashing', function () {\n //\n // Helper function which takes a sequence of callbacks that are suceessively executed\n // and the changes applied by the callbacks are separately tracked and squashed in a\n // a ChangeSet. This ChangeSet is then compared to the state in the property object\n //\n // Optionally, a a callback which controls the initial state before the squashing can\n // be given as first parameter\n //\n var testChangeSetSquashing = function (in_options) {\n resetKeyCounter();\n var testProperty = PropertyFactory.create('autodesk.tests:ValueMapTestPropertyID-1.0.0');\n\n var callbacks = in_options.callbacks;\n if (in_options.pre) {\n in_options.pre(testProperty);\n }\n\n var initialChangeset = new ChangeSet(testProperty.serialize());\n initialChangeset.setIsNormalized(true);\n\n var squashedChangeset = new ChangeSet();\n testProperty.cleanDirty(BaseProperty.MODIFIED_STATE_FLAGS.DIRTY |\n BaseProperty.MODIFIED_STATE_FLAGS.PENDING_CHANGE);\n for (var i = 0; i < callbacks.length; i++) {\n callbacks[i](testProperty);\n var changes = testProperty.serialize({ 'dirtyOnly': true });\n testProperty.cleanDirty(BaseProperty.MODIFIED_STATE_FLAGS.DIRTY |\n BaseProperty.MODIFIED_STATE_FLAGS.PENDING_CHANGE);\n\n squashedChangeset.applyChangeSet(changes);\n }\n\n if (in_options.post) {\n in_options.post(squashedChangeset.getSerializedChangeSet());\n }\n\n initialChangeset.applyChangeSet(squashedChangeset.getSerializedChangeSet());\n expect(initialChangeset.getSerializedChangeSet()).to.deep.equal(testProperty.serialize({ 'dirtyOnly': false }));\n };\n\n it('should work for multiple independent inserts', function () {\n testChangeSetSquashing({ callbacks: [insertNodeInRoot, insertNodeInRoot, insertNodeInRoot] });\n });\n\n it('should work for inserts followed by removes', function () {\n testChangeSetSquashing({\n callbacks: [insertNodeInRoot, insertNodeInRoot, removeFirstNodeInRoot, removeFirstNodeInRoot],\n post: function (changeset) {\n expect(changeset).to.be.empty;\n }\n });\n });\n\n it('of inserts and modifies should work', function () {\n testChangeSetSquashing({\n callbacks: [insertNodeInRoot, insertNodeInRoot, insertNodeInRoot, modifyEntry, modifyEntry]\n });\n });\n it('an insert, modify and a remove should give an empty changeset', function () {\n testChangeSetSquashing({\n callbacks: [insertNodeInRoot, modifyEntry, modifyEntry, removeFirstNodeInRoot],\n post: function (changeset) {\n expect(changeset).to.be.empty;\n }\n });\n });\n it('should work for modifies after an already existing insert', function () {\n testChangeSetSquashing({\n pre: insertNodeInRoot,\n callbacks: [modifyEntry, modifyEntry]\n });\n });\n it('of modify and remove after an already existing insert should work', function () {\n testChangeSetSquashing({\n pre: insertNodeInRoot,\n callbacks: [modifyEntry, removeFirstNodeInRoot],\n post: function (changeset) {\n expect(changeset['map<Uint32>'].Uint32Map).to.have.all.keys('remove');\n }\n });\n });\n it('of remove and insert should result in modify', function () {\n // Create two nodes with the same GUID\n testChangeSetSquashing({\n pre: function (root) {\n root._properties.Uint32Map.insert('node1', 1);\n },\n callbacks: [\n removeFirstNodeInRoot,\n function (root) {\n root._properties.Uint32Map.insert('node1', 2);\n }\n ],\n post: function (changeset) {\n expect(changeset['map<Uint32>'].Uint32Map).to.have.all.keys('modify');\n }\n });\n });\n });\n\n describe('Rebasing', function () {\n var testRebasing = function (in_options) {\n // Prepare the initial state\n var baseProperty1 = PropertyFactory.create('autodesk.tests:ValueMapTestPropertyID-1.0.0');\n if (in_options.prepare) {\n in_options.prepare(baseProperty1);\n }\n // Create two copies of this state\n var baseProperty2 = PropertyFactory.create('autodesk.tests:ValueMapTestPropertyID-1.0.0');\n baseProperty2.deserialize(baseProperty1.serialize());\n var baseProperty3 = PropertyFactory.create('autodesk.tests:ValueMapTestPropertyID-1.0.0');\n baseProperty3.deserialize(baseProperty1.serialize());\n\n // Make sure the states are clear\n baseProperty1.cleanDirty(BaseProperty.MODIFIED_STATE_FLAGS.DIRTY |\n BaseProperty.MODIFIED_STATE_FLAGS.PENDING_CHANGE);\n baseProperty2.cleanDirty(BaseProperty.MODIFIED_STATE_FLAGS.DIRTY |\n BaseProperty.MODIFIED_STATE_FLAGS.PENDING_CHANGE);\n baseProperty3.cleanDirty(BaseProperty.MODIFIED_STATE_FLAGS.DIRTY |\n BaseProperty.MODIFIED_STATE_FLAGS.PENDING_CHANGE);\n\n var initialChangeSet = baseProperty1.serialize();\n\n // Apply the operations to the two properties in parallel\n if (in_options.op1) {\n in_options.op1(baseProperty1);\n }\n if (in_options.op2) {\n in_options.op2(baseProperty2);\n }\n\n // Get the ChangeSets\n var changeSet1 = new ChangeSet(baseProperty1.serialize({ 'dirtyOnly': true }));\n var changeSet2 = baseProperty2.serialize({ 'dirtyOnly': true });\n\n // Perform the actual rebase\n var conflicts = [];\n changeSet1._rebaseChangeSet(changeSet2, conflicts);\n\n var combinedChangeSet = new ChangeSet(initialChangeSet).clone();\n combinedChangeSet.setIsNormalized(true);\n combinedChangeSet.applyChangeSet(changeSet1);\n combinedChangeSet.applyChangeSet(changeSet2);\n\n if (in_options.compareToSequential) {\n if (in_options.op1) {\n in_options.op1(baseProperty3);\n }\n if (in_options.op2) {\n in_options.op2(baseProperty3);\n }\n var finalChangeSet = baseProperty3.serialize({ 'dirtyOnly': false });\n expect(finalChangeSet).to.be.deep.equal(combinedChangeSet.getSerializedChangeSet());\n }\n\n if (in_options.checkResult) {\n in_options.checkResult(conflicts, changeSet2, combinedChangeSet);\n }\n };\n\n it('with a NOP should be possible', function () {\n testRebasing({\n op2: insertEntryInRootWithUnqiueKey(),\n compareToSequential: true\n });\n });\n\n it('with independent inserts should be possible', function () {\n testRebasing({\n op1: insertEntryInRootWithUnqiueKey(),\n op2: insertEntryInRootWithUnqiueKey(),\n compareToSequential: true\n });\n });\n\n it('with independent removes should be possible', function () {\n testRebasing({\n prepare: function (root) {\n root._properties.Uint32Map.insert('entry1', 1);\n root._properties.Uint32Map.insert('entry2', 2);\n },\n op1: function (root) {\n root._properties.Uint32Map.remove('entry1');\n },\n op2: function (root) {\n root._properties.Uint32Map.remove('entry2');\n },\n compareToSequential: true\n });\n });\n\n it('with a modify and a remove should possible', function () {\n testRebasing({\n prepare: function (root) {\n root._properties.Uint32Map.insert('entry1', 1);\n },\n op1: modifyEntry,\n op2: removeFirstNodeInRoot,\n compareToSequential: true\n });\n });\n\n it('with a remove and a modify should possible', function () {\n testRebasing({\n prepare: function (root) {\n root._properties.Uint32Map.insert('entry1', 1);\n },\n op1: removeFirstNodeInRoot,\n op2: modifyEntry,\n compareToSequential: false,\n checkResult: function (conflicts, changeSet) {\n expect(conflicts).to.have.length(1);\n expect(conflicts[0].type).to.be.equal(ChangeSet.ConflictType.ENTRY_MODIFIED_AFTER_REMOVE);\n expect(conflicts[0].path).to.be.equal('Uint32Map[entry1]');\n expect(ChangeSet.isEmptyChangeSet(changeSet)).to.be.ok;\n }\n });\n });\n\n it('with two compatible removes should be possible', function () {\n testRebasing({\n prepare: function (root) {\n root._properties.Uint32Map.insert('entry1', 1);\n },\n op1: function (root) {\n root._properties.Uint32Map.remove('entry1');\n },\n op2: function (root) {\n root._properties.Uint32Map.remove('entry1');\n },\n compareToSequential: false,\n checkResult: function (conflicts, changeSet) {\n expect(ChangeSet.isEmptyChangeSet(changeSet)).to.be.ok;\n }\n });\n });\n\n it('with two conflicting modifies should be possible and report a conflict', function () {\n testRebasing({\n prepare: function (root) {\n root._properties.Uint32Map.insert('entry1', 1);\n },\n op1: function (root) {\n root._properties.Uint32Map.set('entry1', 2);\n },\n op2: function (root) {\n root._properties.Uint32Map.set('entry1', 3);\n },\n compareToSequential: true,\n checkResult: function (conflicts, changeSet) {\n expect(conflicts).to.have.length(1);\n expect(conflicts[0].type).to.be.equal(ChangeSet.ConflictType.COLLIDING_SET);\n expect(conflicts[0].path).to.be.equal('Uint32Map[entry1]');\n }\n });\n });\n\n it('with modify followed by remove+insert should be a conflicting set', function () {\n testRebasing({\n prepare: function (root) {\n root._properties.Uint32Map.insert('entry1', 1);\n },\n op1: modifyEntry,\n op2: function (root) {\n root._properties.Uint32Map.remove('entry1');\n root._properties.Uint32Map.insert('entry1', 2);\n },\n compareToSequential: true,\n checkResult: function (conflicts, changeSet) {\n expect(conflicts).to.have.length(1);\n expect(conflicts[0].type).to.be.equal(ChangeSet.ConflictType.COLLIDING_SET);\n expect(conflicts[0].path).to.be.equal('Uint32Map[entry1]');\n }\n });\n });\n\n it('with remove+insert followed by modify should be a conflicting set', function () {\n testRebasing({\n prepare: function (root) {\n root._properties.Uint32Map.insert('entry1', 1);\n },\n op1: function (root) {\n root._properties.Uint32Map.remove('entry1');\n root._properties.Uint32Map.insert('entry1', 2);\n },\n op2: function (root) {\n root._properties.Uint32Map.set('entry1', 3);\n },\n compareToSequential: true,\n checkResult: function (conflicts, changeSet) {\n expect(conflicts).to.have.length(1);\n expect(conflicts[0].type).to.be.equal(ChangeSet.ConflictType.COLLIDING_SET);\n expect(conflicts[0].path).to.be.equal('Uint32Map[entry1]');\n }\n });\n });\n\n it('with conflicting inserts should report conflict', function () {\n testRebasing({\n prepare: function (root) {\n },\n op1: function (root) {\n root._properties.Uint32Map.insert('entry1', 1);\n },\n op2: function (root) {\n root._properties.Uint32Map.insert('entry1', 2);\n },\n compareToSequential: false,\n checkResult: function (conflicts, changeSet) {\n expect(changeSet['map<Uint32>'].Uint32Map).to.have.all.keys('modify');\n expect(conflicts).to.have.length(1);\n expect(conflicts[0].type).to.be.equal(ChangeSet.ConflictType.COLLIDING_SET);\n expect(conflicts[0].path).to.be.equal('Uint32Map[entry1]');\n }\n });\n });\n });\n});\n"]}
|
|
1
|
+
{"version":3,"file":"valueMapProperty.spec.js","sourceRoot":"","sources":["../../../src/test/properties/valueMapProperty.spec.js"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n/* globals describe */\n/* eslint-disable no-unused-expressions */\n/**\n * @fileoverview In this file, we will test the map property\n * object described in /src/properties/mapProperty.js\n */\nconst { ChangeSet } = require('@fluid-experimental/property-changeset');\nconst { PropertyFactory } = require('../..');\nconst { BaseProperty } = require('../..');\n\ndescribe('ValueMapProperty', function() {\n var myNode, Uint32Map;\n\n before(function() {\n // Register a template with a set property for the tests\n var TestPropertyTemplate = {\n typeid: 'autodesk.tests:ValueMapTestPropertyID-1.0.0',\n inherits: ['NamedProperty'],\n properties: [\n { id: 'Uint32Map', typeid: 'Uint32', context: 'map' },\n ],\n };\n\n // Register a template with a set property for the tests\n var AllTypesTestPropertyTemplate = {\n typeid: 'autodesk.tests:AllTypesValueMapTestPropertyID-1.0.0',\n inherits: ['NamedProperty'],\n properties: [\n { id: 'Uint32Map', typeid: 'Uint32', context: 'map' },\n { id: 'Uint16Map', typeid: 'Uint16', context: 'map' },\n { id: 'Uint8Map', typeid: 'Uint8', context: 'map' },\n { id: 'Int32Map', typeid: 'Int32', context: 'map' },\n { id: 'Int16Map', typeid: 'Int16', context: 'map' },\n { id: 'Int8Map', typeid: 'Int8', context: 'map' },\n { id: 'Float64Map', typeid: 'Float64', context: 'map' },\n { id: 'Float32Map', typeid: 'Float32', context: 'map' },\n { id: 'StringMap', typeid: 'String', context: 'map' },\n { id: 'BoolMap', typeid: 'Bool', context: 'map' },\n ],\n };\n PropertyFactory._reregister(TestPropertyTemplate);\n PropertyFactory._reregister(AllTypesTestPropertyTemplate);\n\n myNode = PropertyFactory.create('autodesk.tests:ValueMapTestPropertyID-1.0.0');\n Uint32Map = myNode._properties.Uint32Map;\n });\n\n // Helper functions for the test cases\n var keyCounter = 0;\n var resetKeyCounter = function() {\n keyCounter = 0;\n };\n\n // Inserts a node with a given key (a new one is generated when undefined)\n var insertEntryInRootWithKey = function(key, root) {\n if (key === undefined) {\n key = 'node' + keyCounter++;\n }\n root._properties.Uint32Map.insert(key, keyCounter);\n };\n\n // Inserts a new node in the root\n var insertNodeInRoot = function(root) {\n insertEntryInRootWithKey(undefined, root);\n };\n\n // Returns a functor that will insert a node with a constant key\n var insertEntryInRootWithUnqiueKey = function() {\n var key = 'node' + keyCounter++;\n return insertEntryInRootWithKey.bind(undefined, key);\n };\n\n // Removes the first node from the root\n var removeFirstNodeInRoot = function(root) {\n var firstKey = root._properties.Uint32Map.getIds()[0];\n root._properties.Uint32Map.remove(firstKey);\n };\n\n // Modifies the first node\n var modifyEntry = function(root) {\n var firstKey = root._properties.Uint32Map.getIds()[0];\n root._properties.Uint32Map.set(firstKey, root._properties.Uint32Map.get(firstKey) + 1);\n };\n\n describe('Inherited API Methods', function() {\n var newMap;\n before(function() {\n newMap = PropertyFactory.create('Int32', 'map');\n });\n it('.clear should work to remove all entries in the map', function() {\n newMap.insert('one', 1);\n newMap.insert('two', 2);\n expect(newMap.getValues()).to.deep.equal({ 'one': 1, 'two': 2 });\n newMap.clear();\n expect(newMap.getValues()).to.deep.equal({});\n });\n\n it('.getAsArray should return an array of map values', function() {\n newMap.insert('one', 1);\n newMap.insert('two', 2);\n expect(newMap.getAsArray()).to.deep.equal([1, 2]);\n });\n\n it('getEntriesReadOnly should work', function() {\n newMap.insert('one', 1);\n newMap.insert('two', 2);\n expect(newMap.getEntriesReadOnly()).to.deep.equal({ 'one': 1, 'two': 2 });\n });\n\n it('.getFullTypeid should return a string of the typeid with or without collection', function() {\n expect(newMap.getFullTypeid()).to.equal('map<Int32>');\n expect(newMap.getFullTypeid(true)).to.equal('Int32');\n });\n\n it('.getIds should return an array of map keys', function() {\n newMap.insert('one', 1);\n newMap.insert('two', 2);\n expect(newMap.getIds()).to.deep.equal(['one', 'two']);\n });\n\n it('.getValues should return an object', function() {\n newMap.insert('one', 1);\n newMap.insert('two', 2);\n expect(newMap.getValues()).to.deep.equal({ 'one': 1, 'two': 2 });\n });\n\n it('.has should return a boolean', function() {\n newMap.insert('one', 1);\n newMap.insert('two', 2);\n expect(newMap.has('two')).to.equal(true);\n expect(newMap.has('three')).to.equal(false);\n });\n\n it('.setValues should work to set multiple values', function() {\n newMap.setValues({ 'first': 11, 'second': 22, 'third': 33 });\n expect(newMap.get('first')).to.equal(11);\n expect(newMap.get('third')).to.equal(33);\n });\n\n afterEach(function() {\n newMap.clear();\n });\n });\n\n describe('Testing creation, assignment and serialization', function() {\n it('should be empty at the beginning', function() {\n expect(Uint32Map.getAsArray()).to.be.empty;\n expect(Uint32Map.getEntriesReadOnly()).to.be.empty;\n expect(ChangeSet.isEmptyChangeSet(Uint32Map.serialize({ 'dirtyOnly': false }))).to.be.ok;\n expect(ChangeSet.isEmptyChangeSet(Uint32Map.serialize({ 'dirtyOnly': true }))).to.be.ok;\n });\n\n it('should be possible to add entries', function() {\n Uint32Map.insert('value1', 1);\n expect(Uint32Map.get('value1')).to.equal(1);\n Uint32Map.insert('value2', 2);\n expect(Uint32Map.get('value2')).to.equal(2);\n Uint32Map.insert('value3', 3);\n expect(Uint32Map.get('value3')).to.equal(3);\n expect(Uint32Map.getEntriesReadOnly()).to.deep.equal({ 'value1': 1, 'value2': 2, 'value3': 3 });\n expect(Uint32Map.getAsArray()).to.include(1, 2, 3);\n expect(Uint32Map.has('value1')).to.be.ok;\n expect(Uint32Map.has('value2')).to.be.ok;\n expect(Uint32Map.has('value3')).to.be.ok;\n expect(Uint32Map.serialize()).to.deep.equal({\n insert: { 'value1': 1, 'value2': 2, 'value3': 3 },\n });\n });\n\n it('should be possible to remove entries', function() {\n Uint32Map.remove('value1');\n expect(Uint32Map.has('value1')).to.be.not.ok;\n Uint32Map.remove('value2');\n expect(Uint32Map.has('value1')).to.be.not.ok;\n Uint32Map.remove('value3');\n expect(Uint32Map.has('value1')).to.be.not.ok;\n expect(ChangeSet.isEmptyChangeSet(Uint32Map.serialize())).to.be.ok;\n });\n\n it('a remove followed by an insert should become a modify', function() {\n Uint32Map.insert('value1', 1);\n Uint32Map.cleanDirty(BaseProperty.MODIFIED_STATE_FLAGS.DIRTY |\n BaseProperty.MODIFIED_STATE_FLAGS.PENDING_CHANGE);\n Uint32Map.remove('value1');\n Uint32Map.insert('value1', 2);\n\n expect(Uint32Map.serialize({ 'dirtyOnly': true })).to.deep.equal({\n modify: { 'value1': 2 },\n });\n\n // This should also work for a set operation\n Uint32Map.set('value1', 3);\n expect(Uint32Map.serialize({ 'dirtyOnly': true })).to.deep.equal({\n modify: { 'value1': 3 },\n });\n\n // But setting the same value should give an empty ChangeSet\n Uint32Map.cleanDirty(BaseProperty.MODIFIED_STATE_FLAGS.DIRTY |\n BaseProperty.MODIFIED_STATE_FLAGS.PENDING_CHANGE);\n Uint32Map.set('value1', 3);\n expect(ChangeSet.isEmptyChangeSet(Uint32Map.serialize({ 'dirtyOnly': true }))).to.be.ok;\n\n // This should be tracked separately for dirtyness and pending changes\n Uint32Map.cleanDirty(BaseProperty.MODIFIED_STATE_FLAGS.DIRTY |\n BaseProperty.MODIFIED_STATE_FLAGS.PENDING_CHANGE);\n Uint32Map.remove('value1');\n Uint32Map.cleanDirty(BaseProperty.MODIFIED_STATE_FLAGS.DIRTY);\n Uint32Map.insert('value1', 2);\n\n expect(Uint32Map.serialize({\n 'dirtyOnly': true,\n 'includeRootTypeid': false,\n 'dirtinessType': BaseProperty.MODIFIED_STATE_FLAGS.PENDING_CHANGE,\n })).to.deep.equal({ modify: { 'value1': 2 } });\n\n expect(Uint32Map.serialize({\n 'dirtyOnly': true,\n 'includeRootTypeid': false,\n 'dirtinessType': BaseProperty.MODIFIED_STATE_FLAGS.DIRTY,\n })).to.deep.equal({ insert: { 'value1': 2 } });\n });\n\n it('deserialize should work', function() {\n var myInitialStateNode = PropertyFactory.create('autodesk.tests:ValueMapTestPropertyID-1.0.0');\n myInitialStateNode._properties.Uint32Map.insert('value1', 1);\n myInitialStateNode._properties.Uint32Map.insert('value2', 2);\n var initialChangeSet = myInitialStateNode.serialize();\n\n // Deserialize a copy into a second node and check that the chageset is correct\n var myDeserializeNode1 = PropertyFactory.create('autodesk.tests:ValueMapTestPropertyID-1.0.0');\n var changes = myDeserializeNode1.deserialize(initialChangeSet);\n expect(changes).to.deep.equal(initialChangeSet);\n expect(myDeserializeNode1.serialize()).to.deep.equal(myInitialStateNode.serialize());\n myDeserializeNode1.cleanDirty(BaseProperty.MODIFIED_STATE_FLAGS.DIRTY |\n BaseProperty.MODIFIED_STATE_FLAGS.PENDING_CHANGE);\n\n // Create a third copy\n var myDeserializeNode2 = PropertyFactory.create('autodesk.tests:ValueMapTestPropertyID-1.0.0');\n myDeserializeNode2.deserialize(initialChangeSet);\n myDeserializeNode2.cleanDirty(BaseProperty.MODIFIED_STATE_FLAGS.DIRTY |\n BaseProperty.MODIFIED_STATE_FLAGS.PENDING_CHANGE);\n\n myInitialStateNode.cleanDirty(BaseProperty.MODIFIED_STATE_FLAGS.DIRTY |\n BaseProperty.MODIFIED_STATE_FLAGS.PENDING_CHANGE);\n myInitialStateNode._properties.Uint32Map.set('value1', 2);\n myInitialStateNode._properties.Uint32Map.remove('value2');\n myInitialStateNode._properties.Uint32Map.insert('value3', 3);\n\n var changesChangeSet = myInitialStateNode.serialize({ 'dirtyOnly': true });\n var fullChangeSet = myInitialStateNode.serialize({ 'dirtyOnly': false });\n\n var reportedChanges = myDeserializeNode1.deserialize(fullChangeSet);\n expect(myDeserializeNode1.serialize({ 'dirtyOnly': false })).to.deep.equal(\n myInitialStateNode.serialize({ 'dirtyOnly': false }));\n expect(reportedChanges).to.deep.equal(changesChangeSet);\n expect(myDeserializeNode1.serialize({ 'dirtyOnly': true })).to.deep.equal(changesChangeSet);\n\n var deserializeChanges = myDeserializeNode2.deserialize(fullChangeSet);\n expect(deserializeChanges).to.deep.equal(changesChangeSet);\n });\n\n it('inserting the same key twice should throw an exception', function() {\n var rootNode = PropertyFactory.create('autodesk.tests:ValueMapTestPropertyID-1.0.0');\n rootNode._properties.Uint32Map.insert('node1', 1);\n expect(function() {\n rootNode._properties.Uint32Map.insert('node1', 2);\n }).to.throw();\n });\n\n it('set should overwrite existing entry', function() {\n var rootNode = PropertyFactory.create('autodesk.tests:ValueMapTestPropertyID-1.0.0');\n\n rootNode._properties.Uint32Map.set('node1', 0);\n rootNode._properties.Uint32Map.set('node1', 1);\n // the set should overwrite the insert\n expect(rootNode.serialize({ 'dirtyOnly': true })['map<Uint32>'].Uint32Map).to.have.all.keys('insert');\n\n // Overwriting with the same property shouldn't dirty the node\n rootNode.cleanDirty(BaseProperty.MODIFIED_STATE_FLAGS.DIRTY |\n BaseProperty.MODIFIED_STATE_FLAGS.PENDING_CHANGE);\n rootNode._properties.Uint32Map.set('node1', 1);\n expect(ChangeSet.isEmptyChangeSet(rootNode.serialize({ 'dirtyOnly': true }))).to.be.ok;\n expect(rootNode.isDirty()).to.be.false;\n\n // Overwriting with a different value should result in a modify\n rootNode._properties.Uint32Map.set('node1', 2);\n expect(rootNode.serialize({ 'dirtyOnly': true })['map<Uint32>'].Uint32Map).to.have.all.keys('modify');\n });\n\n it('casting should work as expected', function() {\n var property = PropertyFactory.create('autodesk.tests:AllTypesValueMapTestPropertyID-1.0.0');\n property._properties.Uint32Map.set('tooLarge', 1e20);\n property._properties.Uint32Map.set('negative', -1);\n\n property._properties.Uint16Map.set('tooLarge', 1e20);\n property._properties.Uint16Map.set('negative', -1);\n\n property._properties.Uint8Map.set('tooLarge', 1e20);\n property._properties.Uint8Map.set('negative', -1);\n\n property._properties.Int16Map.set('tooSmall', -32769);\n property._properties.Int16Map.set('tooLarge', 32768);\n\n property._properties.Int8Map.set('tooSmall', -129);\n property._properties.Int8Map.set('tooLarge', 128);\n\n property._properties.Float64Map.set('value', 1e300);\n property._properties.Float32Map.set('tooLarge', 1e300);\n\n property._properties.StringMap.set('value', 'test');\n\n property._properties.BoolMap.set('true', 1);\n property._properties.BoolMap.set('false', 0);\n\n expect(property._properties.Uint32Map.get('tooLarge')).to.be.below(Math.pow(2, 32));\n expect(property._properties.Uint32Map.get('tooLarge')).to.be.above(-1);\n expect(property._properties.Uint32Map.get('negative')).to.be.below(Math.pow(2, 32));\n expect(property._properties.Uint32Map.get('negative')).to.be.above(-1);\n\n expect(property._properties.Uint16Map.get('tooLarge')).to.be.below(Math.pow(2, 16));\n expect(property._properties.Uint16Map.get('tooLarge')).to.be.above(-1);\n expect(property._properties.Uint16Map.get('negative')).to.be.below(Math.pow(2, 16));\n expect(property._properties.Uint16Map.get('negative')).to.be.above(-1);\n\n expect(property._properties.Uint8Map.get('tooLarge')).to.be.below(Math.pow(2, 8));\n expect(property._properties.Uint8Map.get('tooLarge')).to.be.above(-1);\n expect(property._properties.Uint8Map.get('negative')).to.be.below(Math.pow(2, 8));\n expect(property._properties.Uint8Map.get('negative')).to.be.above(-1);\n\n expect(property._properties.Int16Map.get('tooLarge')).to.be.below(32768);\n expect(property._properties.Int16Map.get('tooLarge')).to.be.above(-32769);\n expect(property._properties.Int16Map.get('tooSmall')).to.be.below(32768);\n expect(property._properties.Int16Map.get('tooSmall')).to.be.above(-32769);\n\n expect(property._properties.Int8Map.get('tooLarge')).to.be.below(128);\n expect(property._properties.Int8Map.get('tooLarge')).to.be.above(-129);\n expect(property._properties.Int8Map.get('tooSmall')).to.be.below(128);\n expect(property._properties.Int8Map.get('tooSmall')).to.be.above(-129);\n\n expect(property._properties.Float32Map.get('tooLarge')).to.equal(Infinity);\n expect(property._properties.Float64Map.get('value')).to.equal(1e300);\n\n expect(property._properties.StringMap.get('value')).to.equal('test');\n\n expect(property._properties.BoolMap.get('true')).to.equal(true);\n expect(property._properties.BoolMap.get('false')).to.equal(false);\n });\n\n it('prettyPrint should work', function() {\n var myProp = PropertyFactory.create('autodesk.tests:ValueMapTestPropertyID-1.0.0')._properties.Uint32Map;\n myProp.insert('value1', 1);\n myProp.insert('value2', 2);\n var expectedPrettyStr =\n 'Uint32Map (Map of Uint32):\\n' +\n ' value1: 1\\n' +\n ' value2: 2\\n';\n var prettyStr = '';\n myProp.prettyPrint(function(str) {\n prettyStr += str + '\\n';\n });\n expect(prettyStr).to.equal(expectedPrettyStr);\n });\n });\n\n describe('squashing', function() {\n //\n // Helper function which takes a sequence of callbacks that are suceessively executed\n // and the changes applied by the callbacks are separately tracked and squashed in a\n // a ChangeSet. This ChangeSet is then compared to the state in the property object\n //\n // Optionally, a a callback which controls the initial state before the squashing can\n // be given as first parameter\n //\n var testChangeSetSquashing = function(in_options) {\n resetKeyCounter();\n var testProperty = PropertyFactory.create('autodesk.tests:ValueMapTestPropertyID-1.0.0');\n\n var callbacks = in_options.callbacks;\n if (in_options.pre) {\n in_options.pre(testProperty);\n }\n\n var initialChangeset = new ChangeSet(testProperty.serialize());\n initialChangeset.setIsNormalized(true);\n\n var squashedChangeset = new ChangeSet();\n testProperty.cleanDirty(BaseProperty.MODIFIED_STATE_FLAGS.DIRTY |\n BaseProperty.MODIFIED_STATE_FLAGS.PENDING_CHANGE);\n for (var i = 0; i < callbacks.length; i++) {\n callbacks[i](testProperty);\n var changes = testProperty.serialize({ 'dirtyOnly': true });\n testProperty.cleanDirty(BaseProperty.MODIFIED_STATE_FLAGS.DIRTY |\n BaseProperty.MODIFIED_STATE_FLAGS.PENDING_CHANGE);\n\n squashedChangeset.applyChangeSet(changes);\n }\n\n if (in_options.post) {\n in_options.post(squashedChangeset.getSerializedChangeSet());\n }\n\n initialChangeset.applyChangeSet(squashedChangeset.getSerializedChangeSet());\n expect(initialChangeset.getSerializedChangeSet()).to.deep.equal(testProperty.serialize({ 'dirtyOnly': false }));\n };\n\n it('should work for multiple independent inserts', function() {\n testChangeSetSquashing({ callbacks: [insertNodeInRoot, insertNodeInRoot, insertNodeInRoot] });\n });\n\n it('should work for inserts followed by removes', function() {\n testChangeSetSquashing({\n callbacks: [insertNodeInRoot, insertNodeInRoot, removeFirstNodeInRoot, removeFirstNodeInRoot],\n post: function(changeset) {\n expect(changeset).to.be.empty;\n },\n });\n });\n\n it('of inserts and modifies should work', function() {\n testChangeSetSquashing({\n callbacks: [insertNodeInRoot, insertNodeInRoot, insertNodeInRoot, modifyEntry, modifyEntry],\n });\n });\n it('an insert, modify and a remove should give an empty changeset', function() {\n testChangeSetSquashing({\n callbacks: [insertNodeInRoot, modifyEntry, modifyEntry, removeFirstNodeInRoot],\n post: function(changeset) {\n expect(changeset).to.be.empty;\n },\n });\n });\n it('should work for modifies after an already existing insert', function() {\n testChangeSetSquashing({\n pre: insertNodeInRoot,\n callbacks: [modifyEntry, modifyEntry],\n });\n });\n it('of modify and remove after an already existing insert should work', function() {\n testChangeSetSquashing({\n pre: insertNodeInRoot,\n callbacks: [modifyEntry, removeFirstNodeInRoot],\n post: function(changeset) {\n expect(changeset['map<Uint32>'].Uint32Map).to.have.all.keys('remove');\n },\n });\n });\n it('of remove and insert should result in modify', function() {\n // Create two nodes with the same GUID\n testChangeSetSquashing({\n pre: function(root) {\n root._properties.Uint32Map.insert('node1', 1);\n },\n callbacks: [\n removeFirstNodeInRoot,\n function(root) {\n root._properties.Uint32Map.insert('node1', 2);\n },\n ],\n post: function(changeset) {\n expect(changeset['map<Uint32>'].Uint32Map).to.have.all.keys('modify');\n },\n });\n });\n });\n\n describe('Rebasing', function() {\n var testRebasing = function(in_options) {\n // Prepare the initial state\n var baseProperty1 = PropertyFactory.create('autodesk.tests:ValueMapTestPropertyID-1.0.0');\n if (in_options.prepare) {\n in_options.prepare(baseProperty1);\n }\n // Create two copies of this state\n var baseProperty2 = PropertyFactory.create('autodesk.tests:ValueMapTestPropertyID-1.0.0');\n baseProperty2.deserialize(baseProperty1.serialize());\n var baseProperty3 = PropertyFactory.create('autodesk.tests:ValueMapTestPropertyID-1.0.0');\n baseProperty3.deserialize(baseProperty1.serialize());\n\n // Make sure the states are clear\n baseProperty1.cleanDirty(BaseProperty.MODIFIED_STATE_FLAGS.DIRTY |\n BaseProperty.MODIFIED_STATE_FLAGS.PENDING_CHANGE);\n baseProperty2.cleanDirty(BaseProperty.MODIFIED_STATE_FLAGS.DIRTY |\n BaseProperty.MODIFIED_STATE_FLAGS.PENDING_CHANGE);\n baseProperty3.cleanDirty(BaseProperty.MODIFIED_STATE_FLAGS.DIRTY |\n BaseProperty.MODIFIED_STATE_FLAGS.PENDING_CHANGE);\n\n var initialChangeSet = baseProperty1.serialize();\n\n // Apply the operations to the two properties in parallel\n if (in_options.op1) {\n in_options.op1(baseProperty1);\n }\n if (in_options.op2) {\n in_options.op2(baseProperty2);\n }\n\n // Get the ChangeSets\n var changeSet1 = new ChangeSet(baseProperty1.serialize({ 'dirtyOnly': true }));\n var changeSet2 = baseProperty2.serialize({ 'dirtyOnly': true });\n\n // Perform the actual rebase\n var conflicts = [];\n changeSet1._rebaseChangeSet(changeSet2, conflicts);\n\n var combinedChangeSet = new ChangeSet(initialChangeSet).clone();\n combinedChangeSet.setIsNormalized(true);\n combinedChangeSet.applyChangeSet(changeSet1);\n combinedChangeSet.applyChangeSet(changeSet2);\n\n if (in_options.compareToSequential) {\n if (in_options.op1) {\n in_options.op1(baseProperty3);\n }\n if (in_options.op2) {\n in_options.op2(baseProperty3);\n }\n var finalChangeSet = baseProperty3.serialize({ 'dirtyOnly': false });\n expect(finalChangeSet).to.be.deep.equal(combinedChangeSet.getSerializedChangeSet());\n }\n\n if (in_options.checkResult) {\n in_options.checkResult(conflicts, changeSet2, combinedChangeSet);\n }\n };\n\n it('with a NOP should be possible', function() {\n testRebasing({\n op2: insertEntryInRootWithUnqiueKey(),\n compareToSequential: true,\n });\n });\n\n it('with independent inserts should be possible', function() {\n testRebasing({\n op1: insertEntryInRootWithUnqiueKey(),\n op2: insertEntryInRootWithUnqiueKey(),\n compareToSequential: true,\n });\n });\n\n it('with independent removes should be possible', function() {\n testRebasing({\n prepare: function(root) {\n root._properties.Uint32Map.insert('entry1', 1);\n root._properties.Uint32Map.insert('entry2', 2);\n },\n op1: function(root) {\n root._properties.Uint32Map.remove('entry1');\n },\n op2: function(root) {\n root._properties.Uint32Map.remove('entry2');\n },\n compareToSequential: true,\n });\n });\n\n it('with a modify and a remove should possible', function() {\n testRebasing({\n prepare: function(root) {\n root._properties.Uint32Map.insert('entry1', 1);\n },\n op1: modifyEntry,\n op2: removeFirstNodeInRoot,\n compareToSequential: true,\n });\n });\n\n it('with a remove and a modify should possible', function() {\n testRebasing({\n prepare: function(root) {\n root._properties.Uint32Map.insert('entry1', 1);\n },\n op1: removeFirstNodeInRoot,\n op2: modifyEntry,\n compareToSequential: false,\n checkResult: function(conflicts, changeSet) {\n expect(conflicts).to.have.length(1);\n expect(conflicts[0].type).to.be.equal(ChangeSet.ConflictType.ENTRY_MODIFIED_AFTER_REMOVE);\n expect(conflicts[0].path).to.be.equal('Uint32Map[entry1]');\n expect(ChangeSet.isEmptyChangeSet(changeSet)).to.be.ok;\n },\n });\n });\n\n it('with two compatible removes should be possible', function() {\n testRebasing({\n prepare: function(root) {\n root._properties.Uint32Map.insert('entry1', 1);\n },\n op1: function(root) {\n root._properties.Uint32Map.remove('entry1');\n },\n op2: function(root) {\n root._properties.Uint32Map.remove('entry1');\n },\n compareToSequential: false,\n checkResult: function(conflicts, changeSet) {\n expect(ChangeSet.isEmptyChangeSet(changeSet)).to.be.ok;\n },\n });\n });\n\n it('with two conflicting modifies should be possible and report a conflict', function() {\n testRebasing({\n prepare: function(root) {\n root._properties.Uint32Map.insert('entry1', 1);\n },\n op1: function(root) {\n root._properties.Uint32Map.set('entry1', 2);\n },\n op2: function(root) {\n root._properties.Uint32Map.set('entry1', 3);\n },\n compareToSequential: true,\n checkResult: function(conflicts, changeSet) {\n expect(conflicts).to.have.length(1);\n expect(conflicts[0].type).to.be.equal(ChangeSet.ConflictType.COLLIDING_SET);\n expect(conflicts[0].path).to.be.equal('Uint32Map[entry1]');\n },\n });\n });\n\n it('with modify followed by remove+insert should be a conflicting set', function() {\n testRebasing({\n prepare: function(root) {\n root._properties.Uint32Map.insert('entry1', 1);\n },\n op1: modifyEntry,\n op2: function(root) {\n root._properties.Uint32Map.remove('entry1');\n root._properties.Uint32Map.insert('entry1', 2);\n },\n compareToSequential: true,\n checkResult: function(conflicts, changeSet) {\n expect(conflicts).to.have.length(1);\n expect(conflicts[0].type).to.be.equal(ChangeSet.ConflictType.COLLIDING_SET);\n expect(conflicts[0].path).to.be.equal('Uint32Map[entry1]');\n },\n });\n });\n\n it('with remove+insert followed by modify should be a conflicting set', function() {\n testRebasing({\n prepare: function(root) {\n root._properties.Uint32Map.insert('entry1', 1);\n },\n op1: function(root) {\n root._properties.Uint32Map.remove('entry1');\n root._properties.Uint32Map.insert('entry1', 2);\n },\n op2: function(root) {\n root._properties.Uint32Map.set('entry1', 3);\n },\n compareToSequential: true,\n checkResult: function(conflicts, changeSet) {\n expect(conflicts).to.have.length(1);\n expect(conflicts[0].type).to.be.equal(ChangeSet.ConflictType.COLLIDING_SET);\n expect(conflicts[0].path).to.be.equal('Uint32Map[entry1]');\n },\n });\n });\n\n it('with conflicting inserts should report conflict', function() {\n testRebasing({\n prepare: function(root) {\n },\n op1: function(root) {\n root._properties.Uint32Map.insert('entry1', 1);\n },\n op2: function(root) {\n root._properties.Uint32Map.insert('entry1', 2);\n },\n compareToSequential: false,\n checkResult: function(conflicts, changeSet) {\n expect(changeSet['map<Uint32>'].Uint32Map).to.have.all.keys('modify');\n expect(conflicts).to.have.length(1);\n expect(conflicts[0].type).to.be.equal(ChangeSet.ConflictType.COLLIDING_SET);\n expect(conflicts[0].path).to.be.equal('Uint32Map[entry1]');\n },\n });\n });\n });\n});\n"]}
|
|
@@ -3,14 +3,14 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
/* globals assert */
|
|
6
|
-
/* eslint-disable no-unused-expressions*/
|
|
6
|
+
/* eslint-disable no-unused-expressions */
|
|
7
7
|
/**
|
|
8
8
|
* @fileoverview In this file, we will test ValueProperty
|
|
9
9
|
* object described in /src/properties/valueProperty.js
|
|
10
10
|
*/
|
|
11
|
+
const { Int64, Uint64 } = require('@fluid-experimental/property-common');
|
|
11
12
|
const { ValueProperty } = require('../../properties/valueProperty');
|
|
12
13
|
const { PropertyFactory } = require('../..');
|
|
13
|
-
const { Int64, Uint64 } = require('@fluid-experimental/property-common');
|
|
14
14
|
describe('ValueProperty', function () {
|
|
15
15
|
var OurTestTemplate;
|
|
16
16
|
/**
|
|
@@ -20,13 +20,13 @@ describe('ValueProperty', function () {
|
|
|
20
20
|
OurTestTemplate = {
|
|
21
21
|
typeid: 'autodesk.tests:TestID-1.0.0',
|
|
22
22
|
properties: [{
|
|
23
|
-
id: 'MyFloat', typeid: 'Float32'
|
|
23
|
+
id: 'MyFloat', typeid: 'Float32',
|
|
24
24
|
}, {
|
|
25
|
-
id: 'MyInt', typeid: 'Int32'
|
|
25
|
+
id: 'MyInt', typeid: 'Int32',
|
|
26
26
|
}, {
|
|
27
|
-
id: 'MyBool', typeid: 'Bool'
|
|
28
|
-
}
|
|
29
|
-
]
|
|
27
|
+
id: 'MyBool', typeid: 'Bool',
|
|
28
|
+
},
|
|
29
|
+
],
|
|
30
30
|
};
|
|
31
31
|
PropertyFactory._reregister(OurTestTemplate);
|
|
32
32
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"valueProperty.spec.js","sourceRoot":"","sources":["../../../src/test/properties/valueProperty.spec.js"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n/* globals assert */\n/* eslint-disable no-unused-expressions*/\n/**\n * @fileoverview In this file, we will test ValueProperty\n * object described in /src/properties/valueProperty.js\n */\nconst { ValueProperty } = require('../../properties/valueProperty');\nconst { PropertyFactory } = require('../..');\nconst { Int64, Uint64 } = require('@fluid-experimental/property-common');\n\ndescribe('ValueProperty', function () {\n var OurTestTemplate;\n\n /**\n * Get all the objects we need in this test here.\n */\n before(function () {\n OurTestTemplate = {\n typeid: 'autodesk.tests:TestID-1.0.0',\n properties: [{\n id: 'MyFloat', typeid: 'Float32'\n }, {\n id: 'MyInt', typeid: 'Int32'\n }, {\n id: 'MyBool', typeid: 'Bool'\n }\n ]\n };\n PropertyFactory._reregister(OurTestTemplate);\n });\n\n describe('Allocating ValueProperty object with all parameters', function () {\n it('should succeed', function (done) {\n var vp;\n var error;\n try {\n vp = new ValueProperty({ id: 'goodId' });\n } catch (e) {\n error = e;\n } finally {\n expect(vp).to.not.equal(null);\n expect(error).to.equal(undefined);\n done();\n }\n });\n });\n\n describe('API methods', function () {\n it('.getValue should work', function () {\n var myProp = PropertyFactory.create('Bool');\n myProp.setValue(true);\n expect(myProp.getValue()).to.equal(true);\n });\n it('.setValue should work to set the value and return nothing', function () {\n var myProp = PropertyFactory.create('Int32');\n expect(myProp.getValue()).to.equal(0);\n expect(myProp.setValue(88)).to.be.undefined;\n expect(myProp.getValue()).to.equal(88);\n });\n });\n\n describe('Setting a ValueProperty to the same value should not dirty it', function () {\n it('should not be dirty', function (done) {\n var error;\n var vp;\n try {\n vp = PropertyFactory.create('autodesk.tests:TestID-1.0.0');\n\n vp.properties.MyBool.value = true;\n vp.properties.MyInt.value = 1.2;\n vp.properties.MyFloat.value = 1 / 3;\n\n vp.cleanDirty();\n\n vp.properties.MyBool.value = true;\n vp.properties.MyInt.value = 1.2;\n vp.properties.MyFloat.value = 1 / 3;\n } catch (e) {\n error = e;\n } finally {\n expect(error).to.not.equal(null);\n expect(vp).to.not.equal(undefined);\n expect(vp.isDirty()).to.equal(false);\n done();\n }\n });\n });\n\n it('value properties should support default values', function () {\n expect(PropertyFactory.create('Int8', undefined, 10).value).to.equal(10);\n expect(PropertyFactory.create('Uint8', undefined, 10).value).to.equal(10);\n expect(PropertyFactory.create('Int16', undefined, 10).value).to.equal(10);\n expect(PropertyFactory.create('Uint16', undefined, 10).value).to.equal(10);\n expect(PropertyFactory.create('Int32', undefined, 10).value).to.equal(10);\n expect(PropertyFactory.create('Uint32', undefined, 10).value).to.equal(10);\n expect(PropertyFactory.create('Int64', undefined,\n new Int64(10, 10)).value).to.deep.equal(new Int64(10, 10));\n expect(PropertyFactory.create('Uint64', undefined,\n new Uint64(10, 10)).value).to.deep.equal(new Uint64(10, 10));\n expect(PropertyFactory.create('Float32', undefined, 10).value).to.equal(10);\n expect(PropertyFactory.create('Float64', undefined, 10).value).to.equal(10);\n expect(PropertyFactory.create('Bool', undefined, false).value).to.equal(false);\n expect(PropertyFactory.create('Bool', undefined, true).value).to.equal(true);\n expect(PropertyFactory.create('String', undefined, 'test').value).to.equal('test');\n expect(PropertyFactory.create('Reference', undefined, '/').value).to.equal('/');\n });\n\n describe('ValueProperty serialize/deserialize tests', function () {\n it('should correctly serialize/deserialize', function () {\n var int32Prop = PropertyFactory.create('Int32');\n int32Prop.value = 11;\n\n var serialized = int32Prop.serialize({ 'dirtyOnly': true });\n expect(serialized).to.equal(11);\n int32Prop.cleanDirty();\n serialized = int32Prop._serialize(true);\n assert.deepEqual(serialized, {});\n\n var anotherInt32Prop = PropertyFactory.create('Int32');\n var deserializeResult = anotherInt32Prop.deserialize(int32Prop.serialize({ 'dirtyOnly': false }));\n expect(deserializeResult).to.equal(11);\n deserializeResult = anotherInt32Prop.deserialize(int32Prop._serialize(false));\n assert.deepEqual(deserializeResult, undefined);\n expect(anotherInt32Prop.value).to.be.equal(11);\n });\n });\n\n});\n"]}
|
|
1
|
+
{"version":3,"file":"valueProperty.spec.js","sourceRoot":"","sources":["../../../src/test/properties/valueProperty.spec.js"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n/* globals assert */\n/* eslint-disable no-unused-expressions */\n/**\n * @fileoverview In this file, we will test ValueProperty\n * object described in /src/properties/valueProperty.js\n */\nconst { Int64, Uint64 } = require('@fluid-experimental/property-common');\nconst { ValueProperty } = require('../../properties/valueProperty');\nconst { PropertyFactory } = require('../..');\n\ndescribe('ValueProperty', function() {\n var OurTestTemplate;\n\n /**\n * Get all the objects we need in this test here.\n */\n before(function() {\n OurTestTemplate = {\n typeid: 'autodesk.tests:TestID-1.0.0',\n properties: [{\n id: 'MyFloat', typeid: 'Float32',\n }, {\n id: 'MyInt', typeid: 'Int32',\n }, {\n id: 'MyBool', typeid: 'Bool',\n },\n ],\n };\n PropertyFactory._reregister(OurTestTemplate);\n });\n\n describe('Allocating ValueProperty object with all parameters', function() {\n it('should succeed', function(done) {\n var vp;\n var error;\n try {\n vp = new ValueProperty({ id: 'goodId' });\n } catch (e) {\n error = e;\n } finally {\n expect(vp).to.not.equal(null);\n expect(error).to.equal(undefined);\n done();\n }\n });\n });\n\n describe('API methods', function() {\n it('.getValue should work', function() {\n var myProp = PropertyFactory.create('Bool');\n myProp.setValue(true);\n expect(myProp.getValue()).to.equal(true);\n });\n it('.setValue should work to set the value and return nothing', function() {\n var myProp = PropertyFactory.create('Int32');\n expect(myProp.getValue()).to.equal(0);\n expect(myProp.setValue(88)).to.be.undefined;\n expect(myProp.getValue()).to.equal(88);\n });\n });\n\n describe('Setting a ValueProperty to the same value should not dirty it', function() {\n it('should not be dirty', function(done) {\n var error;\n var vp;\n try {\n vp = PropertyFactory.create('autodesk.tests:TestID-1.0.0');\n\n vp.properties.MyBool.value = true;\n vp.properties.MyInt.value = 1.2;\n vp.properties.MyFloat.value = 1 / 3;\n\n vp.cleanDirty();\n\n vp.properties.MyBool.value = true;\n vp.properties.MyInt.value = 1.2;\n vp.properties.MyFloat.value = 1 / 3;\n } catch (e) {\n error = e;\n } finally {\n expect(error).to.not.equal(null);\n expect(vp).to.not.equal(undefined);\n expect(vp.isDirty()).to.equal(false);\n done();\n }\n });\n });\n\n it('value properties should support default values', function() {\n expect(PropertyFactory.create('Int8', undefined, 10).value).to.equal(10);\n expect(PropertyFactory.create('Uint8', undefined, 10).value).to.equal(10);\n expect(PropertyFactory.create('Int16', undefined, 10).value).to.equal(10);\n expect(PropertyFactory.create('Uint16', undefined, 10).value).to.equal(10);\n expect(PropertyFactory.create('Int32', undefined, 10).value).to.equal(10);\n expect(PropertyFactory.create('Uint32', undefined, 10).value).to.equal(10);\n expect(PropertyFactory.create('Int64', undefined,\n new Int64(10, 10)).value).to.deep.equal(new Int64(10, 10));\n expect(PropertyFactory.create('Uint64', undefined,\n new Uint64(10, 10)).value).to.deep.equal(new Uint64(10, 10));\n expect(PropertyFactory.create('Float32', undefined, 10).value).to.equal(10);\n expect(PropertyFactory.create('Float64', undefined, 10).value).to.equal(10);\n expect(PropertyFactory.create('Bool', undefined, false).value).to.equal(false);\n expect(PropertyFactory.create('Bool', undefined, true).value).to.equal(true);\n expect(PropertyFactory.create('String', undefined, 'test').value).to.equal('test');\n expect(PropertyFactory.create('Reference', undefined, '/').value).to.equal('/');\n });\n\n describe('ValueProperty serialize/deserialize tests', function() {\n it('should correctly serialize/deserialize', function() {\n var int32Prop = PropertyFactory.create('Int32');\n int32Prop.value = 11;\n\n var serialized = int32Prop.serialize({ 'dirtyOnly': true });\n expect(serialized).to.equal(11);\n int32Prop.cleanDirty();\n serialized = int32Prop._serialize(true);\n assert.deepEqual(serialized, {});\n\n var anotherInt32Prop = PropertyFactory.create('Int32');\n var deserializeResult = anotherInt32Prop.deserialize(int32Prop.serialize({ 'dirtyOnly': false }));\n expect(deserializeResult).to.equal(11);\n deserializeResult = anotherInt32Prop.deserialize(int32Prop._serialize(false));\n assert.deepEqual(deserializeResult, undefined);\n expect(anotherInt32Prop.value).to.be.equal(11);\n });\n });\n});\n"]}
|