### Question:
VirtualPropertiesWriter extends VirtualBeanPropertyWriter { @Override protected Object value(Object bean, JsonGenerator gen, SerializerProvider prov) { throw new UnsupportedOperationException("Should not be used with this implementation. Use serializeAsField() to write value directly."); } VirtualPropertiesWriter();  VirtualPropertiesWriter(VirtualProperty[] virtualProperties, ValueResolver valueResolver);  VirtualPropertiesWriter(VirtualProperty[] virtualProperties, ValueResolver valueResolver, VirtualPropertyFilter[] filters); @Deprecated  VirtualPropertiesWriter(
            BeanPropertyDefinition propDef,
            Annotations annotations,
            JavaType type,
            VirtualProperty[] virtualProperties,
            ValueResolver valueResolver
    );   VirtualPropertiesWriter(
            BeanPropertyDefinition propDef,
            Annotations annotations,
            JavaType type,
            VirtualProperty[] virtualProperties,
            ValueResolver valueResolver,
            VirtualPropertyFilter[] filters
    ); @Override void serializeAsField(Object bean, JsonGenerator gen, SerializerProvider prov); @Override VirtualPropertiesWriter withConfig(MapperConfig<?> config, AnnotatedClass declaringClass, BeanPropertyDefinition propDef, JavaType type); @Override void fixAccess(SerializationConfig config);  }### Answer:
@Test public void overridenValueIsNotSupported() { VirtualPropertiesWriter writer = new VirtualPropertiesWriter( new VirtualProperty[0], mock(ValueResolver.class) ); expectedException.expect(UnsupportedOperationException.class); expectedException.expectMessage("Should not be used with this implementation"); writer.value(null, null, null); }