diff --git a/LibGit2Sharp.Tests/MetaFixture.cs b/LibGit2Sharp.Tests/MetaFixture.cs index 153bea8bc..98e3712fc 100644 --- a/LibGit2Sharp.Tests/MetaFixture.cs +++ b/LibGit2Sharp.Tests/MetaFixture.cs @@ -93,6 +93,25 @@ public void TypesInLibGit2SharpMustBeExtensibleInATestingContext() } } + [Fact] + public void EnumsWithFlagsHaveMutuallyExclusiveValues() + { + var flagsEnums = Assembly.GetAssembly(typeof(Repository)).GetExportedTypes() + .Where(t => t.IsEnum && t.GetCustomAttributes(typeof(FlagsAttribute), false).Any()); + + var overlaps = from t in flagsEnums + from int x in Enum.GetValues(t) + where x != 0 + from int y in Enum.GetValues(t) + where y != 0 + where x != y && (x & y) == y + select string.Format("{0}.{1} overlaps with {0}.{2}", t.Name, Enum.ToObject(t, x), Enum.ToObject(t, y)); + + var message = string.Join(Environment.NewLine, overlaps.ToArray()); + + Assert.Equal("", message); + } + private string BuildMissingDebuggerDisplayPropertyMessage(IEnumerable typesWithDebuggerDisplayAndInvalidImplPattern) { var sb = new StringBuilder(); diff --git a/LibGit2Sharp.Tests/StatusFixture.cs b/LibGit2Sharp.Tests/StatusFixture.cs index a5e3520ed..cd6568952 100644 --- a/LibGit2Sharp.Tests/StatusFixture.cs +++ b/LibGit2Sharp.Tests/StatusFixture.cs @@ -9,21 +9,6 @@ namespace LibGit2Sharp.Tests { public class StatusFixture : BaseFixture { - [Fact] - public void FileStatusFlagsAreMutuallyExclusive() - { - var overlaps = from FileStatus x in Enum.GetValues(typeof(FileStatus)) - where x != default(FileStatus) - from FileStatus y in Enum.GetValues(typeof(FileStatus)) - where y != default(FileStatus) - where x != y && (x & y) == y - select string.Format("{0} overlaps with {1}", x, y); - - var message = string.Join(Environment.NewLine, overlaps.ToArray()); - - Assert.Equal("", message); - } - [Fact] public void CanRetrieveTheStatusOfAFile() {