public void GetValueShouldReturnExpectedValue()
 {
     var expected = "test";
     var component = new Dictionary<string, object>() { { "Name", expected } };
     var target = new ExtensionMethodToPropertyDescriptor<IDictionary<string, object>, object>( "Name", c => c["Name"] );
     var actual = target.GetValue( component );
     Assert.Equal( expected, actual );
 }
 public void SetValueShouldThrowExceptionWhenPropertyIsReadOnly()
 {
     var target = new ExtensionMethodToPropertyDescriptor<object, object>( "Name", o => o );
     Assert.Throws<InvalidOperationException>( () => target.SetValue( new object(), new object() ) );
 }
 public void IsReadOnlyShouldBeFalseWhenMutatorIsSet()
 {
     var target = new ExtensionMethodToPropertyDescriptor<object, object>( "Name", o => o, DefaultAction.None );
     Assert.False( target.IsReadOnly );
 }
 public void IsReadOnlyShouldBeTrueWhenMutatorIsUnset()
 {
     var target = new ExtensionMethodToPropertyDescriptor<object, object>( "Name", o => o );
     Assert.True( target.IsReadOnly );
 }
 public void PropertyTypeShouldReturnExpectedValue()
 {
     var target = new ExtensionMethodToPropertyDescriptor<object, string>( "Name", o => o.ToString() );
     Assert.Equal( typeof( string ), target.PropertyType );
 }
 public void ComponentTypeShouldReturnExpectedValue()
 {
     var target = new ExtensionMethodToPropertyDescriptor<string, object>( "Name", o => o );
     Assert.Equal( typeof( string ), target.ComponentType );
 }
 public void SupportsChangeEventsShouldAlwaysReturnFalse()
 {
     var target = new ExtensionMethodToPropertyDescriptor<object, object>( "Name", o => o );
     Assert.False( target.SupportsChangeEvents );
 }
 public void ShouldSerializeValueShouldAlwaysReturnFalse()
 {
     var target = new ExtensionMethodToPropertyDescriptor<object, object>( "Name", o => o );
     Assert.False( target.ShouldSerializeValue( null ) );
     Assert.False( target.ShouldSerializeValue( new object() ) );
 }