Exemplo n.º 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);
        }
Exemplo n.º 2
0
        public void DoOnDo_Should_call_action()
        {
            IUnDoManager manager = Substitute.For <IUnDoManager>();
            IUnDo        undo    = null;
            bool         done    = false;

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

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

            Check.That(done).IsTrue();
        }
Exemplo n.º 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();
        }