You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[TestClass]
public class ReflectionInteractionProvider
{
private class Person
{
public int Number { get; set; }
public string Name { get; set; }
public override string ToString()
{
return "{0}.{1}".FormatString(Name, Number);
}
}
[TestMethod]
public void Should_get_and_set_property()
{
IDynamicInteractionProvider provider = new ReflectionInteractionProvider<Person>();
var Camp = new Person() { Number = 5, Name = "Camp" };
// Get
var value = provider.PerformPropertyGet<int>(Camp, "Number");
Assert.AreEqual(Camp.Number, value);
// Set
value = 20;
provider.PerformPropertySet<int>(value, Camp, "Number");
Assert.AreEqual(Camp.Number, value);
}
[TestMethod] // TEST FAILS
public void CachePoints_ON_should_not_remember_previous_objects()
{
bool cachePointsOn = true;
AssertCache(cachePointsOn);
}
[TestMethod]
public void CachePoints_OFF_should_not_remember_previous_objects()
{
bool cachePointsOn = false;
AssertCache(cachePointsOn);
}
private void AssertCache(bool cachePointsOn)
{
IDynamicInteractionProvider provider = new ReflectionInteractionProvider<Person>() { CachePoints = cachePointsOn };
var Camp = new Person() { Number = 0, Name = "Camp" };
var Brody = new Person() { Number = 0, Name = "Brody" };
// First Set
provider.PerformPropertySet<int>(1, Camp, "Number");
Assert.AreEqual(Camp.Number, 1);
// Second, Cached Set
provider.PerformPropertySet<int>(2, Brody, "Number");
Assert.AreEqual(Camp.Number, 1);
Assert.AreEqual(Brody.Number, 2);
}
}
Activity