using System; using System.Threading; using NUnit.Framework; namespace Developpez.Dotnet.Tests { [TestFixture] public class TemporaryStringTests { #region Constructors [Test] public void ParameterLessConstructor() { TemporaryString ts = new TemporaryString(); Assert.IsNotNull(ts); } [Test] public void LifetimeConstructor() { TemporaryString ts = new TemporaryString(5000); Assert.IsNotNull(ts); } [Test] public void ValueConstructor() { TemporaryString ts = new TemporaryString("foo"); Assert.IsNotNull(ts); } [Test] public void LifetimeAndValueConstructor() { TemporaryString ts = new TemporaryString(5000, "foo"); Assert.IsNotNull(ts); } [Test] public void ArgumentExceptionConstructor() { TemporaryString ts; Assert.Throws( () => ts = new TemporaryString(-1)); } [Test] public void ArgumentNullExceptionConstructor() { TemporaryString ts; Assert.Throws( () => ts = new TemporaryString(null)); } #endregion #region Append methods [Test] public void AppendCharMethod() { TemporaryString ts = new TemporaryString(); ts.Append('f'); Assert.AreEqual("f", ts.ToString()); } [Test] public void AppendCharArrayMethod() { TemporaryString ts = new TemporaryString(); ts.Append("foo".ToCharArray()); Assert.AreEqual("foo", ts.ToString()); } [Test] public void AppendStringMethod() { TemporaryString ts = new TemporaryString(); ts.Append("foo"); Assert.AreEqual("foo", ts.ToString()); } #endregion #region ToString method [Test] public void ToStringMethod() { TemporaryString ts = new TemporaryString("foo"); Assert.AreEqual("foo", ts.ToString()); } #endregion #region Lifetime elapsed event [Test] public void LifetimeElapsedEvent() { TemporaryString ts = new TemporaryString(500, "foo"); Assert.AreEqual("foo", ts.ToString()); Thread.Sleep(1000); Assert.AreEqual(string.Empty, ts.ToString()); } #endregion } }