public void Redo_MultipleObjects_ShouldRemoveObjectsFromCollection()
        {
            // Arrange
            var collection = Collection;
            var obj1       = CreateLayoutObject(5, 5, 2, 2);
            var obj2       = CreateLayoutObject(0, 0, 2, 2);

            collection.Insert(obj1, obj1.GridRect);
            collection.Insert(obj2, obj2.GridRect);
            var operation = new RemoveObjectsOperation()
            {
                Collection = collection,
                Objects    = new List <LayoutObject>()
                {
                    obj1,
                    obj2
                }
            };

            // Act
            operation.Redo();

            // Assert
            Assert.Empty(collection);
        }
        public void Redo_SingleObject_ShouldRemoveObjectFromCollection()
        {
            // Arrange
            var collection = Collection;
            var obj        = CreateLayoutObject(5, 5, 2, 2);

            collection.Insert(obj, obj.GridRect);
            var operation = new RemoveObjectsOperation()
            {
                Collection = collection,
                Objects    = new List <LayoutObject>()
                {
                    obj
                }
            };

            // Act
            operation.Redo();

            // Assert
            Assert.Empty(collection);
        }
        public void Undo_MultipleObjects_ShouldAddObjectsToCollection()
        {
            // Arrange
            var collection = Collection;
            var obj1       = CreateLayoutObject(5, 5, 2, 2);
            var obj2       = CreateLayoutObject(0, 0, 2, 2);
            var operation  = new RemoveObjectsOperation()
            {
                Collection = collection,
                Objects    = new List <LayoutObject>()
                {
                    obj1,
                    obj2
                }
            };

            // Act
            operation.Undo();

            // Assert
            Assert.Equal(2, collection.Count());
        }
        public void Undo_SingleObject_ShouldAddObjectToCollection()
        {
            // Arrange
            var collection = Collection;

            Assert.Empty(collection);
            var obj       = CreateLayoutObject(5, 5, 2, 2);
            var operation = new RemoveObjectsOperation()
            {
                Collection = collection,
                Objects    = new List <LayoutObject>()
                {
                    obj
                }
            };

            // Act
            operation.Undo();

            // Assert
            Assert.Equal(1, collection.Count());
        }