Even More Modifiers  1.0.0.0
A mod for rolling various bonus stats on items
Tests.cs
Go to the documentation of this file.
1 using System;
2 using System.Linq;
3 using System.Reflection;
4 using Loot;
5 using Loot.UI;
6 using NUnit.Framework;
7 using Terraria;
8 using Terraria.ModLoader;
9 using Terraria.Utilities;
10 using Assert = NUnit.Framework.Assert;
11 
12 namespace LootTests
13 {
14  public sealed class EmptyModLoadShell : Mod
15  {
16  public override string Name => "LootTestsModShell";
17  public static EmptyModLoadShell Instance;
18 
20  {
21  Instance = this;
22  }
23  }
24 
25 
26  [TestFixture]
27  public class UnitTests
28  {
29  [SetUp]
30  public void Setup()
31  {
32  Main.instance = new Main();
33  Main.dedServ = true;
34  Main.rand = new UnifiedRandom();
35  }
36 
37  public static readonly EmptyModLoadShell _modShell = new EmptyModLoadShell();
38 
39  [Test]
40  public void LogEMMLoaderEntries()
41  {
42  var mod = new Loot.Loot();
43 
44  var f = mod.GetType().GetField("loading", BindingFlags.Instance | BindingFlags.NonPublic);
45  f.SetValue(mod, true);
46 
47  mod.Load();
48 
49  f.SetValue(mod, false);
50 
51  f = _modShell.GetType().GetField("loading", BindingFlags.Instance | BindingFlags.NonPublic);
52  f.SetValue(_modShell, true);
53 
54  EMMLoader.RegisterMod(_modShell);
55  EMMLoader.SetupContent(_modShell);
56 
57  Console.WriteLine("Modifier rarities:");
58  Console.WriteLine();
59  Console.WriteLine(string.Join("\n", EMMLoader.RequestModifierRarities().Select(x => x.Name)));
60  Console.WriteLine();
61  Console.WriteLine("Modifiers:");
62  Console.WriteLine();
63  Console.WriteLine(string.Join("\n", EMMLoader.RequestModifiers().Select(x => x.Name)));
64  Console.WriteLine();
65  Console.WriteLine("Modifier pools:");
66  Console.WriteLine();
67  Console.WriteLine(string.Join("\n", EMMLoader.RequestModifierPools().Select(x => x.Name)));
68  Console.WriteLine();
69  }
70 
71  [Test]
72  public void TestCubeUI()
73  {
74  TestCubeRerollUI();
75  TestCubeSealUI();
76 
77  void TestCubeRerollUI()
78  {
79  var ui = new CubeRerollUI();
80  var backPanel = ui.GetType().GetField("_backPanel", BindingFlags.Instance | BindingFlags.NonPublic);
81  if (backPanel != null) Assert.AreEqual(backPanel.GetValue(ui), null);
82  Assert.AreEqual(ui._cubePanel, null);
83  Assert.AreEqual(ui._rerollItemPanel, null);
84 // ui.Activate();
85 // if (backPanel != null) Assert.AreNotEqual(backPanel.GetValue(ui), null);
86 // Assert.AreNotEqual(ui._cubePanel, null);
87 // Assert.AreNotEqual(ui._rerollItemPanel, null);
88 //
89 // var dragPanel = ui.GetType().GetField("_dragPanel", BindingFlags.Instance | BindingFlags.NonPublic);
90 // if (dragPanel != null && backPanel != null)
91 // {
92 // Assert.AreEqual(dragPanel.GetValue(ui), backPanel.GetValue(ui));
93 // }
94  }
95 
96  void TestCubeSealUI()
97  {
98  var ui = new CubeSealUI();
99  var backPanel = ui.GetType().GetField("_backPanel", BindingFlags.Instance | BindingFlags.NonPublic);
100  if (backPanel != null) Assert.AreEqual(backPanel.GetValue(ui), null);
101  Assert.AreEqual(ui._itemPanel, null);
102  }
103  }
104 
105 
106  }
107 }
void TestCubeUI()
Definition: Tests.cs:72
override void Load()
Definition: Loot.cs:36
static EmptyModLoadShell Instance
Definition: Tests.cs:17
void Setup()
Definition: Tests.cs:30
void LogEMMLoaderEntries()
Definition: Tests.cs:40
override string Name
Definition: Tests.cs:16