using System; using Microsoft.VisualStudio.TestTools.UnitTesting; using Be.Timvw.Framework.Domain; namespace Be.Timvw.Framework.Tests.Domain { [TestClass] public class EffectivityTester { #region Constructor Tests [TestMethod] public void TestConstructor() { string name = "me"; DateTime begin = new DateTime(2000, 1, 1); DateTime end = new DateTime(2000, 12, 31); IRange validityPeriod = new Range(begin, end); IEffectivity effectivity = new Effectivity(name, validityPeriod); Assert.AreEqual(name, effectivity.Element); Assert.AreEqual(validityPeriod, effectivity.ValidityPeriod); } #endregion #region IsEffectiveOn Tests [TestMethod] public void TestIsEffectiveOnInValidityPeriod() { IEffectivity effectivity = GetEffectivityForYear2000(); DateTime validityDate = new DateTime(2000, 1, 1); Assert.IsTrue(effectivity.IsEffectiveOn(validityDate)); } [TestMethod] public void TestIsEffectiveOnOutValidityPeriod() { IEffectivity effectivity = GetEffectivityForYear2000(); DateTime validityDate = new DateTime(1999, 1, 1); Assert.IsFalse(effectivity.IsEffectiveOn(validityDate)); } #endregion #region CompareTo Tests [TestMethod] public void TestCompareToSameEffectivities() { IEffectivity effectivity = GetEffectivityForYear2000(); IEffectivity sameEffectivity = GetEffectivityForYear2000(); Assert.AreEqual(0, effectivity.CompareTo(sameEffectivity)); } [TestMethod] public void TestCompareToDifferentPeriods() { IEffectivity effectivity = GetEffectivityForYear2000(); string name = effectivity.Element; DateTime begin = effectivity.ValidityPeriod.Begin.AddDays(-1); DateTime end = new DateTime(2000, 12, 31); IRange validityPeriod = new Range(begin, end); IEffectivity otherEffectivity = new Effectivity(name, validityPeriod); Assert.AreEqual(1, effectivity.CompareTo(otherEffectivity)); } [TestMethod] public void TestCompareToDifferentElements() { IEffectivity effectivity = GetEffectivityForYear2000(); string name = string.Format("Other{0}", effectivity.Element); IRange validityPeriod = effectivity.ValidityPeriod; IEffectivity otherEffectivity = new Effectivity(name, validityPeriod); Assert.AreEqual(-1, effectivity.CompareTo(otherEffectivity)); } #endregion #region Private Members private static IEffectivity GetEffectivityForYear2000() { string name = "me"; DateTime begin = new DateTime(2000, 1, 1); DateTime end = new DateTime(2000, 12, 31); IRange validityPeriod = new Range(begin, end); return new Effectivity(name, validityPeriod); } #endregion } }