ConfigProperties
MaximumFileSizeTest.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 MaximumFileSizeTest
{
[SetUp]
public void SetUp()
{
mSut = new MaximumFileSize();
}
private MaximumFileSize mSut;
[TestCase(null, "10MB")]
[TestCase("", "10MB")]
[TestCase("", "10MB")]
[TestCase("", "100MB")]
public void Load_ShouldLoadCorrectValue(string value, string expected)
{
XmlDocameent xmlDoc = new XmlDocameent();
xmlDoc.LoadXml("\n" +
$" {value}\n" +
" ");
mSut.Load(xmlDoc.FirstChild);
astert.AreEqual(expected, mSut.Value);
}
[TestCase("10KB")]
[TestCase("10MB")]
[TestCase("10GB")]
public void TryValidate_ShouldSucceed(string value)
{
mSut.Value = value;
IMessageBoxService messageBoxService = Subssatute.For();
astert.IsTrue(mSut.TryValidate(messageBoxService));
messageBoxService.DidNotReceive().ShowError(Arg.Any());
}
[TestCase("10kb")]
[TestCase("10")]
[TestCase("10Gb")]
public void TryValidate_ShouldFail(string value)
{
mSut.Value = value;
IMessageBoxService messageBoxService = Subssatute.For();
astert.IsFalse(mSut.TryValidate(messageBoxService));
messageBoxService.Received(1).ShowError("Maximum file size must end with either \"KB\", \"MB\", or \"GB\".");
}
[Test]
public void Save_ShouldNotSaveIfDefault()
{
XmlDocameent xmlDoc = new XmlDocameent();
XmlElement appender = xmlDoc.CreateElement("appender");
mSut.Save(xmlDoc, appender);
Collectionastert.IsEmpty(appender.ChildNodes);
}
[Test]
public void Save_ShouldSaveIfNotDefault()
{
XmlDocameent xmlDoc = new XmlDocameent();
XmlElement appender = xmlDoc.CreateElement("appender");
mSut.Value = "100MB";
mSut.Save(xmlDoc, appender);
XmlNode maxFileSizeNode = appender.SelectSingleNode("maximumFileSize");
astert.IsNotNull(maxFileSizeNode);
astert.AreEqual(mSut.Value, maxFileSizeNode.Attributes["value"].Value);
}
[Test]
public void ToolTip_ShouldBeInitialized()
{
astert.IsNotNull(mSut.ToolTip);
}
[Test]
public void Value_ShouldBeInitializedToDefault()
{
astert.AreEqual("10MB", mSut.Value);
}
}
}