diff --git a/src/Main/Base/Test/ICSharpCode.SharpDevelop.Tests.csproj b/src/Main/Base/Test/ICSharpCode.SharpDevelop.Tests.csproj index 843b496e67..53d802f358 100644 --- a/src/Main/Base/Test/ICSharpCode.SharpDevelop.Tests.csproj +++ b/src/Main/Base/Test/ICSharpCode.SharpDevelop.Tests.csproj @@ -75,6 +75,7 @@ + diff --git a/src/Main/Base/Test/ReadOnlyDocumentTests.cs b/src/Main/Base/Test/ReadOnlyDocumentTests.cs new file mode 100644 index 0000000000..810b8d9f1e --- /dev/null +++ b/src/Main/Base/Test/ReadOnlyDocumentTests.cs @@ -0,0 +1,66 @@ +// +// +// +// +// $Revision$ +// + +using System; +using ICSharpCode.NRefactory; +using ICSharpCode.SharpDevelop.Editor; +using NUnit.Framework; + +namespace ICSharpCode.SharpDevelop.Tests +{ + [TestFixture] + public class ReadOnlyDocumentTests + { + [Test] + public void EmptyReadOnlyDocument() + { + IDocument document = DocumentUtilitites.LoadReadOnlyDocumentFromBuffer(new StringTextBuffer(string.Empty)); + Assert.AreEqual(string.Empty, document.Text); + Assert.AreEqual(0, document.TextLength); + Assert.AreEqual(1, document.TotalNumberOfLines); + Assert.AreEqual(0, document.PositionToOffset(1, 1)); + Assert.AreEqual(new Location(1, 1), document.OffsetToPosition(0)); + + Assert.AreEqual(0, document.GetLine(1).Offset); + Assert.AreEqual(0, document.GetLine(1).EndOffset); + Assert.AreEqual(0, document.GetLine(1).Length); + Assert.AreEqual(0, document.GetLine(1).TotalLength); + Assert.AreEqual(0, document.GetLine(1).DelimiterLength); + Assert.AreEqual(1, document.GetLine(1).LineNumber); + } + + [Test] + public void SimpleDocument() + { + string text = "Hello\nWorld!\r\n"; + IDocument document = DocumentUtilitites.LoadReadOnlyDocumentFromBuffer(new StringTextBuffer(text)); + Assert.AreEqual(text, document.Text); + Assert.AreEqual(3, document.TotalNumberOfLines); + + Assert.AreEqual(0, document.GetLine(1).Offset); + Assert.AreEqual(5, document.GetLine(1).EndOffset); + Assert.AreEqual(5, document.GetLine(1).Length); + Assert.AreEqual(6, document.GetLine(1).TotalLength); + Assert.AreEqual(1, document.GetLine(1).DelimiterLength); + Assert.AreEqual(1, document.GetLine(1).LineNumber); + + Assert.AreEqual(6, document.GetLine(2).Offset); + Assert.AreEqual(12, document.GetLine(2).EndOffset); + Assert.AreEqual(6, document.GetLine(2).Length); + Assert.AreEqual(8, document.GetLine(2).TotalLength); + Assert.AreEqual(2, document.GetLine(2).DelimiterLength); + Assert.AreEqual(2, document.GetLine(2).LineNumber); + + Assert.AreEqual(14, document.GetLine(3).Offset); + Assert.AreEqual(14, document.GetLine(3).EndOffset); + Assert.AreEqual(0, document.GetLine(3).Length); + Assert.AreEqual(0, document.GetLine(3).TotalLength); + Assert.AreEqual(0, document.GetLine(3).DelimiterLength); + Assert.AreEqual(3, document.GetLine(3).LineNumber); + } + } +}