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(); }
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(); }
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(); }
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(); }
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); }
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(); }