public void SetProperty_GivenPropertyExpression_ReturnsTarget()
        {
            var sut = new TestDataObject();

            var returnedObject = sut.SetProperty(s => s.Property, 2);

            Assert.That(returnedObject, Is.SameAs(sut));
        }
        public void SetProperty_GivenPropertyExpression_SetsProperty()
        {
            var sut = new TestDataObject();

            sut.SetProperty(s => s.Property, 2);

            Assert.That(sut.Property, Is.EqualTo(2));
        }
        public void SetProperty_GivenNonMemberExpression_ThrowsException()
        {
            var sut = new TestDataObject();

            Assert.That(() => sut.SetProperty(s => s.DoStuff(), 2), Throws.InvalidOperationException);
        }
        public void SetProperty_GivenFieldExpression_ThrowsException()
        {
            var sut = new TestDataObject();

            Assert.That(() => sut.SetProperty(s => s.Field, 2), Throws.InvalidOperationException);
        }
        public void SetProperty_GivenNullExpression_ThrowsException()
        {
            var sut = new TestDataObject();

            Assert.That(() => sut.SetProperty(null, 2), Throws.ArgumentNullException);
        }