public void SerializablePropertyValueAccessorGetWithComplexFieldsTest(ISerializer serializer)
        {
            //Arrange
            var fieldInfo     = typeof(EntityWithSerializableField).GetField(nameof(EntityWithSerializableField.DecimalValue));
            var valueAccessor = new SerializableValueAccessor <EntityWithSerializableField>(fieldInfo, serializer);
            var entity        = new EntityWithSerializableField {
                DecimalValue = 5
            };

            // Act
            EntityProperty entityProperty = valueAccessor.GetValue(entity);

            // Assert
            Assert.NotNull(entityProperty.StringValue);
            Assert.Equal(entity.DecimalValue, serializer.Deserialize <decimal>(entityProperty.StringValue));
        }
        public void SerializablePropertyValueAccessorGetWithComplexPropertiesTest(ISerializer serializer)
        {
            //Arrange
            PropertyInfo propertyInfo  = typeof(EntityWithSerializableProperty).GetProperty(nameof(EntityWithSerializableProperty.SerializableEntity));
            var          valueAccessor = new SerializableValueAccessor <EntityWithSerializableProperty>(propertyInfo, serializer);
            var          entity        = new EntityWithSerializableProperty {
                SerializableEntity = new SerializableEntity()
                {
                    DecimalValue = 2
                }
            };

            // Act
            EntityProperty entityProperty = valueAccessor.GetValue(entity);

            // Assert
            Assert.NotNull(entityProperty.StringValue);
            Assert.Equal(entity.SerializableEntity.DecimalValue, serializer.Deserialize <SerializableEntity>(entityProperty.StringValue).DecimalValue);
        }