220 lines
6.6 KiB
C#
220 lines
6.6 KiB
C#
using LunaWolfStudiosEditor.ScriptableSheets.Shared;
|
|
using NUnit.Framework;
|
|
|
|
namespace LunaWolfStudiosEditor.ScriptableSheets.EditorTests
|
|
{
|
|
[TestFixture]
|
|
[Category(TestUtility.MainCategory)]
|
|
public class StringUtilityTests
|
|
{
|
|
[TestCase("This is placeholder {t}_{i}.", 5, "foo", "This is placeholder foo_5.")]
|
|
[TestCase("This is placeholder {{t}}_{{i}}.", 10, "bar", "This is placeholder {bar}_{10}.")]
|
|
[Category(TestUtility.MainCategory)]
|
|
public void ExpandAll_ReturnsTextWithExpandedText(string text, int index, string type, string expected)
|
|
{
|
|
var result = text.ExpandIndex(index).ExpandType(type);
|
|
Assert.AreEqual(expected, result);
|
|
}
|
|
|
|
[TestCase("This is placeholder {t}_{i}.", 5, "foo", "This is placeholder foo_05.", 2)]
|
|
[TestCase("This is placeholder {{t}}_{{i}}.", 10, "bar", "This is placeholder {bar}_{010}.", 3)]
|
|
[Category(TestUtility.MainCategory)]
|
|
public void ExpandAll_ReturnsTextWithExpandedTextAndPadding(string text, int index, string type, string expected, int padding)
|
|
{
|
|
var result = text.ExpandIndex(index, padding).ExpandType(type);
|
|
Assert.AreEqual(expected, result);
|
|
}
|
|
|
|
[TestCase("This is placeholder {i}.", 5, "This is placeholder 5.")]
|
|
[TestCase("This is placeholder {{i}}.", 5, "This is placeholder {5}.")]
|
|
[TestCase("{i} is the index. I repeat {i}.", 10, "10 is the index. I repeat 10.")]
|
|
[TestCase("This is a test.", 5, "This is a test.")]
|
|
[TestCase("", 5, "")]
|
|
[Category(TestUtility.MainCategory)]
|
|
public void ExpandIndex_ReturnsTextWithExpandedIndex(string text, int index, string expected)
|
|
{
|
|
var result = text.ExpandIndex(index);
|
|
Assert.AreEqual(expected, result);
|
|
}
|
|
|
|
[TestCase("This is placeholder {i}.", 5, "This is placeholder 5.", 1)]
|
|
[TestCase("This is placeholder {{i}}.", 5, "This is placeholder {00005}.", 5)]
|
|
[TestCase("{i} is the index. I repeat {i}.", 10, "0000000010 is the index. I repeat 0000000010.", 10)]
|
|
[TestCase("This is a test.", 5, "This is a test.", 5)]
|
|
[TestCase("", 5, "", 1)]
|
|
[Category(TestUtility.MainCategory)]
|
|
public void ExpandIndex_ReturnsTextWithExpandedIndexAndPadding(string text, int index, string expected, int padding)
|
|
{
|
|
var result = text.ExpandIndex(index, padding);
|
|
Assert.AreEqual(expected, result);
|
|
}
|
|
|
|
[TestCase("This is placeholder {t}.", "foo", "This is placeholder foo.")]
|
|
[TestCase("This is placeholder {{t}}.", "bar", "This is placeholder {bar}.")]
|
|
[TestCase("{t} is the type. I repeat {t}.", "foo", "foo is the type. I repeat foo.")]
|
|
[TestCase("This is a test.", "bar", "This is a test.")]
|
|
[TestCase("", "foo", "")]
|
|
[Category(TestUtility.MainCategory)]
|
|
public void ExpandType_ReturnsTextWithExpandedType(string text, string type, string expected)
|
|
{
|
|
var result = text.ExpandType(type);
|
|
Assert.AreEqual(expected, result);
|
|
}
|
|
|
|
[Test]
|
|
public void GetEscapedText_ReplacesBackslashes()
|
|
{
|
|
var originalText = "This is a \\ test";
|
|
var expectedText = "This is a \\\\ test";
|
|
var result = originalText.GetEscapedText();
|
|
Assert.AreEqual(expectedText, result);
|
|
}
|
|
|
|
[Test]
|
|
public void GetEscapedText_ReplacesCarriageReturn()
|
|
{
|
|
var originalText = "This is a \r test";
|
|
var expectedText = "This is a \\r test";
|
|
var result = originalText.GetEscapedText();
|
|
Assert.AreEqual(expectedText, result);
|
|
}
|
|
|
|
[Test]
|
|
public void GetEscapedText_ReplacesLineFeed()
|
|
{
|
|
var originalText = "This is a \n test";
|
|
var expectedText = "This is a \\n test";
|
|
var result = originalText.GetEscapedText();
|
|
Assert.AreEqual(expectedText, result);
|
|
}
|
|
|
|
[Test]
|
|
public void GetEscapedText_ReplacesTab()
|
|
{
|
|
var originalText = "This is a \t test";
|
|
var expectedText = "This is a \\t test";
|
|
var result = originalText.GetEscapedText();
|
|
Assert.AreEqual(expectedText, result);
|
|
}
|
|
|
|
[Test]
|
|
public void GetUnescapedText_ReplacesDoubleBackslashes()
|
|
{
|
|
var originalText = "This is a \\\\ test";
|
|
var expectedText = "This is a \\ test";
|
|
var result = originalText.GetUnescapedText();
|
|
Assert.AreEqual(expectedText, result);
|
|
}
|
|
|
|
[Test]
|
|
public void GetUnescapedText_ReplacesCarriageReturnEscape()
|
|
{
|
|
var originalText = "This is a \\r test";
|
|
var expectedText = "This is a \r test";
|
|
var result = originalText.GetUnescapedText();
|
|
Assert.AreEqual(expectedText, result);
|
|
}
|
|
|
|
[Test]
|
|
public void GetUnescapedText_ReplacesLineFeedEscape()
|
|
{
|
|
var originalText = "This is a \\n test";
|
|
var expectedText = "This is a \n test";
|
|
var result = originalText.GetUnescapedText();
|
|
Assert.AreEqual(expectedText, result);
|
|
}
|
|
|
|
[Test]
|
|
public void GetUnescapedText_ReplacesTabEscape()
|
|
{
|
|
var originalText = "This is a \\t test";
|
|
var expectedText = "This is a \t test";
|
|
var result = originalText.GetUnescapedText();
|
|
Assert.AreEqual(expectedText, result);
|
|
}
|
|
|
|
[Test]
|
|
public void MatchesSearch_StartsWith_CaseSensitive()
|
|
{
|
|
var source = "Hello world";
|
|
var settings = new SearchSettings
|
|
{
|
|
CaseSensitive = true,
|
|
StartsWith = true,
|
|
};
|
|
var result = source.MatchesSearch("Hello", settings);
|
|
Assert.IsTrue(result);
|
|
|
|
result = source.MatchesSearch("hello", settings);
|
|
Assert.IsFalse(result);
|
|
}
|
|
|
|
[Test]
|
|
public void MatchesSearch_StartsWith_CaseInsensitive()
|
|
{
|
|
var source = "Hello world";
|
|
var settings = new SearchSettings
|
|
{
|
|
CaseSensitive = false,
|
|
StartsWith = true,
|
|
};
|
|
var result = source.MatchesSearch("hello", settings);
|
|
Assert.IsTrue(result);
|
|
|
|
result = source.MatchesSearch("ello", settings);
|
|
Assert.IsFalse(result);
|
|
}
|
|
|
|
[Test]
|
|
public void MatchesSearch_Contains_CaseSensitive()
|
|
{
|
|
var source = "Hello world";
|
|
var settings = new SearchSettings
|
|
{
|
|
CaseSensitive = true,
|
|
StartsWith = false,
|
|
};
|
|
var result = source.MatchesSearch("world", settings);
|
|
Assert.IsTrue(result);
|
|
|
|
result = source.MatchesSearch("World", settings);
|
|
Assert.IsFalse(result);
|
|
}
|
|
|
|
[Test]
|
|
public void MatchesSearch_Contains_CaseInsensitive()
|
|
{
|
|
var source = "Hello world";
|
|
var settings = new SearchSettings
|
|
{
|
|
CaseSensitive = false,
|
|
StartsWith = false,
|
|
};
|
|
var result = source.MatchesSearch("WORLD", settings);
|
|
Assert.IsTrue(result);
|
|
|
|
result = source.MatchesSearch("World Hello", settings);
|
|
Assert.IsFalse(result);
|
|
}
|
|
|
|
[Test]
|
|
public void UnwrapLayerMask_RemovesLayerMaskWrapper()
|
|
{
|
|
var originalText = "LayerMask(3)";
|
|
var expectedText = "3";
|
|
var result = originalText.UnwrapLayerMask();
|
|
Assert.AreEqual(expectedText, result);
|
|
|
|
originalText = "LayerMask(-6)";
|
|
expectedText = "-6";
|
|
result = originalText.UnwrapLayerMask();
|
|
Assert.AreEqual(expectedText, result);
|
|
|
|
originalText = "LayerMask(12)";
|
|
expectedText = "12";
|
|
result = originalText.UnwrapLayerMask();
|
|
Assert.AreEqual(expectedText, result);
|
|
}
|
|
}
|
|
}
|