Exemple #1
0
        public void DoClear_Should_add_old_elements_When_undone()
        {
            ICollection <object> source = new List <object>
            {
                new object(),
                new object(),
                new object()
            };
            IUnDoManager  manager    = Substitute.For <IUnDoManager>();
            IUnDo         undo       = null;
            List <object> sourceCopy = source.ToList();

            manager.Do(Arg.Do <IUnDo>(i => undo = i));

            manager.DoClear(source);

            Check.That(undo).IsNotNull();

            undo.Do();

            Check.That(source.Count).IsEqualTo(0);

            undo.Undo();

            Check.That(source).ContainsExactly(sourceCopy);
        }
Exemple #2
0
        public void DoOnUnDo_Should_call_action()
        {
            IUnDoManager manager = Substitute.For <IUnDoManager>();
            IUnDo        undo    = null;
            bool         done    = false;

            manager.Do(Arg.Do <IUnDo>(i => undo = i));
            manager.DoOnUndo(() => done         = true);

            Check.That(undo).IsNotNull();
            undo.Undo();

            Check.That(done).IsTrue();
        }
Exemple #3
0
        public void Do_IDictionary_Should_remove_element_When_undone()
        {
            object key = new();
            IDictionary <object, object> source = new Dictionary <object, object>();
            IUnDoManager manager = Substitute.For <IUnDoManager>();
            IUnDo        undo    = null;

            manager.Do(Arg.Do <IUnDo>(i => undo = i));

            manager.Do(source, key, null);

            Check.That(undo).IsNotNull();

            undo.Do();

            Check.That(source.ContainsKey(key)).IsTrue();

            undo.Undo();

            Check.That(source.ContainsKey(key)).IsFalse();
        }