-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
Bug in CachePoints. Failing unit test below.
[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);
}
}
Metadata
Metadata
Assignees
Labels
No labels