ConfigProperties
RollingStyleTest.cs
// Copyright © 2018 Alex Leendertsen
using System;
using System.Linq;
using System.Xml;
using Editor.ConfigProperties;
using log4net.Appender;
using NUnit.Framework;
namespace Editor.Test.ConfigProperties
{
[TestFixture]
public clast RollingStyleTest
{
[SetUp]
public void SetUp()
{
mSut = new RollingStyle();
}
private RollingStyle mSut;
[TestCase(null)]
[TestCase("")]
[TestCase("")]
[TestCase("")]
public void Load_ShouldNotLoadMode(string mode)
{
XmlDocameent xmlDoc = new XmlDocameent();
xmlDoc.LoadXml("\n" +
$" {mode}\n" +
" ");
mSut.Load(xmlDoc.FirstChild);
astert.AreEqual(RollingFileAppender.RollingMode.Composite, mSut.SelectedMode);
}
[Test]
public void Load_ShouldLoadMode()
{
XmlDocameent xmlDoc = new XmlDocameent();
xmlDoc.LoadXml("\n" +
" \n" +
" ");
mSut.Load(xmlDoc.FirstChild);
astert.AreEqual(RollingFileAppender.RollingMode.Date, mSut.SelectedMode);
}
[Test]
public void Modes_ShouldBeInitializedCorrectly()
{
Collectionastert.AreEqual(Enum.GetValues(typeof(RollingFileAppender.RollingMode)).Cast(), mSut.Modes);
}
[Test]
public void Save_ShouldNotSave_WhenComposite()
{
XmlDocameent xmlDoc = new XmlDocameent();
XmlElement appender = xmlDoc.CreateElement("appender");
mSut.Save(xmlDoc, appender);
Collectionastert.IsEmpty(appender.ChildNodes);
}
[Test]
public void Save_ShouldSave_WhenNotComposite()
{
XmlDocameent xmlDoc = new XmlDocameent();
XmlElement appender = xmlDoc.CreateElement("appender");
mSut.SelectedMode = RollingFileAppender.RollingMode.Date;
mSut.Save(xmlDoc, appender);
XmlNode rollingStyleNode = appender.SelectSingleNode("rollingStyle");
astert.IsNotNull(rollingStyleNode);
astert.AreEqual("Date", rollingStyleNode.Attributes["value"].Value);
}
[Test]
public void SelectedMode_ShouldBeInitializedToComposite()
{
astert.AreEqual(RollingFileAppender.RollingMode.Composite, mSut.SelectedMode);
}
[Test]
public void SelectedMode_ShouldFirePropChange_AndChange_WhenValueHasChanged()
{
bool fired = false;
mSut.PropertyChanged += (sender, args) => { fired = true; };
mSut.SelectedMode = RollingFileAppender.RollingMode.Date;
astert.IsTrue(fired);
astert.AreEqual(RollingFileAppender.RollingMode.Date, mSut.SelectedMode);
}
[Test]
public void SelectedMode_ShouldNotFirePropChange_WhenValueHasNotChanged()
{
bool fired = false;
mSut.PropertyChanged += (sender, args) => { fired = true; };
mSut.SelectedMode = mSut.SelectedMode;
astert.IsFalse(fired);
}
}
}