Even More Modifiers  1.0.0.0
A mod for rolling various bonus stats on items
LootTests.ModifierPropertiesTests Class Reference

Classes

class  FakeProperties
 
interface  IFakeProperties
 

Public Member Functions

void Setup ()
 
void TestMinMaxMagnitudes ()
 
void TestRoll ()
 
void TestSaveAndLoad ()
 

Detailed Description

Definition at line 12 of file ModifierPropertiesTests.cs.

Member Function Documentation

void LootTests.ModifierPropertiesTests.Setup ( )

Definition at line 69 of file ModifierPropertiesTests.cs.

70  {
71  Main.instance = new Main();
72  Main.dedServ = true;
73  Main.rand = new UnifiedRandom();
74  }
void LootTests.ModifierPropertiesTests.TestMinMaxMagnitudes ( )

Definition at line 77 of file ModifierPropertiesTests.cs.

78  {
79  var p = new ModifierProperties();
80  Assert.AreEqual(p.Magnitude, 0f);
81  Assert.AreEqual(p.Power, 0f);
82  Assert.AreEqual(p.RoundedPower, 0f);
83 
84  float n = 10f, m = n * 2f;
85  p = new ModifierProperties(minMagnitude: n, maxMagnitude: m);
86  Assert.AreEqual(p.MinMagnitude, n);
87  Assert.AreEqual(p.MaxMagnitude, m);
88  Assert.AreEqual(p.MinMagnitude, p.MaxMagnitude - n);
89  Assert.AreEqual(p.MaxMagnitude, p.MinMagnitude + n);
90  Assert.IsTrue(p.MinMagnitude <= p.MaxMagnitude);
91  Assert.IsTrue(p.MaxMagnitude >= p.MinMagnitude);
92  }
void LootTests.ModifierPropertiesTests.TestRoll ( )

Definition at line 123 of file ModifierPropertiesTests.cs.

124  {
125  var mock = new Mock<FakeProperties>();
126  mock.SetupAllProperties();
127  mock.SetupProperty(x => x.Magnitude);
128  mock.SetupProperty(x => x.Power);
129  mock.SetupSet(x => x.Magnitude = 1f);
130  mock.SetupSet(x => x.Power = 2f);
131 
132  mock.Object.RollMagnitudeAndPower(10f, 10);
133 
134  mock.VerifySet(x => x.Magnitude = It.IsAny<float>(), Times.AtLeastOnce);
135  mock.VerifySet(x => x.Power = It.IsAny<float>(), Times.Once);
136  mock.Verify(x => x.RollMagnitude(It.IsAny<float>(), It.IsAny<float>()), Times.AtLeastOnce);
137  mock.Verify(x => x.RollPower(), Times.Once);
138 
139  Assert.AreEqual(mock.Object.Magnitude, 1f);
140  Assert.AreEqual(mock.Object.Power, 2f);
141  }
void LootTests.ModifierPropertiesTests.TestSaveAndLoad ( )

Definition at line 95 of file ModifierPropertiesTests.cs.

References LootTests.ModifierPropertiesTests.IFakeProperties.Magnitude, and LootTests.ModifierPropertiesTests.IFakeProperties.Power.

96  {
97  //@todo why did this fail?
98  //Assert.AreEqual(new ModifierProperties(), new ModifierProperties());
99  var p = new ModifierProperties
100  {
101  Magnitude = 10f,
102  Power = 100f
103  };
104  var tc = ModifierProperties._Save(null, p);
105  Assert.IsInstanceOf<TagCompound>(tc);
106  Assert.IsTrue(tc.ContainsKey("Magnitude"));
107  Assert.IsTrue(tc.ContainsKey("Power"));
108  Assert.IsTrue(tc.ContainsKey("ModifierPropertiesSaveVersion"));
109  Assert.AreEqual(tc.Get<float>("Magnitude"), 10f);
110  Assert.AreEqual(tc.Get<float>("Power"), 100f);
111  Assert.IsTrue(tc.Get<int>("ModifierPropertiesSaveVersion") > 0);
112 
113  p = ModifierProperties._Load(null, tc);
114  Assert.IsInstanceOf<ModifierProperties>(p);
115  Assert.AreEqual(p.Magnitude, 10f);
116  Assert.AreEqual(p.Magnitude, tc.Get<float>("Magnitude"));
117  Assert.AreEqual(p.Power, 100f);
118  Assert.AreEqual(p.Power, tc.Get<float>("Power"));
119  }