コード例 #1
0
        public void HasChanges_TrueAfterCurrentValueSet()
        {
            var subject = new ChangeContainerValue("Initial Value");

            subject.CurrentValue = "FirstValue";
            Assert.True(subject.HasChanges);
        }
コード例 #2
0
        public void GetChangeSet_ThrowWhenPathNull()
        {
            var subject = new ChangeContainerValue("Initial Value");

            subject.CurrentValue = "new value";
            Assert.Throws <ArgumentNullException>(() => subject.GetChangeSet(null));
        }
コード例 #3
0
        public void CurrentValue_EqualsInitialValueAtCreation()
        {
            var expectedValue = "Initial Value";
            var subject       = new ChangeContainerValue(expectedValue);

            Assert.Equal(expectedValue, subject.CurrentValue);
        }
コード例 #4
0
        public void HasChanges_Int_FalseWhenSameValueSet()
        {
            var expected = 123;
            var subject  = new ChangeContainerValue(expected);

            subject.CurrentValue = expected;
            Assert.False(subject.HasChanges);
        }
コード例 #5
0
        public void HasChanges_String_FalseWhenSameValueSet()
        {
            var expected = "Initial Value";
            var subject  = new ChangeContainerValue(expected);

            subject.CurrentValue = expected;
            Assert.False(subject.HasChanges);
        }
コード例 #6
0
        public void Reset_CurrentValueBackToOldAfterReset()
        {
            var expectedValue = "Initial Value";
            var subject       = new ChangeContainerValue(expectedValue);

            subject.CurrentValue = "FirstValue";
            subject.Reset();
            Assert.Equal(expectedValue, subject.CurrentValue);
        }
コード例 #7
0
        public void Reset_HasChangesFalseAfterReset()
        {
            var subject = new ChangeContainerValue("Initial Value");

            subject.CurrentValue = "FirstValue";
            Assert.True(subject.HasChanges);
            subject.Reset();
            Assert.False(subject.HasChanges);
        }
コード例 #8
0
        public void GetChangeSet_NullWhenNoChanges()
        {
            var subject = new ChangeContainerValue("Initial Value");

            Assert.False(subject.HasChanges);
            var changes = subject.GetChangeSet(ChangePath.Empty, commit: true);

            Assert.Null(changes);
        }
コード例 #9
0
        public void GetChangeSet_CommitFalseKeepsChanges()
        {
            var subject = new ChangeContainerValue("Initial Value");

            subject.CurrentValue = "New Value";
            Assert.True(subject.HasChanges);
            var changes = subject.GetChangeSet(ChangePath.Empty);

            Assert.True(subject.HasChanges);
        }
コード例 #10
0
        public void GetChangeSet_CommitTrueCommitsChanges()
        {
            var expectedNewValue = "New Value";
            var subject          = new ChangeContainerValue("Initial Value");

            subject.CurrentValue = expectedNewValue;
            Assert.True(subject.HasChanges);
            var changes = subject.GetChangeSet(ChangePath.Empty, commit: true);

            Assert.False(subject.HasChanges);
            Assert.Equal(expectedNewValue, subject.CurrentValue);
        }
コード例 #11
0
        public void GetChangeSet_GeneratesCorrectChangeSetForITracksChanges()
        {
            var path         = ChangePath.Create("Key");
            var expectedPath = path.AppendProperty(nameof(NestedObject.StringValue));
            var nested       = ChangeTrackingObject.CreateTrackable <NestedObject>();
            var subject      = new ChangeContainerValue(nested);

            nested.StringValue = "My new value;";

            var changes = subject.GetChangeSet(path);

            Assert.Single(changes);
            Assert.True(changes.ContainsKey(expectedPath));
        }
コード例 #12
0
        public void GetChangeSet_GeneratesCorrectChangeSet()
        {
            var expectedOldValue = "Initial Value";
            var expectedNewValue = "New Value";
            var expectedPath     = ChangePath.Create("Key");
            var subject          = new ChangeContainerValue(expectedOldValue);

            subject.CurrentValue = expectedNewValue;
            var changes = subject.GetChangeSet(expectedPath);

            Assert.Single(changes);
            Assert.True(changes.ContainsKey(expectedPath));
            Assert.Single(changes[expectedPath]);
            Assert.Equal(ChangeAction.Update, changes[expectedPath][0].Action);
            Assert.Equal(expectedOldValue, changes[expectedPath][0].OldValue);
            Assert.Equal(expectedNewValue, changes[expectedPath][0].NewValue);
        }
コード例 #13
0
        public void HasChanges_FalseOnInitialize()
        {
            var subject = new ChangeContainerValue("Initial Value");

            Assert.False(subject.HasChanges);
        }