public void Should_Select_Simple_Property_Value() { var selector = new MemberSelector() { MemberName = "StringValue" }; var data = new Item() { StringValue = "Value1" }; Assert.Same("Value1", selector.Select(data)); }
public void Should_Select_Null_Value_On_Wrong_MemberName() { var selector = new MemberSelector() { MemberName = "WrongProperty" }; var data = new Item() { StringValue = "Value1" }; Assert.Same(null, selector.Select(data)); }
public void Should_Select_Child_Property_Value_In_Multiple_Items() { var selector = new MemberSelector() { MemberName = "Child.StringValue" }; var data = new Item[] { new Item() { Child = new Item() { StringValue = "Value1" } }, new Item() { Child = new Item() { StringValue = "Value2" } }, new Item() { Child = new Item() { StringValue = "Value3" } } }; Assert.Same("Value1", selector.Select(data[0])); Assert.Same("Value2", selector.Select(data[1])); Assert.Same("Value3", selector.Select(data[2])); }
public void Should_Select_MoreComplex_Property_Value() { var selector = new MemberSelector() { MemberName = "Child.Child.Child.StringValue" }; var data = new Item() { Child = new Item() { Child = new Item() { Child = new Item() { StringValue = "Value1" } } } }; Assert.Same("Value1", selector.Select(data)); }
public void Should_Not_Hold_Reference_To_Object() { WeakReference dataRef = null; var selector = new MemberSelector() { MemberName = "Child.StringValue" }; Action run = () => { var data = new Item() { Child = new Item() { StringValue = "Value1" } }; Assert.Same("Value1", selector.Select(data)); dataRef = new WeakReference(data); }; run(); GC.Collect(); Assert.False(dataRef.IsAlive); }
public void Should_Select_Null_Value_On_Null_Object() { var selector = new MemberSelector() { MemberName = "StringValue" }; Assert.Equal(null, selector.Select(null)); }
public void Should_Support_Change_Of_Target_Value() { var selector = new MemberSelector() { MemberName = "StringValue" }; var data = new Item() { StringValue = "Value1" }; Assert.Same("Value1", selector.Select(data)); data.StringValue = "Value2"; Assert.Same("Value2", selector.Select(data)); }
public void Should_Support_Change_Of_MemberName() { var selector = new MemberSelector() { MemberName = "StringValue" }; var data = new Item() { StringValue = "Value1", IntValue = 1 }; Assert.Same("Value1", selector.Select(data)); selector.MemberName = "IntValue"; Assert.Equal(1, selector.Select(data)); }
public void Should_Select_Target_On_Empty_MemberName() { var selector = new MemberSelector(); var data = new Item() { StringValue = "Value1" }; Assert.Same(data, selector.Select(data)); }