public void ShouldNotSerializeSkippedMembers(string memberName, TestClassToSerialize sut)
        {
            // Act
            var dict = ObjectSerializer.ExtractProperties(sut);

            // Assert
            Assert.False(dict.ContainsKey(memberName));
        }
        public void ShouldNotFindField(TestClassToSerialize sut, string propertyOrFieldName)
        {
            // Act
            var dict = ObjectSerializer.ExtractProperties(sut);

            // Assert
            Assert.False(dict.ContainsKey(propertyOrFieldName));
        }
        public void ShouldGetAllMembers(TestClassToSerialize sut)
        {
            // Act
            var dict = ObjectSerializer.ExtractProperties(sut);

            // Assert
            Assert.Equal(8, dict.Count);
        }
        public void ShouldSerializeIntProperties(string propertyName, MemberType memberType, TestClassToSerialize sut)
        {
            // Arrange
            var expectedValue = (int)MethodHelper.GetPropertyOrFieldValue(sut, propertyName);

            // Act
            var dict  = ObjectSerializer.ExtractProperties(sut);
            var value = dict[propertyName];

            // Assert
            Assert.Equal(expectedValue, (int)value.Value);
            Assert.Equal(typeof(int), value.Type);
            Assert.Equal(memberType, value.MemberType);
        }