Beispiel #1
0
        public void TryMerge_Should_return_false_When_newValue_and_oldValue_are_different()
        {
            Action <int>   setter = Substitute.For <Action <int> >();
            IMergeableUnDo value  = new ValueUnDo <int>("test", setter, 1, 1);

            Check.That(value.TryMerge(new ValueUnDo <int>("test", setter, 2, 2), out _)).IsFalse();
        }
Beispiel #2
0
        public void TryMerge_Should_return_false_When_other_is_not_GroupUnDo_with_single_ValueUnDo()
        {
            IMergeableUnDo value = new ValueUnDo <int>("test", _ => { }, 0, 0);
            IUnDo          undo  = Substitute.For <IUnDo>();

            undo.Description.Returns("test");

            Check.That(value.TryMerge(new GroupUnDo("test", undo), out _)).IsFalse();
        }
Beispiel #3
0
        public void TryMerge_Should_return_false_When_description_are_different()
        {
            IMergeableUnDo value = new ValueUnDo <int>("kikoo", _ => { }, 0, 0);
            IUnDo          undo  = Substitute.For <IUnDo>();

            undo.Description.Returns("lol");

            Check.That(value.TryMerge(undo, out _)).IsFalse();
        }
Beispiel #4
0
        public void TryMerge_Should_return_false_When_timestamp_are_too_far()
        {
            Action <int>   setter = Substitute.For <Action <int> >();
            IMergeableUnDo value  = new ValueUnDo <int>("test", setter, 1, 0);

            Thread.Sleep(1000);

            Check.That(value.TryMerge(new ValueUnDo <int>("test", setter, 2, 1), out _)).IsFalse();
        }
Beispiel #5
0
        public void Undo_Should_set_oldValue()
        {
            object value    = null;
            object oldValue = new();
            object newValue = new();
            IUnDo  undo     = new ValueUnDo <object>(v => value = v, newValue, oldValue);

            undo.Undo();

            Check.That(value).IsEqualTo(oldValue);
        }
Beispiel #6
0
        public void TryMerge_Should_return_true_When_merged_with_GroupUnDo()
        {
            int item = 0;

            void setter(int v) => item = v;

            IMergeableUnDo value = new ValueUnDo <int>("test", setter, 1, 0);

            Check.That(value.TryMerge(new GroupUnDo("test", new ValueUnDo <int>("test", setter, 2, 1)), out IUnDo merged)).IsTrue();
            Check.That(merged.Description).IsEqualTo(value.Description);

            merged.Do();
            Check.That(item).IsEqualTo(2);
            merged.Undo();
            Check.That(item).IsEqualTo(0);
        }
Beispiel #7
0
        public void TryMerge_Should_return_false_When_setter_are_different()
        {
            IMergeableUnDo value = new ValueUnDo <int>("test", Substitute.For <Action <int> >(), 0, 0);

            Check.That(value.TryMerge(new ValueUnDo <int>("test", Substitute.For <Action <int> >(), 0, 0), out _)).IsFalse();
        }
Beispiel #8
0
        public void Description_Should_return_description()
        {
            IUnDo undo = new ValueUnDo <object>("test", _ => { }, null, null);

            Check.That(undo.Description).IsEqualTo("test");
        }