Skip to content

Commit

Permalink
Add the missing tests for type UnrealFlags<PackageFlags>.
Browse files Browse the repository at this point in the history
  • Loading branch information
EliotVU committed Oct 13, 2022
1 parent 2c2b12c commit f90e83d
Showing 1 changed file with 37 additions and 0 deletions.
37 changes: 37 additions & 0 deletions Test/UnrealFlagsTests.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
using Microsoft.VisualStudio.TestTools.UnitTesting;
using UELib.Branch;
using UELib.Flags;

namespace Eliot.UELib.Test
{
/// <summary>
/// Test if the mechanics of <see cref="UnrealFlags{TEnum}"/> are working properly.
///
/// We do not test if the mappings are correct for UE1-3 here, mere a verification of the mapping approach.
/// </summary>
[TestClass]
public class UnrealFlagsTests
{
[TestMethod]
public void TestUnrealPackageFlags()
{
const ulong serializedFlags =
(ulong)(DefaultEngineBranch.PackageFlagsDefault.AllowDownload |
DefaultEngineBranch.PackageFlagsDefault.ServerSideOnly);

var flagsMap = new ulong[(int)PackageFlags.Max];
flagsMap[(int)PackageFlags.AllowDownload] = (ulong)DefaultEngineBranch.PackageFlagsDefault.AllowDownload;
flagsMap[(int)PackageFlags.ServerSideOnly] = (ulong)DefaultEngineBranch.PackageFlagsDefault.ServerSideOnly;
var flags = new UnrealFlags<PackageFlags>(serializedFlags, ref flagsMap);

// Verify mapped flags
Assert.IsTrue(flags.HasFlag(PackageFlags.AllowDownload));
Assert.IsTrue(flags.HasFlag(PackageFlags.ServerSideOnly));
Assert.IsFalse(flags.HasFlag(PackageFlags.ClientOptional));

// Verify actual flags
Assert.IsTrue(flags.HasFlags((uint)DefaultEngineBranch.PackageFlagsDefault.AllowDownload));
Assert.IsFalse(flags.HasFlags((uint)DefaultEngineBranch.PackageFlagsDefault.ClientOptional));
}
}
}

0 comments on commit f90e83d

Please sign in to comment.