public void PasteSingleAtEnd()
        {
            // Setup
            InsertPatternIntoBuffer(3);
            editor.Clipboard.Text = " Inserted";
            editor.Caret.Position = new TextPosition(1, 0).ToEndOfLine(renderer);

            // Operation
            TextActions.Paste(controller);

            // Verification
            Assert.AreEqual(3, buffer.LineCount);
            Assert.AreEqual("Line 1", buffer.GetLineText(0));
            Assert.AreEqual("Line 2 Inserted", buffer.GetLineText(1));
            Assert.AreEqual("Line 3", buffer.GetLineText(2));
        }
        public void PasteSingleInMiddle()
        {
            // Setup
            InsertPatternIntoBuffer(3);
            editor.Clipboard.Text = "Insert ";
            editor.Caret.Position = new TextPosition(1, 5);

            // Operation
            TextActions.Paste(controller);

            // Verification
            Assert.AreEqual(3, buffer.LineCount);
            Assert.AreEqual("Line 1", buffer.GetLineText(0));
            Assert.AreEqual("Line Insert 2", buffer.GetLineText(1));
            Assert.AreEqual("Line 3", buffer.GetLineText(2));
        }
        public void PasteMultipleAtBeginning()
        {
            // Setup
            InsertPatternIntoBuffer(3);
            editor.Clipboard.Text = "Insert\nNew ";
            editor.Caret.Position = new TextPosition(1, 0);

            // Operation
            TextActions.Paste(controller);

            // Verification
            Assert.AreEqual(4, buffer.LineCount);
            Assert.AreEqual("Line 1", buffer.GetLineText(0));
            Assert.AreEqual("Insert", buffer.GetLineText(1));
            Assert.AreEqual("New Line 2", buffer.GetLineText(2));
            Assert.AreEqual("Line 3", buffer.GetLineText(3));
        }
        public void PasteSingleSelectionSingleEolInMiddle()
        {
            // Setup
            InsertPatternIntoBuffer(3);
            editor.Clipboard.Text  = "Insert\n";
            editor.Caret.Selection = new TextRange(
                new TextPosition(1, 3), new TextPosition(1, 5));

            // Operation
            TextActions.Paste(controller);

            // Verification
            Assert.AreEqual(4, buffer.LineCount);
            Assert.AreEqual("Line 1", buffer.GetLineText(0));
            Assert.AreEqual("LinInsert", buffer.GetLineText(1));
            Assert.AreEqual("2", buffer.GetLineText(2));
            Assert.AreEqual("Line 3", buffer.GetLineText(3));
        }
        public void PasteSingleSelectionMultipleAtEnd()
        {
            // Setup
            InsertPatternIntoBuffer(3);
            editor.Clipboard.Text  = " Inserted\nNew";
            editor.Caret.Selection = new TextRange(
                new TextPosition(1, 3), new TextPosition(1, 6));

            // Operation
            TextActions.Paste(controller);

            // Verification
            Assert.AreEqual(4, buffer.LineCount);
            Assert.AreEqual("Line 1", buffer.GetLineText(0));
            Assert.AreEqual("Lin Inserted", buffer.GetLineText(1));
            Assert.AreEqual("New", buffer.GetLineText(2));
            Assert.AreEqual("Line 3", buffer.GetLineText(3));
        }