public void ReturnCorrectPropertyValue() { var obj = new TestPropertyClass { Property = 42 }; var wrapper = new ImplBaseTester(obj); Assert.AreEqual(42, wrapper.GetProperty <int>(nameof(obj.Property))); }
public void ThrowExceptionIfPropertyDoesNotExist() { var obj = new TestPropertyClass(); var wrapper = new ImplBaseTester(obj); var ex = Assert.Throws <ArgumentOutOfRangeException>(() => wrapper.GetProperty <int>("invalid")); Assert.IsNotNull(ex); ex.Message.Should().Be($"Property does not exist!{Environment.NewLine}Parameter name: propertyName"); }
public void ThrowExceptionIfPropertyAccessMethodDoesNotExist() { var obj = new TestPropertyClass(); var wrapper = new ImplBaseTester(obj); var ex = Assert.Throws <ArgumentOutOfRangeException>(() => wrapper.GetProperty <int>(nameof(obj.WriteOnlyProperty))); Assert.IsNotNull(ex); ex.Message.Should().Be($"Specified argument was out of the range of valid values.{Environment.NewLine}Parameter name: Property get does not exist for WriteOnlyProperty!"); }
public void ThrowExceptionIfPropertyNameIsNull() { var obj = new TestPropertyClass(); var wrapper = new ImplBaseTester(obj); var ex = Assert.Throws <ArgumentNullException>(() => wrapper.GetProperty <int>(null)); Assert.IsNotNull(ex); ex.ParamName.Should().Be("propertyName"); }