// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using NUnit.Framework;
namespace ICSharpCode.AvalonEdit.Document
{
[TestFixture]
public class TextUtilitiesTests
{
#region GetWhitespaceAfter
[Test]
public void TestGetWhitespaceAfter()
{
Assert.AreEqual(new SimpleSegment(2, 3), TextUtilities.GetWhitespaceAfter(new StringTextSource("a \t \tb"), 2));
}
[Test]
public void TestGetWhitespaceAfterDoesNotSkipNewLine()
{
Assert.AreEqual(new SimpleSegment(2, 3), TextUtilities.GetWhitespaceAfter(new StringTextSource("a \t \tb"), 2));
}
[Test]
public void TestGetWhitespaceAfterEmptyResult()
{
Assert.AreEqual(new SimpleSegment(2, 0), TextUtilities.GetWhitespaceAfter(new StringTextSource("a b"), 2));
}
[Test]
public void TestGetWhitespaceAfterEndOfString()
{
Assert.AreEqual(new SimpleSegment(2, 0), TextUtilities.GetWhitespaceAfter(new StringTextSource("a "), 2));
}
[Test]
public void TestGetWhitespaceAfterUntilEndOfString()
{
Assert.AreEqual(new SimpleSegment(2, 3), TextUtilities.GetWhitespaceAfter(new StringTextSource("a \t \t"), 2));
}
#endregion
#region GetWhitespaceBefore
[Test]
public void TestGetWhitespaceBefore()
{
Assert.AreEqual(new SimpleSegment(1, 3), TextUtilities.GetWhitespaceBefore(new StringTextSource("a\t \t b"), 4));
}
[Test]
public void TestGetWhitespaceBeforeDoesNotSkipNewLine()
{
Assert.AreEqual(new SimpleSegment(2, 1), TextUtilities.GetWhitespaceBefore(new StringTextSource("a\n b"), 3));
}
[Test]
public void TestGetWhitespaceBeforeEmptyResult()
{
Assert.AreEqual(new SimpleSegment(2, 0), TextUtilities.GetWhitespaceBefore(new StringTextSource(" a b"), 2));
}
[Test]
public void TestGetWhitespaceBeforeStartOfString()
{
Assert.AreEqual(new SimpleSegment(0, 0), TextUtilities.GetWhitespaceBefore(new StringTextSource(" a"), 0));
}
[Test]
public void TestGetWhitespaceBeforeUntilStartOfString()
{
Assert.AreEqual(new SimpleSegment(0, 2), TextUtilities.GetWhitespaceBefore(new StringTextSource(" \t a"), 2));
}
#endregion
}
}