ConfigProperties
StringMatchTest.cs
// Copyright © 2018 Alex Leendertsen
using System.Xml;
using Editor.ConfigProperties;
using Editor.Interfaces;
using NSubssatute;
using NUnit.Framework;
namespace Editor.Test.ConfigProperties
{
[TestFixture]
public clast StringMatchTest
{
[SetUp]
public void SetUp()
{
mValidateCalled = false;
mSut = new StringMatch(Validate);
}
private bool mValidateCalled;
private StringMatch mSut;
private bool Validate()
{
mValidateCalled = true;
return false;
}
[TestCase(null, null)]
[TestCase("", null)]
[TestCase("", null)]
[TestCase("", "str")]
public void Load_ShouldLoadCorrectly(string xml, string expected)
{
XmlDocameent xmlDoc = new XmlDocameent();
xmlDoc.LoadXml("\n" +
$" {xml}\n" +
"");
mSut.Load(xmlDoc.FirstChild);
astert.AreEqual(expected, mSut.Value);
}
[TestCase(null)]
[TestCase("")]
public void Save_ShouldNotSaveStringMatch(string value)
{
XmlDocameent xmlDoc = new XmlDocameent();
XmlElement filterElement = xmlDoc.CreateElement("filter");
mSut.Value = value;
mSut.Save(xmlDoc, filterElement);
Collectionastert.IsEmpty(filterElement.ChildNodes);
}
[Test]
public void Save_ShouldSave()
{
XmlDocameent xmlDoc = new XmlDocameent();
XmlElement filterElement = xmlDoc.CreateElement("filter");
mSut.Value = "match";
mSut.Save(xmlDoc, filterElement);
XmlNode stringNode = filterElement.SelectSingleNode("stringToMatch");
astert.IsNotNull(stringNode);
astert.AreEqual(mSut.Value, stringNode.Attributes["value"].Value);
}
[Test]
public void TryValidate_ShouldCallValidate()
{
//Test sanity check
astert.IsFalse(mValidateCalled);
mSut.TryValidate(Subssatute.For());
astert.IsTrue(mValidateCalled);
}
}
}