AspectBuilderTests.cs 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. using System;
  2. using Microsoft.Xna.Framework.Graphics;
  3. using MonoGame.Extended.Graphics;
  4. using Xunit;
  5. namespace MonoGame.Extended.ECS.Tests
  6. {
  7. public class AspectBuilderTests
  8. {
  9. [Fact]
  10. public void MatchAllTypes()
  11. {
  12. var builder = new AspectBuilder()
  13. .All(typeof(Transform2), typeof(Sprite));
  14. Assert.Equal(2, builder.AllTypes.Count);
  15. Assert.Contains(typeof(Transform2), builder.AllTypes);
  16. Assert.Contains(typeof(Sprite), builder.AllTypes);
  17. }
  18. [Fact]
  19. public void MatchAllTypesIsEmpty()
  20. {
  21. var builder = new AspectBuilder()
  22. .All();
  23. Assert.Empty(builder.AllTypes);
  24. Assert.Empty(builder.OneTypes);
  25. Assert.Empty(builder.ExclusionTypes);
  26. }
  27. [Fact]
  28. public void MatchOneOfType()
  29. {
  30. var builder = new AspectBuilder()
  31. .One(typeof(Transform2), typeof(Sprite));
  32. Assert.Equal(2, builder.OneTypes.Count);
  33. Assert.Contains(typeof(Transform2), builder.OneTypes);
  34. Assert.Contains(typeof(Sprite), builder.OneTypes);
  35. }
  36. [Fact]
  37. public void ExcludeTypes()
  38. {
  39. var builder = new AspectBuilder()
  40. .Exclude(typeof(Transform2), typeof(Sprite));
  41. Assert.Equal(2, builder.ExclusionTypes.Count);
  42. Assert.Contains(typeof(Transform2), builder.ExclusionTypes);
  43. Assert.Contains(typeof(Sprite), builder.ExclusionTypes);
  44. }
  45. [Fact]
  46. public void BuildAspect()
  47. {
  48. var componentManager = new ComponentManager();
  49. var builder = new AspectBuilder()
  50. .All(typeof(Transform2), typeof(Sprite))
  51. .One(typeof(string))
  52. .Exclude(typeof(Texture2D));
  53. var aspect = builder.Build(componentManager);
  54. Assert.True(aspect.AllSet.Data != 0);
  55. Assert.True(aspect.OneSet.Data != 0);
  56. Assert.True(aspect.ExclusionSet.Data != 0);
  57. }
  58. }
  59. }