@fluid-experimental/property-properties 2.0.0-internal.3.0.2 → 2.0.0-internal.3.2.0
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/README.md +1 -0
- package/dist/containerSerializer.d.ts.map +1 -1
- package/dist/containerSerializer.js +5 -5
- package/dist/containerSerializer.js.map +1 -1
- package/dist/enableValidations.js.map +1 -1
- package/dist/index.d.ts +19 -19
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/properties/abstractStaticCollectionProperty.d.ts +10 -10
- package/dist/properties/abstractStaticCollectionProperty.d.ts.map +1 -1
- package/dist/properties/abstractStaticCollectionProperty.js +70 -53
- package/dist/properties/abstractStaticCollectionProperty.js.map +1 -1
- package/dist/properties/arrayProperty.d.ts.map +1 -1
- package/dist/properties/arrayProperty.js +152 -103
- package/dist/properties/arrayProperty.js.map +1 -1
- package/dist/properties/baseProperty.d.ts +4 -4
- package/dist/properties/baseProperty.d.ts.map +1 -1
- package/dist/properties/baseProperty.js +69 -47
- package/dist/properties/baseProperty.js.map +1 -1
- package/dist/properties/boolProperty.d.ts.map +1 -1
- package/dist/properties/boolProperty.js +3 -3
- package/dist/properties/boolProperty.js.map +1 -1
- package/dist/properties/containerProperty.d.ts +8 -8
- package/dist/properties/containerProperty.d.ts.map +1 -1
- package/dist/properties/containerProperty.js +33 -26
- package/dist/properties/containerProperty.js.map +1 -1
- package/dist/properties/enumArrayProperty.d.ts.map +1 -1
- package/dist/properties/enumArrayProperty.js +14 -14
- package/dist/properties/enumArrayProperty.js.map +1 -1
- package/dist/properties/enumProperty.d.ts.map +1 -1
- package/dist/properties/enumProperty.js +17 -17
- package/dist/properties/enumProperty.js.map +1 -1
- package/dist/properties/floatProperties.js +4 -4
- package/dist/properties/floatProperties.js.map +1 -1
- package/dist/properties/index.d.ts +23 -23
- package/dist/properties/index.d.ts.map +1 -1
- package/dist/properties/index.js.map +1 -1
- package/dist/properties/indexedCollectionBaseProperty.d.ts.map +1 -1
- package/dist/properties/indexedCollectionBaseProperty.js +47 -37
- package/dist/properties/indexedCollectionBaseProperty.js.map +1 -1
- package/dist/properties/intProperties.d.ts.map +1 -1
- package/dist/properties/intProperties.js +10 -10
- 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 +21 -17
- package/dist/properties/mapProperty.js.map +1 -1
- package/dist/properties/namedNodeProperty.d.ts.map +1 -1
- package/dist/properties/namedNodeProperty.js +3 -3
- package/dist/properties/namedNodeProperty.js.map +1 -1
- package/dist/properties/namedProperty.d.ts.map +1 -1
- package/dist/properties/namedProperty.js +7 -5
- package/dist/properties/namedProperty.js.map +1 -1
- package/dist/properties/nodeProperty.d.ts.map +1 -1
- package/dist/properties/nodeProperty.js +5 -3
- package/dist/properties/nodeProperty.js.map +1 -1
- package/dist/properties/primitiveTypeCasts.d.ts.map +1 -1
- package/dist/properties/primitiveTypeCasts.js +9 -9
- package/dist/properties/primitiveTypeCasts.js.map +1 -1
- package/dist/properties/referenceArrayProperty.d.ts.map +1 -1
- package/dist/properties/referenceArrayProperty.js +31 -25
- package/dist/properties/referenceArrayProperty.js.map +1 -1
- package/dist/properties/referenceMapProperty.d.ts.map +1 -1
- package/dist/properties/referenceMapProperty.js +18 -18
- package/dist/properties/referenceMapProperty.js.map +1 -1
- package/dist/properties/referenceProperty.d.ts.map +1 -1
- package/dist/properties/referenceProperty.js +33 -29
- package/dist/properties/referenceProperty.js.map +1 -1
- package/dist/properties/setProperty.d.ts.map +1 -1
- package/dist/properties/setProperty.js +31 -29
- package/dist/properties/setProperty.js.map +1 -1
- package/dist/properties/stringProperty.d.ts.map +1 -1
- package/dist/properties/stringProperty.js +56 -40
- package/dist/properties/stringProperty.js.map +1 -1
- package/dist/properties/uintProperties.js +5 -5
- package/dist/properties/uintProperties.js.map +1 -1
- package/dist/properties/valueArrayProperty.d.ts +1 -1
- package/dist/properties/valueArrayProperty.d.ts.map +1 -1
- package/dist/properties/valueArrayProperty.js +30 -29
- package/dist/properties/valueArrayProperty.js.map +1 -1
- package/dist/properties/valueMapProperty.d.ts.map +1 -1
- package/dist/properties/valueMapProperty.js +31 -29
- package/dist/properties/valueMapProperty.js.map +1 -1
- package/dist/properties/valueProperty.d.ts.map +1 -1
- package/dist/properties/valueProperty.js +11 -9
- package/dist/properties/valueProperty.js.map +1 -1
- package/dist/propertyFactory.d.ts.map +1 -1
- package/dist/propertyFactory.js +309 -252
- package/dist/propertyFactory.js.map +1 -1
- package/dist/propertyTemplate.d.ts +17 -17
- package/dist/propertyTemplate.d.ts.map +1 -1
- package/dist/propertyTemplate.js +64 -45
- package/dist/propertyTemplate.js.map +1 -1
- package/dist/propertyTemplateWrapper.d.ts.map +1 -1
- package/dist/propertyTemplateWrapper.js +40 -25
- 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 +566 -490
- package/dist/test/properties/arrayProperty.spec.js.map +1 -1
- package/dist/test/properties/baseProperty.spec.js +293 -280
- package/dist/test/properties/baseProperty.spec.js.map +1 -1
- package/dist/test/properties/containerProperty.spec.js +100 -94
- package/dist/test/properties/containerProperty.spec.js.map +1 -1
- package/dist/test/properties/customArrayProperty.spec.js +174 -147
- package/dist/test/properties/customArrayProperty.spec.js.map +1 -1
- package/dist/test/properties/enumArrayProperty.spec.js +67 -63
- package/dist/test/properties/enumArrayProperty.spec.js.map +1 -1
- package/dist/test/properties/enumProperty.spec.js +115 -97
- package/dist/test/properties/enumProperty.spec.js.map +1 -1
- package/dist/test/properties/float32.spec.js +5 -5
- package/dist/test/properties/float32.spec.js.map +1 -1
- package/dist/test/properties/int64ArrayProperty.spec.js +157 -93
- package/dist/test/properties/int64ArrayProperty.spec.js.map +1 -1
- package/dist/test/properties/int64MapProperty.spec.js +185 -166
- package/dist/test/properties/int64MapProperty.spec.js.map +1 -1
- package/dist/test/properties/int64Property.spec.js +109 -109
- package/dist/test/properties/int64Property.spec.js.map +1 -1
- package/dist/test/properties/isLeafNode.spec.js +75 -76
- package/dist/test/properties/isLeafNode.spec.js.map +1 -1
- package/dist/test/properties/mapProperty.spec.js +571 -531
- package/dist/test/properties/mapProperty.spec.js.map +1 -1
- package/dist/test/properties/namedNodeProperty.spec.js +31 -31
- package/dist/test/properties/namedNodeProperty.spec.js.map +1 -1
- package/dist/test/properties/nodeProperty.spec.js +805 -795
- package/dist/test/properties/nodeProperty.spec.js.map +1 -1
- package/dist/test/properties/referenceProperty.spec.js +729 -679
- package/dist/test/properties/referenceProperty.spec.js.map +1 -1
- package/dist/test/properties/relationshipProperty.spec.js +16 -16
- package/dist/test/properties/relationshipProperty.spec.js.map +1 -1
- package/dist/test/properties/setProperty.spec.js +288 -227
- package/dist/test/properties/setProperty.spec.js.map +1 -1
- package/dist/test/properties/stringProperty.spec.js +326 -318
- package/dist/test/properties/stringProperty.spec.js.map +1 -1
- package/dist/test/properties/uint64Property.spec.js +46 -36
- package/dist/test/properties/uint64Property.spec.js.map +1 -1
- package/dist/test/properties/valueMapProperty.spec.js +259 -246
- package/dist/test/properties/valueMapProperty.spec.js.map +1 -1
- package/dist/test/properties/valueProperty.spec.js +49 -43
- package/dist/test/properties/valueProperty.spec.js.map +1 -1
- package/dist/test/propertyFactory.spec.js +2038 -1631
- package/dist/test/propertyFactory.spec.js.map +1 -1
- package/dist/test/propertyTemplateWrapper.spec.js +72 -102
- package/dist/test/propertyTemplateWrapper.spec.js.map +1 -1
- package/dist/test/propertyUtils.spec.js +22 -21
- package/dist/test/propertyUtils.spec.js.map +1 -1
- package/dist/test/reversibleChangeset.spec.js +857 -703
- package/dist/test/reversibleChangeset.spec.js.map +1 -1
- package/dist/test/setup.js +5 -5
- package/dist/test/setup.js.map +1 -1
- package/dist/test/tsconfig.tsbuildinfo +1 -1
- package/dist/test/utils.spec.js +1334 -1144
- package/dist/test/utils.spec.js.map +1 -1
- package/dist/test/validation/badMissingSemverInTypeid.js +20 -20
- package/dist/test/validation/badMissingSemverInTypeid.js.map +1 -1
- package/dist/test/validation/badPrimitiveTypeid.js +12 -12
- package/dist/test/validation/badPrimitiveTypeid.js.map +1 -1
- package/dist/test/validation/goodColorId.js +91 -91
- package/dist/test/validation/goodColorId.js.map +1 -1
- package/dist/test/validation/goodColorPalette.js +4 -4
- package/dist/test/validation/goodColorPalette.js.map +1 -1
- package/dist/test/validation/goodPointId.js +20 -20
- package/dist/test/validation/goodPointId.js.map +1 -1
- package/dist/test/validation/reversibleChangeSetTestData.js +23841 -2
- package/dist/test/validation/reversibleChangeSetTestData.js.map +1 -1
- package/lib/containerSerializer.d.ts.map +1 -1
- package/lib/containerSerializer.js +5 -5
- package/lib/containerSerializer.js.map +1 -1
- package/lib/enableValidations.js.map +1 -1
- package/lib/index.d.ts +19 -19
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +19 -19
- package/lib/index.js.map +1 -1
- package/lib/properties/abstractStaticCollectionProperty.d.ts +10 -10
- package/lib/properties/abstractStaticCollectionProperty.d.ts.map +1 -1
- package/lib/properties/abstractStaticCollectionProperty.js +70 -53
- package/lib/properties/abstractStaticCollectionProperty.js.map +1 -1
- package/lib/properties/arrayProperty.d.ts.map +1 -1
- package/lib/properties/arrayProperty.js +152 -103
- package/lib/properties/arrayProperty.js.map +1 -1
- package/lib/properties/baseProperty.d.ts +4 -4
- package/lib/properties/baseProperty.d.ts.map +1 -1
- package/lib/properties/baseProperty.js +73 -51
- package/lib/properties/baseProperty.js.map +1 -1
- package/lib/properties/boolProperty.d.ts.map +1 -1
- package/lib/properties/boolProperty.js +3 -3
- package/lib/properties/boolProperty.js.map +1 -1
- package/lib/properties/containerProperty.d.ts +8 -8
- package/lib/properties/containerProperty.d.ts.map +1 -1
- package/lib/properties/containerProperty.js +33 -26
- package/lib/properties/containerProperty.js.map +1 -1
- package/lib/properties/enumArrayProperty.d.ts.map +1 -1
- package/lib/properties/enumArrayProperty.js +14 -14
- package/lib/properties/enumArrayProperty.js.map +1 -1
- package/lib/properties/enumProperty.d.ts.map +1 -1
- package/lib/properties/enumProperty.js +17 -17
- package/lib/properties/enumProperty.js.map +1 -1
- package/lib/properties/floatProperties.js +4 -4
- package/lib/properties/floatProperties.js.map +1 -1
- package/lib/properties/index.d.ts +23 -23
- package/lib/properties/index.d.ts.map +1 -1
- package/lib/properties/index.js +23 -23
- package/lib/properties/index.js.map +1 -1
- package/lib/properties/indexedCollectionBaseProperty.d.ts.map +1 -1
- package/lib/properties/indexedCollectionBaseProperty.js +47 -37
- package/lib/properties/indexedCollectionBaseProperty.js.map +1 -1
- package/lib/properties/intProperties.d.ts.map +1 -1
- package/lib/properties/intProperties.js +10 -10
- package/lib/properties/intProperties.js.map +1 -1
- package/lib/properties/lazyLoadedProperties.js.map +1 -1
- package/lib/properties/mapProperty.d.ts.map +1 -1
- package/lib/properties/mapProperty.js +21 -17
- package/lib/properties/mapProperty.js.map +1 -1
- package/lib/properties/namedNodeProperty.d.ts.map +1 -1
- package/lib/properties/namedNodeProperty.js +3 -3
- package/lib/properties/namedNodeProperty.js.map +1 -1
- package/lib/properties/namedProperty.d.ts.map +1 -1
- package/lib/properties/namedProperty.js +7 -5
- package/lib/properties/namedProperty.js.map +1 -1
- package/lib/properties/nodeProperty.d.ts.map +1 -1
- package/lib/properties/nodeProperty.js +5 -3
- package/lib/properties/nodeProperty.js.map +1 -1
- package/lib/properties/primitiveTypeCasts.d.ts.map +1 -1
- package/lib/properties/primitiveTypeCasts.js +9 -9
- package/lib/properties/primitiveTypeCasts.js.map +1 -1
- package/lib/properties/referenceArrayProperty.d.ts.map +1 -1
- package/lib/properties/referenceArrayProperty.js +31 -25
- package/lib/properties/referenceArrayProperty.js.map +1 -1
- package/lib/properties/referenceMapProperty.d.ts.map +1 -1
- package/lib/properties/referenceMapProperty.js +18 -18
- package/lib/properties/referenceMapProperty.js.map +1 -1
- package/lib/properties/referenceProperty.d.ts.map +1 -1
- package/lib/properties/referenceProperty.js +33 -29
- package/lib/properties/referenceProperty.js.map +1 -1
- package/lib/properties/setProperty.d.ts.map +1 -1
- package/lib/properties/setProperty.js +31 -29
- package/lib/properties/setProperty.js.map +1 -1
- package/lib/properties/stringProperty.d.ts.map +1 -1
- package/lib/properties/stringProperty.js +56 -40
- package/lib/properties/stringProperty.js.map +1 -1
- package/lib/properties/uintProperties.js +5 -5
- package/lib/properties/uintProperties.js.map +1 -1
- package/lib/properties/valueArrayProperty.d.ts +1 -1
- package/lib/properties/valueArrayProperty.d.ts.map +1 -1
- package/lib/properties/valueArrayProperty.js +30 -29
- package/lib/properties/valueArrayProperty.js.map +1 -1
- package/lib/properties/valueMapProperty.d.ts.map +1 -1
- package/lib/properties/valueMapProperty.js +31 -29
- package/lib/properties/valueMapProperty.js.map +1 -1
- package/lib/properties/valueProperty.d.ts.map +1 -1
- package/lib/properties/valueProperty.js +11 -9
- package/lib/properties/valueProperty.js.map +1 -1
- package/lib/propertyFactory.d.ts.map +1 -1
- package/lib/propertyFactory.js +309 -252
- package/lib/propertyFactory.js.map +1 -1
- package/lib/propertyTemplate.d.ts +17 -17
- package/lib/propertyTemplate.d.ts.map +1 -1
- package/lib/propertyTemplate.js +64 -45
- package/lib/propertyTemplate.js.map +1 -1
- package/lib/propertyTemplateWrapper.d.ts.map +1 -1
- package/lib/propertyTemplateWrapper.js +40 -25
- package/lib/propertyTemplateWrapper.js.map +1 -1
- package/lib/propertyUtils.d.ts.map +1 -1
- package/lib/propertyUtils.js.map +1 -1
- package/package.json +28 -28
- package/src/index.d.ts +2750 -2681
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"int64ArrayProperty.spec.js","sourceRoot":"","sources":["../../../src/test/properties/int64ArrayProperty.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\n/**\n * @fileoverview In this file, we will test the Int64ArrayProperty object described in /src/properties/arrayProperty.js\n */\n\ndescribe('Int64ArrayProperty', function() {\n var PropertyFactory, BaseProperty, ChangeSet, MSG;\n var changeSetWithEntries, removalChangeSet;\n var myInt64Prop, Int64;\n\n before(function() {\n // Get all the objects we need in this test here.\n PropertyFactory = require('../..').PropertyFactory;\n BaseProperty = require('../..').BaseProperty;\n ChangeSet = require('@fluid-experimental/property-changeset').ChangeSet;\n Int64 = require('@fluid-experimental/property-common').Int64;\n MSG = require('@fluid-experimental/property-common').constants.MSG;\n\n // Register a template with a set property for the tests\n var SimpleInt64TestPropertyTemplate = {\n typeid: 'autodesk.tests:SimpleInt64TestProperty-1.0.0',\n properties: [\n { id: 'int64Property', typeid: 'Int64', context: 'array' },\n ],\n };\n PropertyFactory._reregister(SimpleInt64TestPropertyTemplate);\n\n myInt64Prop = PropertyFactory.create('Int64', 'array');\n });\n\n // Inserts an Int64 value into the array\n var insertInt64Value = function(int64Prop) {\n int64Prop.insertRange(0, [new Int64(0, 1)]);\n };\n\n // Removes the first element from the array\n var removeArrayElement = function(int64Prop) {\n int64Prop.removeRange(0, 1);\n };\n\n // Modifies an array value\n var modifyInt64Value = function(int64Prop) {\n int64Prop.setRange(0, [new Int64(0, 2)]);\n };\n\n describe('Testing creation, assignment and serialization', function() {\n it('should be empty at the beginning', function() {\n expect(myInt64Prop.length).to.equal(0);\n expect(myInt64Prop.serialize({ 'dirtyOnly': true })).to.be.empty;\n expect(myInt64Prop.serialize({ 'dirtyOnly': false })).to.be.empty;\n });\n\n it('should be possible to insert into the 64 bit array', function() {\n // Text insertion\n myInt64Prop.insertRange(0, [new Int64(1, 2), '12345678987654321']);\n expect(myInt64Prop.get(0)).to.deep.equal(new Int64(1, 2));\n myInt64Prop.insertRange(2, [5]);\n expect(myInt64Prop.get(1)).to.deep.equal(new Int64(1653732529, 2874452));\n changeSetWithEntries = myInt64Prop.serialize({ 'dirtyOnly': true });\n expect(myInt64Prop.serialize({ 'dirtyOnly': false })).to.deep.equal(\n { insert: [[0, [[1, 2], [1653732529, 2874452], [5, 0]]]] });\n expect(myInt64Prop.serialize({ 'dirtyOnly': true })).to.deep.equal(\n { insert: [[0, [[1, 2], [1653732529, 2874452], [5, 0]]]] });\n });\n\n it('should be possible to set values in the 64 bit array', function() {\n myInt64Prop.setRange(0, [1, '123', new Int64(2, 2)]);\n expect(myInt64Prop.get(0)).to.deep.equal(new Int64(1, 0));\n myInt64Prop.setRange(2, [new Int64(4, 5)]);\n changeSetWithEntries = myInt64Prop.serialize({ 'dirtyOnly': true });\n expect(myInt64Prop.serialize({ 'dirtyOnly': false })).to.deep.equal(\n { insert: [[0, [[1, 0], [123, 0], [4, 5]]]] });\n expect(myInt64Prop.serialize({ 'dirtyOnly': true })).to.deep.equal(\n { insert: [[0, [[1, 0], [123, 0], [4, 5]]]] });\n });\n\n it('.setRange should throw an error when in_offset is not an integer', function() {\n expect(() => { myInt64Prop.setRange('test', [new Int64(2, 2)]); })\n .to.throw(MSG.NOT_NUMBER);\n });\n\n it('.setRange should throw an error when in_array is not an array', function() {\n expect(() => { myInt64Prop.setRange(0, new Int64(2, 2)); })\n .to.throw(MSG.IN_ARRAY_NOT_ARRAY + 'Int64ArrayProperty.setRange');\n });\n\n it('Should handle removals correctly', function() {\n myInt64Prop.cleanDirty(BaseProperty.MODIFIED_STATE_FLAGS.DIRTY);\n myInt64Prop.removeRange(0, 2);\n expect(myInt64Prop.get(0)).to.deep.equal(new Int64(4, 5));\n removalChangeSet = myInt64Prop.serialize({\n 'dirtyOnly': true,\n 'includeRootTypeid': false,\n 'dirtinessType': BaseProperty.MODIFIED_STATE_FLAGS.DIRTY,\n });\n expect(removalChangeSet).to.have.all.keys(['remove']);\n expect(removalChangeSet.remove).to.have.length(1);\n expect(removalChangeSet.remove[0]).to.deep.equal([0, 2]);\n });\n\n it('Should support deserialization', function() {\n var deserializedNode = PropertyFactory.create('Int64', 'array');\n var deserializedChanges1 = deserializedNode.deserialize(changeSetWithEntries);\n expect(deserializedChanges1).to.deep.equal(changeSetWithEntries);\n\n var deserializedChanges3 = deserializedNode.deserialize({});\n expect(deserializedChanges3).to.deep.equal({ remove: [[0, 3]] });\n });\n\n it('inserting at a bad position should throw an exception', function() {\n expect(function() {\n myInt64Prop.insertRange(2242, new Int64(4, 5));\n }).to.throw();\n });\n\n it('Should support applying changeset', function() {\n var node = PropertyFactory.create('Int64', 'array');\n node._applyChangeset(changeSetWithEntries);\n expect(node.get(0)).to.deep.equal(new Int64(1));\n expect(node.serialize()).to.deep.equal(\n { insert: [[0, [[1, 0], [123, 0], [4, 5]]]] });\n });\n });\n\n describe('change set specification should be met', function() {\n it('Should handle push correctly', function() {\n var t = PropertyFactory.create('Int64', 'array');\n t.insertRange(0, [new Int64(1, 2), new Int64(3, 4)]);\n t.cleanDirty();\n t.push(new Int64(4, 5));\n expect(t.serialize({ 'dirtyOnly': true })).to.deep.equal(\n {\n 'insert': [[2, [[4, 5]]]],\n },\n );\n });\n\n it('Should handle modifies correctly', function() {\n var t = PropertyFactory.create('Int64', 'array');\n t.insertRange(0, [new Int64(1, 2), new Int64(3, 4)]);\n t.cleanDirty();\n t.set(1, new Int64(4, 5));\n expect(t.serialize({ 'dirtyOnly': true })).to.deep.equal(\n {\n 'modify': [[1, [[4, 5]]]],\n },\n );\n });\n });\n\n describe('squashing', function() {\n // Helper function to test the squashing for different containers\n var innerTestChangeSetSquashing = function(io_testProperty, io_int64Property,\n io_initialChangeset, in_options, in_collection) {\n var squashedChangeset = new ChangeSet();\n io_initialChangeset.setIsNormalized(true);\n io_testProperty.cleanDirty(BaseProperty.MODIFIED_STATE_FLAGS.DIRTY |\n BaseProperty.MODIFIED_STATE_FLAGS.PENDING_CHANGE);\n var callbacks = in_options.callbacks;\n for (var i = 0; i < callbacks.length; i++) {\n callbacks[i](io_int64Property);\n var changes = io_testProperty.serialize({ 'dirtyOnly': true });\n io_testProperty.cleanDirty(BaseProperty.MODIFIED_STATE_FLAGS.DIRTY |\n BaseProperty.MODIFIED_STATE_FLAGS.PENDING_CHANGE);\n squashedChangeset.applyChangeSet(changes);\n }\n\n if (in_options.post) {\n var SC = squashedChangeset.getSerializedChangeSet();\n if (in_collection && SC.modify) {\n SC = SC.modify;\n }\n in_options.post(SC);\n }\n io_initialChangeset.applyChangeSet(squashedChangeset.getSerializedChangeSet());\n };\n\n //\n // Helper function which takes a sequence of callbacks that are successively 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 var testProperty = PropertyFactory.create('autodesk.tests:SimpleInt64TestProperty-1.0.0');\n\n if (in_options.pre) {\n in_options.pre(testProperty._properties.int64Property);\n }\n\n var initialChangeset = new ChangeSet(testProperty.serialize({ 'dirtyOnly': false }));\n initialChangeset.setIsNormalized(true);\n\n innerTestChangeSetSquashing(testProperty,\n testProperty._properties.int64Property, initialChangeset, in_options);\n\n var initialChangeset = initialChangeset.getSerializedChangeSet();\n if (ChangeSet.isEmptyChangeSet(initialChangeset)) {\n // if one is empty the other should be empty, too\n expect(testProperty.serialize({ 'dirtyOnly': false })).to.be.empty;\n } else {\n // else they must be deep equal\n expect(initialChangeset['array<Int64>'].int64Property).to.deep.equal(\n testProperty.serialize({ 'dirtyOnly': false })['array<Int64>'].int64Property);\n }\n };\n\n it('should work for multiple independent inserts', function() {\n testChangeSetSquashing({ callbacks: [insertInt64Value, insertInt64Value, insertInt64Value] });\n });\n\n it('should work for inserts followed by removes', function() {\n testChangeSetSquashing({\n callbacks: [insertInt64Value, insertInt64Value, removeArrayElement, removeArrayElement],\n post: function(changeset) {\n expect(changeset).to.be.empty;\n },\n });\n });\n\n it('should work for mixed modifies and inserts', function() {\n testChangeSetSquashing({\n callbacks: [insertInt64Value, modifyInt64Value, insertInt64Value, modifyInt64Value],\n });\n });\n\n it('an insert, modify and a remove should give an empty changeset', function() {\n testChangeSetSquashing({\n callbacks: [insertInt64Value, modifyInt64Value, removeArrayElement],\n post: function(changeset) {\n expect(changeset).to.be.empty;\n },\n });\n });\n it('work for modifies after an already existing insert', function() {\n testChangeSetSquashing({\n pre: insertInt64Value,\n callbacks: [modifyInt64Value, modifyInt64Value],\n });\n });\n it('of modify and remove after an already existing insert should work', function() {\n testChangeSetSquashing({\n pre: insertInt64Value,\n callbacks: [modifyInt64Value, removeArrayElement],\n post: function(changeset) {\n expect(changeset['array<Int64>'].int64Property).to.have.all.keys('remove');\n },\n });\n });\n });\n\n describe('Rebasing', function() {\n var createPropertyForRebaseTestByTemplate = function() {\n return PropertyFactory.create('autodesk.tests:SimpleInt64TestProperty-1.0.0');\n };\n\n var getint64PropertyFromNode = function(in_testProperty) {\n return in_testProperty._properties.int64Property;\n };\n\n var testRebasingInner = function(in_creator, in_getInnerProperty, in_options, in_isCollection) {\n // Prepare the initial state\n var baseProperty1 = in_creator();\n if (in_options.prepare) {\n in_options.prepare(in_getInnerProperty(baseProperty1));\n }\n // Create two copies of this state\n var baseProperty2 = in_creator();\n baseProperty2.deserialize(baseProperty1.serialize({ 'dirtyOnly': false }));\n var baseProperty3 = in_creator();\n baseProperty3.deserialize(baseProperty1.serialize({ 'dirtyOnly': false }));\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({ 'dirtyOnly': false });\n\n // Apply the operations to the two properties in parallel\n if (in_options.op1) {\n in_options.op1(in_getInnerProperty(baseProperty1));\n }\n if (in_options.op2) {\n in_options.op2(in_getInnerProperty(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(in_getInnerProperty(baseProperty3));\n }\n if (in_options.op2) {\n in_options.op2(in_getInnerProperty(baseProperty3));\n }\n var finalChangeSet = baseProperty3.serialize({ 'dirtyOnly': false });\n if (in_isCollection && finalChangeSet.insert) {\n finalChangeSet = finalChangeSet.insert;\n }\n\n var combinedSerialized = combinedChangeSet.getSerializedChangeSet();\n if (ChangeSet.isEmptyChangeSet(combinedSerialized)) {\n // if one is empty the other should be empty, too\n expect(finalChangeSet).to.be.empty;\n } else {\n // else they must be deep equal\n expect(combinedSerialized['array<Int64>'].int64Property).to.deep.equal(\n finalChangeSet['array<Int64>'].int64Property);\n }\n }\n\n if (in_options.checkResult) {\n if (in_isCollection && changeSet2.modify) {\n changeSet2 = changeSet2.modify;\n }\n in_options.checkResult(conflicts, changeSet2, combinedChangeSet);\n }\n };\n\n var testRebasing = function(in_options) {\n testRebasingInner(createPropertyForRebaseTestByTemplate, getint64PropertyFromNode, in_options);\n };\n\n it('with a NOP should be possible', function() {\n testRebasing({\n op2: insertInt64Value,\n compareToSequential: true,\n });\n });\n\n it('with independent inserts should be possible', function() {\n testRebasing({\n op1: insertInt64Value,\n op2: insertInt64Value,\n compareToSequential: true,\n });\n });\n\n it('with independent removes should be possible', function() {\n testRebasing({\n prepare: function(root) {\n insertInt64Value(root);\n insertInt64Value(root);\n },\n op1: function(root) {\n root.removeRange(1, 1);\n },\n op2: function(root) {\n root.removeRange(0, 1);\n },\n compareToSequential: true,\n });\n });\n\n it('with a modify and a remove should possible', function() {\n testRebasing({\n prepare: insertInt64Value,\n op1: modifyInt64Value,\n op2: removeArrayElement,\n compareToSequential: true,\n });\n });\n\n it('with a remove and a modify should possible', function() {\n testRebasing({\n prepare: insertInt64Value,\n op1: removeArrayElement,\n op2: modifyInt64Value,\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('int64Property');\n },\n });\n });\n\n it('with two compatible removes should be possible', function() {\n testRebasing({\n prepare: insertInt64Value,\n op1: removeArrayElement,\n op2: removeArrayElement,\n compareToSequential: false,\n checkResult: function(conflicts, changeSet) {\n expect(ChangeSet.isEmptyChangeSet(changeSet)).to.be.ok;\n },\n });\n });\n\n it('with two independent modifies should be possible', function() {\n testRebasing({\n prepare: function(root) {\n root.insertRange(0, [new Int64(9, 8), new Int64(11, 21)]);\n },\n op1: modifyInt64Value,\n op2: function(root) {\n root.setRange(1, [new Int64(5, 6)]);\n },\n compareToSequential: true,\n checkResult: function(conflicts, changeSet) {\n expect(conflicts).to.be.empty;\n },\n });\n });\n\n it('with two conflicting modifies should be possible and report a conflict', function() {\n testRebasing({\n prepare: insertInt64Value,\n op1: function(int64Prop) {\n int64Prop.setRange(0, [new Int64(0, 64)]);\n },\n op2: modifyInt64Value,\n compareToSequential: true,\n checkResult: function(conflicts, changeSet) {\n expect(conflicts).to.have.length(1);\n expect(changeSet['array<Int64>'].int64Property.modify[0][1]).to.deep.equal([[0, 2]]);\n expect(conflicts[0].type).to.be.equal(ChangeSet.ConflictType.COLLIDING_SET);\n expect(conflicts[0].path).to.be.equal('int64Property');\n },\n });\n });\n\n it('with modify followed by remove+insert should work', function() {\n testRebasing({\n prepare: insertInt64Value,\n op1: modifyInt64Value,\n op2: function(root) {\n removeArrayElement(root);\n insertInt64Value(root);\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.REMOVE_AFTER_MODIFY);\n expect(conflicts[0].path).to.be.equal('int64Property');\n expect(changeSet['array<Int64>'].int64Property).to.have.all.keys('remove', 'insert');\n },\n });\n });\n\n it('with remove + insert followed by modify should report conflict', function() {\n testRebasing({\n prepare: insertInt64Value,\n op1: function(root) {\n removeArrayElement(root);\n insertInt64Value(root);\n },\n op2: modifyInt64Value,\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('int64Property');\n },\n });\n });\n\n it('with conflicting inserts should report conflict', function() {\n testRebasing({\n prepare: insertInt64Value,\n op1: insertInt64Value,\n op2: insertInt64Value,\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.INSERTED_ENTRY_WITH_SAME_KEY);\n expect(conflicts[0].path).to.be.equal('int64Property');\n },\n });\n });\n });\n});\n"]}
|
|
1
|
+
{"version":3,"file":"int64ArrayProperty.spec.js","sourceRoot":"","sources":["../../../src/test/properties/int64ArrayProperty.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\n/**\n * @fileoverview In this file, we will test the Int64ArrayProperty object described in /src/properties/arrayProperty.js\n */\n\ndescribe(\"Int64ArrayProperty\", function () {\n\tvar PropertyFactory, BaseProperty, ChangeSet, MSG;\n\tvar changeSetWithEntries, removalChangeSet;\n\tvar myInt64Prop, Int64;\n\n\tbefore(function () {\n\t\t// Get all the objects we need in this test here.\n\t\tPropertyFactory = require(\"../..\").PropertyFactory;\n\t\tBaseProperty = require(\"../..\").BaseProperty;\n\t\tChangeSet = require(\"@fluid-experimental/property-changeset\").ChangeSet;\n\t\tInt64 = require(\"@fluid-experimental/property-common\").Int64;\n\t\tMSG = require(\"@fluid-experimental/property-common\").constants.MSG;\n\n\t\t// Register a template with a set property for the tests\n\t\tvar SimpleInt64TestPropertyTemplate = {\n\t\t\ttypeid: \"autodesk.tests:SimpleInt64TestProperty-1.0.0\",\n\t\t\tproperties: [{ id: \"int64Property\", typeid: \"Int64\", context: \"array\" }],\n\t\t};\n\t\tPropertyFactory._reregister(SimpleInt64TestPropertyTemplate);\n\n\t\tmyInt64Prop = PropertyFactory.create(\"Int64\", \"array\");\n\t});\n\n\t// Inserts an Int64 value into the array\n\tvar insertInt64Value = function (int64Prop) {\n\t\tint64Prop.insertRange(0, [new Int64(0, 1)]);\n\t};\n\n\t// Removes the first element from the array\n\tvar removeArrayElement = function (int64Prop) {\n\t\tint64Prop.removeRange(0, 1);\n\t};\n\n\t// Modifies an array value\n\tvar modifyInt64Value = function (int64Prop) {\n\t\tint64Prop.setRange(0, [new Int64(0, 2)]);\n\t};\n\n\tdescribe(\"Testing creation, assignment and serialization\", function () {\n\t\tit(\"should be empty at the beginning\", function () {\n\t\t\texpect(myInt64Prop.length).to.equal(0);\n\t\t\texpect(myInt64Prop.serialize({ dirtyOnly: true })).to.be.empty;\n\t\t\texpect(myInt64Prop.serialize({ dirtyOnly: false })).to.be.empty;\n\t\t});\n\n\t\tit(\"should be possible to insert into the 64 bit array\", function () {\n\t\t\t// Text insertion\n\t\t\tmyInt64Prop.insertRange(0, [new Int64(1, 2), \"12345678987654321\"]);\n\t\t\texpect(myInt64Prop.get(0)).to.deep.equal(new Int64(1, 2));\n\t\t\tmyInt64Prop.insertRange(2, [5]);\n\t\t\texpect(myInt64Prop.get(1)).to.deep.equal(new Int64(1653732529, 2874452));\n\t\t\tchangeSetWithEntries = myInt64Prop.serialize({ dirtyOnly: true });\n\t\t\texpect(myInt64Prop.serialize({ dirtyOnly: false })).to.deep.equal({\n\t\t\t\tinsert: [\n\t\t\t\t\t[\n\t\t\t\t\t\t0,\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t[1, 2],\n\t\t\t\t\t\t\t[1653732529, 2874452],\n\t\t\t\t\t\t\t[5, 0],\n\t\t\t\t\t\t],\n\t\t\t\t\t],\n\t\t\t\t],\n\t\t\t});\n\t\t\texpect(myInt64Prop.serialize({ dirtyOnly: true })).to.deep.equal({\n\t\t\t\tinsert: [\n\t\t\t\t\t[\n\t\t\t\t\t\t0,\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t[1, 2],\n\t\t\t\t\t\t\t[1653732529, 2874452],\n\t\t\t\t\t\t\t[5, 0],\n\t\t\t\t\t\t],\n\t\t\t\t\t],\n\t\t\t\t],\n\t\t\t});\n\t\t});\n\n\t\tit(\"should be possible to set values in the 64 bit array\", function () {\n\t\t\tmyInt64Prop.setRange(0, [1, \"123\", new Int64(2, 2)]);\n\t\t\texpect(myInt64Prop.get(0)).to.deep.equal(new Int64(1, 0));\n\t\t\tmyInt64Prop.setRange(2, [new Int64(4, 5)]);\n\t\t\tchangeSetWithEntries = myInt64Prop.serialize({ dirtyOnly: true });\n\t\t\texpect(myInt64Prop.serialize({ dirtyOnly: false })).to.deep.equal({\n\t\t\t\tinsert: [\n\t\t\t\t\t[\n\t\t\t\t\t\t0,\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t[1, 0],\n\t\t\t\t\t\t\t[123, 0],\n\t\t\t\t\t\t\t[4, 5],\n\t\t\t\t\t\t],\n\t\t\t\t\t],\n\t\t\t\t],\n\t\t\t});\n\t\t\texpect(myInt64Prop.serialize({ dirtyOnly: true })).to.deep.equal({\n\t\t\t\tinsert: [\n\t\t\t\t\t[\n\t\t\t\t\t\t0,\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t[1, 0],\n\t\t\t\t\t\t\t[123, 0],\n\t\t\t\t\t\t\t[4, 5],\n\t\t\t\t\t\t],\n\t\t\t\t\t],\n\t\t\t\t],\n\t\t\t});\n\t\t});\n\n\t\tit(\".setRange should throw an error when in_offset is not an integer\", function () {\n\t\t\texpect(() => {\n\t\t\t\tmyInt64Prop.setRange(\"test\", [new Int64(2, 2)]);\n\t\t\t}).to.throw(MSG.NOT_NUMBER);\n\t\t});\n\n\t\tit(\".setRange should throw an error when in_array is not an array\", function () {\n\t\t\texpect(() => {\n\t\t\t\tmyInt64Prop.setRange(0, new Int64(2, 2));\n\t\t\t}).to.throw(MSG.IN_ARRAY_NOT_ARRAY + \"Int64ArrayProperty.setRange\");\n\t\t});\n\n\t\tit(\"Should handle removals correctly\", function () {\n\t\t\tmyInt64Prop.cleanDirty(BaseProperty.MODIFIED_STATE_FLAGS.DIRTY);\n\t\t\tmyInt64Prop.removeRange(0, 2);\n\t\t\texpect(myInt64Prop.get(0)).to.deep.equal(new Int64(4, 5));\n\t\t\tremovalChangeSet = myInt64Prop.serialize({\n\t\t\t\tdirtyOnly: true,\n\t\t\t\tincludeRootTypeid: false,\n\t\t\t\tdirtinessType: BaseProperty.MODIFIED_STATE_FLAGS.DIRTY,\n\t\t\t});\n\t\t\texpect(removalChangeSet).to.have.all.keys([\"remove\"]);\n\t\t\texpect(removalChangeSet.remove).to.have.length(1);\n\t\t\texpect(removalChangeSet.remove[0]).to.deep.equal([0, 2]);\n\t\t});\n\n\t\tit(\"Should support deserialization\", function () {\n\t\t\tvar deserializedNode = PropertyFactory.create(\"Int64\", \"array\");\n\t\t\tvar deserializedChanges1 = deserializedNode.deserialize(changeSetWithEntries);\n\t\t\texpect(deserializedChanges1).to.deep.equal(changeSetWithEntries);\n\n\t\t\tvar deserializedChanges3 = deserializedNode.deserialize({});\n\t\t\texpect(deserializedChanges3).to.deep.equal({ remove: [[0, 3]] });\n\t\t});\n\n\t\tit(\"inserting at a bad position should throw an exception\", function () {\n\t\t\texpect(function () {\n\t\t\t\tmyInt64Prop.insertRange(2242, new Int64(4, 5));\n\t\t\t}).to.throw();\n\t\t});\n\n\t\tit(\"Should support applying changeset\", function () {\n\t\t\tvar node = PropertyFactory.create(\"Int64\", \"array\");\n\t\t\tnode._applyChangeset(changeSetWithEntries);\n\t\t\texpect(node.get(0)).to.deep.equal(new Int64(1));\n\t\t\texpect(node.serialize()).to.deep.equal({\n\t\t\t\tinsert: [\n\t\t\t\t\t[\n\t\t\t\t\t\t0,\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t[1, 0],\n\t\t\t\t\t\t\t[123, 0],\n\t\t\t\t\t\t\t[4, 5],\n\t\t\t\t\t\t],\n\t\t\t\t\t],\n\t\t\t\t],\n\t\t\t});\n\t\t});\n\t});\n\n\tdescribe(\"change set specification should be met\", function () {\n\t\tit(\"Should handle push correctly\", function () {\n\t\t\tvar t = PropertyFactory.create(\"Int64\", \"array\");\n\t\t\tt.insertRange(0, [new Int64(1, 2), new Int64(3, 4)]);\n\t\t\tt.cleanDirty();\n\t\t\tt.push(new Int64(4, 5));\n\t\t\texpect(t.serialize({ dirtyOnly: true })).to.deep.equal({\n\t\t\t\tinsert: [[2, [[4, 5]]]],\n\t\t\t});\n\t\t});\n\n\t\tit(\"Should handle modifies correctly\", function () {\n\t\t\tvar t = PropertyFactory.create(\"Int64\", \"array\");\n\t\t\tt.insertRange(0, [new Int64(1, 2), new Int64(3, 4)]);\n\t\t\tt.cleanDirty();\n\t\t\tt.set(1, new Int64(4, 5));\n\t\t\texpect(t.serialize({ dirtyOnly: true })).to.deep.equal({\n\t\t\t\tmodify: [[1, [[4, 5]]]],\n\t\t\t});\n\t\t});\n\t});\n\n\tdescribe(\"squashing\", function () {\n\t\t// Helper function to test the squashing for different containers\n\t\tvar innerTestChangeSetSquashing = function (\n\t\t\tio_testProperty,\n\t\t\tio_int64Property,\n\t\t\tio_initialChangeset,\n\t\t\tin_options,\n\t\t\tin_collection,\n\t\t) {\n\t\t\tvar squashedChangeset = new ChangeSet();\n\t\t\tio_initialChangeset.setIsNormalized(true);\n\t\t\tio_testProperty.cleanDirty(\n\t\t\t\tBaseProperty.MODIFIED_STATE_FLAGS.DIRTY |\n\t\t\t\t\tBaseProperty.MODIFIED_STATE_FLAGS.PENDING_CHANGE,\n\t\t\t);\n\t\t\tvar callbacks = in_options.callbacks;\n\t\t\tfor (var i = 0; i < callbacks.length; i++) {\n\t\t\t\tcallbacks[i](io_int64Property);\n\t\t\t\tvar changes = io_testProperty.serialize({ dirtyOnly: true });\n\t\t\t\tio_testProperty.cleanDirty(\n\t\t\t\t\tBaseProperty.MODIFIED_STATE_FLAGS.DIRTY |\n\t\t\t\t\t\tBaseProperty.MODIFIED_STATE_FLAGS.PENDING_CHANGE,\n\t\t\t\t);\n\t\t\t\tsquashedChangeset.applyChangeSet(changes);\n\t\t\t}\n\n\t\t\tif (in_options.post) {\n\t\t\t\tvar SC = squashedChangeset.getSerializedChangeSet();\n\t\t\t\tif (in_collection && SC.modify) {\n\t\t\t\t\tSC = SC.modify;\n\t\t\t\t}\n\t\t\t\tin_options.post(SC);\n\t\t\t}\n\t\t\tio_initialChangeset.applyChangeSet(squashedChangeset.getSerializedChangeSet());\n\t\t};\n\n\t\t//\n\t\t// Helper function which takes a sequence of callbacks that are successively executed\n\t\t// and the changes applied by the callbacks are separately tracked and squashed in a\n\t\t// a ChangeSet. This ChangeSet is then compared to the state in the property object\n\t\t//\n\t\t// Optionally, a a callback which controls the initial state before the squashing can\n\t\t// be given as first parameter\n\t\t//\n\t\tvar testChangeSetSquashing = function (in_options) {\n\t\t\tvar testProperty = PropertyFactory.create(\n\t\t\t\t\"autodesk.tests:SimpleInt64TestProperty-1.0.0\",\n\t\t\t);\n\n\t\t\tif (in_options.pre) {\n\t\t\t\tin_options.pre(testProperty._properties.int64Property);\n\t\t\t}\n\n\t\t\tvar initialChangeset = new ChangeSet(testProperty.serialize({ dirtyOnly: false }));\n\t\t\tinitialChangeset.setIsNormalized(true);\n\n\t\t\tinnerTestChangeSetSquashing(\n\t\t\t\ttestProperty,\n\t\t\t\ttestProperty._properties.int64Property,\n\t\t\t\tinitialChangeset,\n\t\t\t\tin_options,\n\t\t\t);\n\n\t\t\tvar initialChangeset = initialChangeset.getSerializedChangeSet();\n\t\t\tif (ChangeSet.isEmptyChangeSet(initialChangeset)) {\n\t\t\t\t// if one is empty the other should be empty, too\n\t\t\t\texpect(testProperty.serialize({ dirtyOnly: false })).to.be.empty;\n\t\t\t} else {\n\t\t\t\t// else they must be deep equal\n\t\t\t\texpect(initialChangeset[\"array<Int64>\"].int64Property).to.deep.equal(\n\t\t\t\t\ttestProperty.serialize({ dirtyOnly: false })[\"array<Int64>\"].int64Property,\n\t\t\t\t);\n\t\t\t}\n\t\t};\n\n\t\tit(\"should work for multiple independent inserts\", function () {\n\t\t\ttestChangeSetSquashing({\n\t\t\t\tcallbacks: [insertInt64Value, insertInt64Value, insertInt64Value],\n\t\t\t});\n\t\t});\n\n\t\tit(\"should work for inserts followed by removes\", function () {\n\t\t\ttestChangeSetSquashing({\n\t\t\t\tcallbacks: [\n\t\t\t\t\tinsertInt64Value,\n\t\t\t\t\tinsertInt64Value,\n\t\t\t\t\tremoveArrayElement,\n\t\t\t\t\tremoveArrayElement,\n\t\t\t\t],\n\t\t\t\tpost: function (changeset) {\n\t\t\t\t\texpect(changeset).to.be.empty;\n\t\t\t\t},\n\t\t\t});\n\t\t});\n\n\t\tit(\"should work for mixed modifies and inserts\", function () {\n\t\t\ttestChangeSetSquashing({\n\t\t\t\tcallbacks: [insertInt64Value, modifyInt64Value, insertInt64Value, modifyInt64Value],\n\t\t\t});\n\t\t});\n\n\t\tit(\"an insert, modify and a remove should give an empty changeset\", function () {\n\t\t\ttestChangeSetSquashing({\n\t\t\t\tcallbacks: [insertInt64Value, modifyInt64Value, removeArrayElement],\n\t\t\t\tpost: function (changeset) {\n\t\t\t\t\texpect(changeset).to.be.empty;\n\t\t\t\t},\n\t\t\t});\n\t\t});\n\t\tit(\"work for modifies after an already existing insert\", function () {\n\t\t\ttestChangeSetSquashing({\n\t\t\t\tpre: insertInt64Value,\n\t\t\t\tcallbacks: [modifyInt64Value, modifyInt64Value],\n\t\t\t});\n\t\t});\n\t\tit(\"of modify and remove after an already existing insert should work\", function () {\n\t\t\ttestChangeSetSquashing({\n\t\t\t\tpre: insertInt64Value,\n\t\t\t\tcallbacks: [modifyInt64Value, removeArrayElement],\n\t\t\t\tpost: function (changeset) {\n\t\t\t\t\texpect(changeset[\"array<Int64>\"].int64Property).to.have.all.keys(\"remove\");\n\t\t\t\t},\n\t\t\t});\n\t\t});\n\t});\n\n\tdescribe(\"Rebasing\", function () {\n\t\tvar createPropertyForRebaseTestByTemplate = function () {\n\t\t\treturn PropertyFactory.create(\"autodesk.tests:SimpleInt64TestProperty-1.0.0\");\n\t\t};\n\n\t\tvar getint64PropertyFromNode = function (in_testProperty) {\n\t\t\treturn in_testProperty._properties.int64Property;\n\t\t};\n\n\t\tvar testRebasingInner = function (\n\t\t\tin_creator,\n\t\t\tin_getInnerProperty,\n\t\t\tin_options,\n\t\t\tin_isCollection,\n\t\t) {\n\t\t\t// Prepare the initial state\n\t\t\tvar baseProperty1 = in_creator();\n\t\t\tif (in_options.prepare) {\n\t\t\t\tin_options.prepare(in_getInnerProperty(baseProperty1));\n\t\t\t}\n\t\t\t// Create two copies of this state\n\t\t\tvar baseProperty2 = in_creator();\n\t\t\tbaseProperty2.deserialize(baseProperty1.serialize({ dirtyOnly: false }));\n\t\t\tvar baseProperty3 = in_creator();\n\t\t\tbaseProperty3.deserialize(baseProperty1.serialize({ dirtyOnly: false }));\n\n\t\t\t// Make sure the states are clear\n\t\t\tbaseProperty1.cleanDirty(\n\t\t\t\tBaseProperty.MODIFIED_STATE_FLAGS.DIRTY |\n\t\t\t\t\tBaseProperty.MODIFIED_STATE_FLAGS.PENDING_CHANGE,\n\t\t\t);\n\t\t\tbaseProperty2.cleanDirty(\n\t\t\t\tBaseProperty.MODIFIED_STATE_FLAGS.DIRTY |\n\t\t\t\t\tBaseProperty.MODIFIED_STATE_FLAGS.PENDING_CHANGE,\n\t\t\t);\n\t\t\tbaseProperty3.cleanDirty(\n\t\t\t\tBaseProperty.MODIFIED_STATE_FLAGS.DIRTY |\n\t\t\t\t\tBaseProperty.MODIFIED_STATE_FLAGS.PENDING_CHANGE,\n\t\t\t);\n\n\t\t\tvar initialChangeSet = baseProperty1.serialize({ dirtyOnly: false });\n\n\t\t\t// Apply the operations to the two properties in parallel\n\t\t\tif (in_options.op1) {\n\t\t\t\tin_options.op1(in_getInnerProperty(baseProperty1));\n\t\t\t}\n\t\t\tif (in_options.op2) {\n\t\t\t\tin_options.op2(in_getInnerProperty(baseProperty2));\n\t\t\t}\n\n\t\t\t// Get the ChangeSets\n\t\t\tvar changeSet1 = new ChangeSet(baseProperty1.serialize({ dirtyOnly: true }));\n\t\t\tvar changeSet2 = baseProperty2.serialize({ dirtyOnly: true });\n\n\t\t\t// Perform the actual rebase\n\t\t\tvar conflicts = [];\n\t\t\tchangeSet1._rebaseChangeSet(changeSet2, conflicts);\n\n\t\t\tvar combinedChangeSet = new ChangeSet(initialChangeSet).clone();\n\t\t\tcombinedChangeSet.setIsNormalized(true);\n\t\t\tcombinedChangeSet.applyChangeSet(changeSet1);\n\t\t\tcombinedChangeSet.applyChangeSet(changeSet2);\n\n\t\t\tif (in_options.compareToSequential) {\n\t\t\t\tif (in_options.op1) {\n\t\t\t\t\tin_options.op1(in_getInnerProperty(baseProperty3));\n\t\t\t\t}\n\t\t\t\tif (in_options.op2) {\n\t\t\t\t\tin_options.op2(in_getInnerProperty(baseProperty3));\n\t\t\t\t}\n\t\t\t\tvar finalChangeSet = baseProperty3.serialize({ dirtyOnly: false });\n\t\t\t\tif (in_isCollection && finalChangeSet.insert) {\n\t\t\t\t\tfinalChangeSet = finalChangeSet.insert;\n\t\t\t\t}\n\n\t\t\t\tvar combinedSerialized = combinedChangeSet.getSerializedChangeSet();\n\t\t\t\tif (ChangeSet.isEmptyChangeSet(combinedSerialized)) {\n\t\t\t\t\t// if one is empty the other should be empty, too\n\t\t\t\t\texpect(finalChangeSet).to.be.empty;\n\t\t\t\t} else {\n\t\t\t\t\t// else they must be deep equal\n\t\t\t\t\texpect(combinedSerialized[\"array<Int64>\"].int64Property).to.deep.equal(\n\t\t\t\t\t\tfinalChangeSet[\"array<Int64>\"].int64Property,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (in_options.checkResult) {\n\t\t\t\tif (in_isCollection && changeSet2.modify) {\n\t\t\t\t\tchangeSet2 = changeSet2.modify;\n\t\t\t\t}\n\t\t\t\tin_options.checkResult(conflicts, changeSet2, combinedChangeSet);\n\t\t\t}\n\t\t};\n\n\t\tvar testRebasing = function (in_options) {\n\t\t\ttestRebasingInner(\n\t\t\t\tcreatePropertyForRebaseTestByTemplate,\n\t\t\t\tgetint64PropertyFromNode,\n\t\t\t\tin_options,\n\t\t\t);\n\t\t};\n\n\t\tit(\"with a NOP should be possible\", function () {\n\t\t\ttestRebasing({\n\t\t\t\top2: insertInt64Value,\n\t\t\t\tcompareToSequential: true,\n\t\t\t});\n\t\t});\n\n\t\tit(\"with independent inserts should be possible\", function () {\n\t\t\ttestRebasing({\n\t\t\t\top1: insertInt64Value,\n\t\t\t\top2: insertInt64Value,\n\t\t\t\tcompareToSequential: true,\n\t\t\t});\n\t\t});\n\n\t\tit(\"with independent removes should be possible\", function () {\n\t\t\ttestRebasing({\n\t\t\t\tprepare: function (root) {\n\t\t\t\t\tinsertInt64Value(root);\n\t\t\t\t\tinsertInt64Value(root);\n\t\t\t\t},\n\t\t\t\top1: function (root) {\n\t\t\t\t\troot.removeRange(1, 1);\n\t\t\t\t},\n\t\t\t\top2: function (root) {\n\t\t\t\t\troot.removeRange(0, 1);\n\t\t\t\t},\n\t\t\t\tcompareToSequential: true,\n\t\t\t});\n\t\t});\n\n\t\tit(\"with a modify and a remove should possible\", function () {\n\t\t\ttestRebasing({\n\t\t\t\tprepare: insertInt64Value,\n\t\t\t\top1: modifyInt64Value,\n\t\t\t\top2: removeArrayElement,\n\t\t\t\tcompareToSequential: true,\n\t\t\t});\n\t\t});\n\n\t\tit(\"with a remove and a modify should possible\", function () {\n\t\t\ttestRebasing({\n\t\t\t\tprepare: insertInt64Value,\n\t\t\t\top1: removeArrayElement,\n\t\t\t\top2: modifyInt64Value,\n\t\t\t\tcompareToSequential: false,\n\t\t\t\tcheckResult: function (conflicts, changeSet) {\n\t\t\t\t\texpect(conflicts).to.have.length(1);\n\t\t\t\t\texpect(conflicts[0].type).to.be.equal(\n\t\t\t\t\t\tChangeSet.ConflictType.ENTRY_MODIFIED_AFTER_REMOVE,\n\t\t\t\t\t);\n\t\t\t\t\texpect(conflicts[0].path).to.be.equal(\"int64Property\");\n\t\t\t\t},\n\t\t\t});\n\t\t});\n\n\t\tit(\"with two compatible removes should be possible\", function () {\n\t\t\ttestRebasing({\n\t\t\t\tprepare: insertInt64Value,\n\t\t\t\top1: removeArrayElement,\n\t\t\t\top2: removeArrayElement,\n\t\t\t\tcompareToSequential: false,\n\t\t\t\tcheckResult: function (conflicts, changeSet) {\n\t\t\t\t\texpect(ChangeSet.isEmptyChangeSet(changeSet)).to.be.ok;\n\t\t\t\t},\n\t\t\t});\n\t\t});\n\n\t\tit(\"with two independent modifies should be possible\", function () {\n\t\t\ttestRebasing({\n\t\t\t\tprepare: function (root) {\n\t\t\t\t\troot.insertRange(0, [new Int64(9, 8), new Int64(11, 21)]);\n\t\t\t\t},\n\t\t\t\top1: modifyInt64Value,\n\t\t\t\top2: function (root) {\n\t\t\t\t\troot.setRange(1, [new Int64(5, 6)]);\n\t\t\t\t},\n\t\t\t\tcompareToSequential: true,\n\t\t\t\tcheckResult: function (conflicts, changeSet) {\n\t\t\t\t\texpect(conflicts).to.be.empty;\n\t\t\t\t},\n\t\t\t});\n\t\t});\n\n\t\tit(\"with two conflicting modifies should be possible and report a conflict\", function () {\n\t\t\ttestRebasing({\n\t\t\t\tprepare: insertInt64Value,\n\t\t\t\top1: function (int64Prop) {\n\t\t\t\t\tint64Prop.setRange(0, [new Int64(0, 64)]);\n\t\t\t\t},\n\t\t\t\top2: modifyInt64Value,\n\t\t\t\tcompareToSequential: true,\n\t\t\t\tcheckResult: function (conflicts, changeSet) {\n\t\t\t\t\texpect(conflicts).to.have.length(1);\n\t\t\t\t\texpect(changeSet[\"array<Int64>\"].int64Property.modify[0][1]).to.deep.equal([\n\t\t\t\t\t\t[0, 2],\n\t\t\t\t\t]);\n\t\t\t\t\texpect(conflicts[0].type).to.be.equal(ChangeSet.ConflictType.COLLIDING_SET);\n\t\t\t\t\texpect(conflicts[0].path).to.be.equal(\"int64Property\");\n\t\t\t\t},\n\t\t\t});\n\t\t});\n\n\t\tit(\"with modify followed by remove+insert should work\", function () {\n\t\t\ttestRebasing({\n\t\t\t\tprepare: insertInt64Value,\n\t\t\t\top1: modifyInt64Value,\n\t\t\t\top2: function (root) {\n\t\t\t\t\tremoveArrayElement(root);\n\t\t\t\t\tinsertInt64Value(root);\n\t\t\t\t},\n\t\t\t\tcompareToSequential: true,\n\t\t\t\tcheckResult: function (conflicts, changeSet) {\n\t\t\t\t\texpect(conflicts).to.have.length(1);\n\t\t\t\t\texpect(conflicts[0].type).to.be.equal(\n\t\t\t\t\t\tChangeSet.ConflictType.REMOVE_AFTER_MODIFY,\n\t\t\t\t\t);\n\t\t\t\t\texpect(conflicts[0].path).to.be.equal(\"int64Property\");\n\t\t\t\t\texpect(changeSet[\"array<Int64>\"].int64Property).to.have.all.keys(\n\t\t\t\t\t\t\"remove\",\n\t\t\t\t\t\t\"insert\",\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t});\n\t\t});\n\n\t\tit(\"with remove + insert followed by modify should report conflict\", function () {\n\t\t\ttestRebasing({\n\t\t\t\tprepare: insertInt64Value,\n\t\t\t\top1: function (root) {\n\t\t\t\t\tremoveArrayElement(root);\n\t\t\t\t\tinsertInt64Value(root);\n\t\t\t\t},\n\t\t\t\top2: modifyInt64Value,\n\t\t\t\tcompareToSequential: false,\n\t\t\t\tcheckResult: function (conflicts, changeSet) {\n\t\t\t\t\texpect(conflicts).to.have.length(1);\n\t\t\t\t\texpect(conflicts[0].type).to.be.equal(\n\t\t\t\t\t\tChangeSet.ConflictType.ENTRY_MODIFIED_AFTER_REMOVE,\n\t\t\t\t\t);\n\t\t\t\t\texpect(conflicts[0].path).to.be.equal(\"int64Property\");\n\t\t\t\t},\n\t\t\t});\n\t\t});\n\n\t\tit(\"with conflicting inserts should report conflict\", function () {\n\t\t\ttestRebasing({\n\t\t\t\tprepare: insertInt64Value,\n\t\t\t\top1: insertInt64Value,\n\t\t\t\top2: insertInt64Value,\n\t\t\t\tcompareToSequential: false,\n\t\t\t\tcheckResult: function (conflicts, changeSet) {\n\t\t\t\t\texpect(conflicts).to.have.length(1);\n\t\t\t\t\texpect(conflicts[0].type).to.be.equal(\n\t\t\t\t\t\tChangeSet.ConflictType.INSERTED_ENTRY_WITH_SAME_KEY,\n\t\t\t\t\t);\n\t\t\t\t\texpect(conflicts[0].path).to.be.equal(\"int64Property\");\n\t\t\t\t},\n\t\t\t});\n\t\t});\n\t});\n});\n"]}
|