public void MetadataTreeMergeChunkChangeResolveConflictOnlyOnce(string path, JObject mergeBaseNode, JObject branchNode, JObject headNode, JToken mergeBaseValue, JToken branchValue, JToken headValue, JToken resolvedValue)
        {
            // Act
            var sut = new MetadataTreeMergeChunkChange(path, mergeBaseNode, branchNode, headNode, _property, mergeBaseValue, branchValue, headValue);

            sut.Resolve(resolvedValue);
            Assert.Throws <NotSupportedException>(() => sut.Resolve(resolvedValue));
        }
        public void MetadataTreeMergeChunkChangeShouldNotBeInConflictIfHeadValuesAreSame(string path, JObject mergeBaseNode, JObject branchNode, JObject headNode, JToken mergeBaseValue, JToken branchValue)
        {
            // Act
            var sut = new MetadataTreeMergeChunkChange(path, mergeBaseNode, branchNode, headNode, _property, mergeBaseValue, branchValue, mergeBaseValue);

            // Assert
            Assert.That(sut.IsInConflict, Is.False);
            Assert.That(sut.MergeValue, Is.SameAs(branchValue));
        }
        public void MetadataTreeMergeChunkChangeShouldBeInConflictIfValuesAreDifferent(string path, JObject mergeBaseNode, JObject branchNode, JObject headNode, JToken mergeBaseValue, JToken branchValue, JToken headValue)
        {
            // Act
            var sut = new MetadataTreeMergeChunkChange(path, mergeBaseNode, branchNode, headNode, _property, mergeBaseValue, branchValue, headValue);

            // Assert
            Assert.That(sut.IsInConflict, Is.True);
            Assert.That(sut.MergeValue, Is.Null);
        }
        public void MetadataTreeMergeChunkChangeResolveConflict(string path, JObject mergeBaseNode, JObject branchNode, JObject headNode, JToken mergeBaseValue, JToken branchValue, JToken headValue, JToken resolvedValue)
        {
            // Act
            var sut = new MetadataTreeMergeChunkChange(path, mergeBaseNode, branchNode, headNode, _property, mergeBaseValue, branchValue, headValue);

            sut.Resolve(resolvedValue);

            // Assert
            Assert.That(sut.WasInConflict, Is.True);
            Assert.That(sut.IsInConflict, Is.False);
            Assert.That(sut.MergeValue, Is.SameAs(resolvedValue));
        }
        public void MetadataTreeMergeChunkChangePropertiesAreMatchingEntryParameterValues(string path, JObject mergeBaseNode, JObject branchNode, JObject headNode, JToken mergeBaseValue, JToken branchValue, JToken headValue)
        {
            // Act
            var sut = new MetadataTreeMergeChunkChange(path, mergeBaseNode, branchNode, headNode, _property, mergeBaseValue, branchValue, headValue);

            // Assert
            Assert.That(sut.Path, Is.SameAs(path));
            Assert.That(sut.MergeBaseNode, Is.SameAs(mergeBaseNode));
            Assert.That(sut.BranchNode, Is.SameAs(branchNode));
            Assert.That(sut.HeadNode, Is.SameAs(headNode));
            Assert.That(sut.Property, Is.SameAs(_property));
            Assert.That(sut.MergeBaseValue, Is.SameAs(mergeBaseValue));
            Assert.That(sut.BranchValue, Is.SameAs(branchValue));
            Assert.That(sut.HeadValue, Is.SameAs(headValue));
        }