public void WHEN_ViewModel_Is_Null_SHOULD_Throw_ArgumentNullException()
        {
            // Arrange
            var propertyInfo = typeof(TestViewModel).GetProperty("Property");
            var sut          = new InstancePropertyMetadata(propertyInfo);

            // Act
            Action action = () => sut.GetValue(null);

            // Assert
            action.ShouldThrow <ArgumentNullException>();
        }
        public void WHEN_ViewModel_Is_Valid_SHOULD_Pass()
        {
            // Arrange
            var expectedPropertyValue = GetRandom.String(20);

            var propertyInfo = typeof(TestViewModel).GetProperty("Property");
            var sut          = new InstancePropertyMetadata(propertyInfo);
            var viewModel    = new TestViewModel {
                Property = expectedPropertyValue
            };

            // Act
            var result = sut.GetValue(viewModel);

            // Assert
            result.Should().Be(expectedPropertyValue);
        }