#region CPL License /* Nuclex Framework Copyright (C) 2002-2012 Nuclex Development Labs This library is free software; you can redistribute it and/or modify it under the terms of the IBM Common Public License as published by the IBM Corporation; either version 1.0 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the IBM Common Public License for more details. You should have received a copy of the IBM Common Public License along with this library */ #endregion #if UNITTEST using System; using System.IO; using NUnit.Framework; namespace Nuclex.Support { /// Unit Test for the enumeration helper class [TestFixture] internal class EnumHelperTest { #region enum TestEnumeration /// An enumeration used for unit testing internal enum TestEnumeration { /// First arbitrary enumeration value One = -2, /// Third arbitrary enumeration value Three = 33, /// Second arbitrary enumeration value Two = 23 } #endregion // enum TestEnumeration #region enum EmptyEnumeration internal enum EmptyEnumeration { } #endregion // enum EmptyEnumeration /// /// Verifies that the enum helper can list the members of an enumeration /// manually (as it needs to be done on the XBox 360) /// [Test] public void TestGetValuesXbox360() { CollectionAssert.AreEquivalent( new TestEnumeration[] { TestEnumeration.One, TestEnumeration.Two, TestEnumeration.Three }, EnumHelper.GetValuesXbox360() ); } /// /// Verifies that the enum helper can list the members of an enumeration /// [Test] public void TestGetValues() { CollectionAssert.AreEquivalent( new TestEnumeration[] { TestEnumeration.One, TestEnumeration.Two, TestEnumeration.Three }, EnumHelper.GetValues() ); } /// /// Verifies that the enum helper can locate the highest value in an enumeration /// [Test] public void TestGetHighestValue() { Assert.AreEqual( TestEnumeration.Three, EnumHelper.GetHighestValue() ); } /// /// Verifies that the enum helper can locate the lowest value in an enumeration /// [Test] public void TestGetLowestValue() { Assert.AreEqual( TestEnumeration.One, EnumHelper.GetLowestValue() ); } /// /// Tests whether an exception is thrown if the GetValuesXbox360() method is /// used on a non-enumeration type /// [Test] public void TestThrowOnNonEnumTypeXbox360() { Assert.Throws( delegate() { EnumHelper.GetValuesXbox360(); } ); } /// /// Tests whether an exception is thrown if the GetValues() method is used on /// a non-enumeration type /// [Test] public void TestThrowOnNonEnumType() { Assert.Throws( delegate() { EnumHelper.GetValues(); } ); } /// /// Verifies that the default value for an enumeration is returned if /// the GetLowestValue() method is used on an empty enumeration /// [Test] public void TestLowestValueInEmptyEnumeration() { Assert.AreEqual( default(EmptyEnumeration), EnumHelper.GetLowestValue() ); } /// /// Verifies that the default value for an enumeration is returned if /// the GetHighestValue() method is used on an empty enumeration /// [Test] public void TestHighestValueInEmptyEnumeration() { Assert.AreEqual( default(EmptyEnumeration), EnumHelper.GetHighestValue() ); } } } // namespace Nuclex.Support #endif // UNITTEST