55 lines
1.1 KiB
C#
55 lines
1.1 KiB
C#
using LunaWolfStudiosEditor.ScriptableSheets.Shared;
|
|
using NUnit.Framework;
|
|
using System;
|
|
|
|
namespace LunaWolfStudiosEditor.ScriptableSheets.EditorTests
|
|
{
|
|
[TestFixture]
|
|
[Category(TestUtility.MainCategory)]
|
|
public class EnumUtilityTests
|
|
{
|
|
[Test]
|
|
public void FirstFlagOrDefault_ReturnsFirstSetFlag()
|
|
{
|
|
var flags = Flagged.Flag1 | Flagged.Flag3;
|
|
var result = flags.FirstFlagOrDefault();
|
|
Assert.AreEqual(Flagged.Flag1, result);
|
|
|
|
flags = Flagged.Flag3 | Flagged.Flag2;
|
|
result = flags.FirstFlagOrDefault();
|
|
Assert.AreEqual(Flagged.Flag2, result);
|
|
}
|
|
|
|
[Test]
|
|
public void FirstFlagOrDefault_NoSetFlag_ReturnsDefault()
|
|
{
|
|
var flags = Flagged.None;
|
|
var result = flags.FirstFlagOrDefault();
|
|
Assert.AreEqual(Flagged.None, result);
|
|
}
|
|
|
|
[Test]
|
|
public void FirstFlagOrDefault_NotFlaggedEnum_ThrowsArgumentException()
|
|
{
|
|
Assert.Throws<ArgumentException>(() => EnumUtility.FirstFlagOrDefault(NotFlagged.Value1));
|
|
}
|
|
|
|
[Flags]
|
|
public enum Flagged
|
|
{
|
|
None = 0,
|
|
Flag1 = 1,
|
|
Flag2 = 2,
|
|
Flag3 = 4
|
|
}
|
|
|
|
public enum NotFlagged
|
|
{
|
|
None = 0,
|
|
Value1 = 1,
|
|
Value2 = 2,
|
|
Value3 = 4
|
|
}
|
|
}
|
|
}
|