public void add_and_retrieve_rules_by_accessor()
{
var rules = new AccessorRules();
rules.Add<Target1>(x => x.Name, new FooRule());
rules.Add<Target2>(x => x.Name, new BarRule());
rules.Add<Target1>(x => x.Age, new ColorRule("red"));
rules.Add<Target2>(x => x.Age, new ColorRule("green"));
rules.FirstRule<Target1, IRule>(x => x.Name).ShouldBeOfType<FooRule>();
rules.FirstRule<Target2, IRule>(x => x.Name).ShouldBeOfType<BarRule>();
rules.FirstRule<Target1, IRule>(x => x.Age).ShouldBeOfType<ColorRule>().Color.ShouldBe("red");
rules.FirstRule<Target2, IRule>(x => x.Age).ShouldBeOfType<ColorRule>().Color.ShouldBe("green");
}