Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/monodevelop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'main/tests/UnitTests/MonoDevelop.Ide.Editor/TextSourceTestBase.cs')
-rw-r--r--main/tests/UnitTests/MonoDevelop.Ide.Editor/TextSourceTestBase.cs169
1 files changed, 169 insertions, 0 deletions
diff --git a/main/tests/UnitTests/MonoDevelop.Ide.Editor/TextSourceTestBase.cs b/main/tests/UnitTests/MonoDevelop.Ide.Editor/TextSourceTestBase.cs
new file mode 100644
index 0000000000..a3710af4a4
--- /dev/null
+++ b/main/tests/UnitTests/MonoDevelop.Ide.Editor/TextSourceTestBase.cs
@@ -0,0 +1,169 @@
+//
+// TextSourceTestBase.cs
+//
+// Author:
+// Mike Krüger <mkrueger@xamarin.com>
+//
+// Copyright (c) 2015 Xamarin Inc. (http://xamarin.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+using System;
+using UnitTests;
+using NUnit.Framework.Internal;
+using MonoDevelop.Core.Text;
+using System.Text;
+using NUnit.Framework;
+using System.IO;
+
+namespace MonoDevelop.Ide.Editor
+{
+ [TestFixture]
+ public abstract class TextSourceTestBase : TestBase
+ {
+ protected abstract ITextSource CreateTextSource (string text, Encoding enc = null, bool useBom = false);
+
+ [Test]
+ public void TestTextProperty()
+ {
+ const string txt = "test";
+ var test = CreateTextSource (txt);
+ Assert.AreEqual (txt, test.Text);
+ }
+
+ [Test]
+ public void TestLengthProperty()
+ {
+ const string txt = "test";
+ var test = CreateTextSource (txt);
+ Assert.AreEqual (txt.Length, test.Length);
+ }
+
+ [Test]
+ public void TestGetCharAt()
+ {
+ const string txt = "test";
+ var test = CreateTextSource (txt);
+ for (int i = 0; i < txt.Length; i++) {
+ Assert.AreEqual (txt[i], test.GetCharAt (i));
+ }
+ }
+
+ [Test]
+ public void TestTextAt()
+ {
+ const string txt = "test";
+ var test = CreateTextSource (txt);
+ for (int i = 0; i < txt.Length; i++) {
+ Assert.AreEqual (txt.Substring (0, i), test.GetTextAt (0, i));
+ }
+ }
+
+ [Test]
+ public void TestTextAt_Segment()
+ {
+ const string txt = "test";
+ var test = CreateTextSource (txt);
+ for (int i = 0; i < txt.Length; i++) {
+ Assert.AreEqual (txt.Substring (0, i), test.GetTextAt (new TextSegment (0, i)));
+ }
+ }
+
+ [Test]
+ public void TestCreateReader()
+ {
+ const string txt = "test";
+ var test = CreateTextSource (txt);
+ var readText = test.CreateReader ().ReadToEnd ();
+ Assert.AreEqual (txt, readText);
+ }
+
+ [Test]
+ public void TestCreateReaderAt()
+ {
+ const string txt = "test";
+ var test = CreateTextSource (txt);
+ var readText = test.CreateReader (2, 2).ReadToEnd ();
+ Assert.AreEqual (txt.Substring (2, 2), readText);
+ }
+
+ [Test]
+ public void TestCreateReaderAt_Segment()
+ {
+ const string txt = "test";
+ var test = CreateTextSource (txt);
+ var readText = test.CreateReader (new TextSegment (2, 2)).ReadToEnd ();
+ Assert.AreEqual (txt.Substring (2, 2), readText);
+ }
+
+ [Test]
+ public void TestWriteTextTo()
+ {
+ const string txt = "test";
+ var test = CreateTextSource (txt);
+ var writer = new StringWriter ();
+ test.WriteTextTo (writer);
+ Assert.AreEqual (txt, writer.ToString ());
+ }
+
+ [Test]
+ public void TestWriteTextToAt()
+ {
+ const string txt = "test";
+ var test = CreateTextSource (txt);
+ var writer = new StringWriter ();
+ test.WriteTextTo (writer, 2, 2);
+ Assert.AreEqual (txt.Substring (2, 2), writer.ToString ());
+ }
+
+ [Test]
+ public void TestWriteTextToAt_Segment()
+ {
+ const string txt = "test";
+ var test = CreateTextSource (txt);
+ var writer = new StringWriter ();
+ test.WriteTextTo (writer, new TextSegment (2, 2));
+ Assert.AreEqual (txt.Substring (2, 2), writer.ToString ());
+ }
+
+ [Test]
+ public void TestCreateSnapshotAt()
+ {
+ const string txt = "test";
+ var test = CreateTextSource (txt).CreateSnapshot (2, 2);
+ Assert.AreEqual (txt.Substring (2, 2), test.Text);
+ }
+
+ [Test]
+ public void TestCreateSnapshotAt_Segment()
+ {
+ const string txt = "test";
+ var test = CreateTextSource (txt).CreateSnapshot (new TextSegment (2, 2));
+ Assert.AreEqual (txt.Substring (2, 2), test.Text);
+ }
+
+ [Test]
+ public void TestGetTextBetween()
+ {
+ const string txt = "test";
+ var test = CreateTextSource (txt);
+ Assert.AreEqual (txt.Substring (1, txt.Length - 2), test.GetTextBetween (1, txt.Length - 1));
+ }
+ }
+}
+