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 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); }
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(); }
public void Description_Should_return_description() { IUnDo undo = new ValueUnDo <object>("test", _ => { }, null, null); Check.That(undo.Description).IsEqualTo("test"); }