Java Code Examples for com.fasterxml.jackson.databind.ObjectMapper#getDeserializationConfig()
The following examples show how to use
com.fasterxml.jackson.databind.ObjectMapper#getDeserializationConfig() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: FieldDocumentationGeneratorTest.java From spring-auto-restdocs with Apache License 2.0 | 6 votes |
@Test public void testGenerateDocumentationForBasicTypes() throws Exception { // given ObjectMapper mapper = createMapper(); mockFieldComment(BasicTypes.class, "string", "A string"); mockFieldComment(BasicTypes.class, "bool", "A boolean"); mockFieldComment(BasicTypes.class, "number", "An integer"); mockFieldComment(BasicTypes.class, "decimal", "A decimal"); FieldDocumentationGenerator generator = new FieldDocumentationGenerator(mapper.writer(), mapper.getDeserializationConfig(), javadocReader, constraintReader, typeMapping, SnippetTranslationManager.getDefaultResolver(), null); Type type = BasicTypes.class; // when List<ExtendedFieldDescriptor> result = cast(generator .generateDocumentation(type, mapper.getTypeFactory()).values()); // then assertThat(result.size(), is(4)); assertThat(result.get(0), is(descriptor("string", "String", "A string", "true"))); assertThat(result.get(1), is(descriptor("bool", "Boolean", "A boolean", "true"))); assertThat(result.get(2), is(descriptor("number", "Integer", "An integer", "true"))); assertThat(result.get(3), is(descriptor("decimal", "Decimal", "A decimal", "true"))); }
Example 2
Source File: FieldDocumentationGeneratorTest.java From spring-auto-restdocs with Apache License 2.0 | 6 votes |
@Test public void testGenerateDocumentationForExternalSerializer() throws Exception { // given ObjectMapper mapper = createMapper(); mockFieldComment(ExternalSerializer.class, "bigDecimal", "A decimal"); SimpleModule testModule = new SimpleModule("TestModule"); testModule.addSerializer(new BigDecimalSerializer()); mapper.registerModule(testModule); FieldDocumentationGenerator generator = new FieldDocumentationGenerator(mapper.writer(), mapper.getDeserializationConfig(), javadocReader, constraintReader, typeMapping, SnippetTranslationManager.getDefaultResolver(), null); Type type = ExternalSerializer.class; // when List<ExtendedFieldDescriptor> result = cast(generator .generateDocumentation(type, mapper.getTypeFactory()).values()); // then assertThat(result.size(), is(1)); assertThat(result.get(0), is(descriptor("bigDecimal", "Decimal", "A decimal", "true"))); }
Example 3
Source File: FieldDocumentationGeneratorTest.java From spring-auto-restdocs with Apache License 2.0 | 6 votes |
@Test public void testGenerateDocumentationWithTags() throws Exception { // given ObjectMapper mapper = createMapper(); mockFieldComment(BasicTypes.class, "string", "A string"); mockFieldTag(BasicTypes.class, "string", "see", "this"); mockFieldComment(BasicTypes.class, "bool", "A boolean"); mockFieldTag(BasicTypes.class, "bool", "see", "<a href=\"xyz\">docs</a>"); FieldDocumentationGenerator generator = new FieldDocumentationGenerator(mapper.writer(), mapper.getDeserializationConfig(), javadocReader, constraintReader, typeMapping, SnippetTranslationManager.getDefaultResolver(), null); Type type = BasicTypes.class; // when List<ExtendedFieldDescriptor> result = cast(generator .generateDocumentation(type, mapper.getTypeFactory()).values()); // then assertThat(result.size(), is(4)); assertThat(result.get(0), is(descriptor("string", "String", "A string<br>See this.", "true"))); assertThat(result.get(1), is(descriptor("bool", "Boolean", "A boolean<br>See <a href=\"xyz\">docs</a>.", "true"))); }
Example 4
Source File: FieldDocumentationGeneratorTest.java From spring-auto-restdocs with Apache License 2.0 | 6 votes |
@Test public void testGenerateDocumentationForRequiredProperties() throws Exception { // given ObjectMapper mapper = createMapper(); mockFieldComment(RequiredProperties.class, "string", "A string"); mockFieldComment(RequiredProperties.class, "number", "An integer"); FieldDocumentationGenerator generator = new FieldDocumentationGenerator(mapper.writer(), mapper.getDeserializationConfig(), javadocReader, constraintReader, typeMapping, SnippetTranslationManager.getDefaultResolver(), null); Type type = RequiredProperties.class; // when List<ExtendedFieldDescriptor> result = cast(generator .generateDocumentation(type, mapper.getTypeFactory()).values()); // then assertThat(result.size(), is(2)); assertThat(result.get(0), is(descriptor("string", "String", "A string", "false"))); assertThat(result.get(1), is(descriptor("number", "Integer", "An integer", "false"))); }
Example 5
Source File: AbstractTypeCustomizationFactory.java From caravan with Apache License 2.0 | 5 votes |
public AbstractTypeCustomizationFactory(ObjectMapper mapper) { this.serializerProvider = mapper.getSerializerProviderInstance(); this.serializerFactory = (CustomBeanSerializerFactory) mapper.getSerializerFactory(); this.typeFactory = mapper.getTypeFactory(); this.deserializationContext = mapper.getDeserializationContext(); this.deserializationConfig = mapper.getDeserializationConfig(); }
Example 6
Source File: AbstractJacksonFieldSnippet.java From spring-auto-restdocs with Apache License 2.0 | 5 votes |
protected FieldDescriptors createFieldDescriptors(Operation operation, HandlerMethod handlerMethod) { ObjectMapper objectMapper = getObjectMapper(operation); JavadocReader javadocReader = getJavadocReader(operation); ConstraintReader constraintReader = getConstraintReader(operation); SnippetTranslationResolver translationResolver = getTranslationResolver(operation); TypeMapping typeMapping = getTypeMapping(operation); JsonProperty.Access skipAcessor = getSkipAcessor(); Type type = getType(handlerMethod); if (type == null) { return new FieldDescriptors(); } try { FieldDocumentationGenerator generator = new FieldDocumentationGenerator( objectMapper.writer(), objectMapper.getDeserializationConfig(), javadocReader, constraintReader, typeMapping, translationResolver, skipAcessor); FieldDescriptors fieldDescriptors = generator.generateDocumentation(type, objectMapper.getTypeFactory()); if (shouldFailOnUndocumentedFields()) { assertAllDocumented(fieldDescriptors.values(), translationResolver.translate(getHeaderKey(operation)).toLowerCase()); } return fieldDescriptors; } catch (JsonMappingException e) { throw new JacksonFieldProcessingException("Error while parsing fields", e); } }
Example 7
Source File: FieldDocumentationGeneratorTest.java From spring-auto-restdocs with Apache License 2.0 | 5 votes |
@Test public void testGenerateDocumentationForNestedTypes() throws Exception { // given ObjectMapper mapper = createMapper(); mockFieldComment(FirstLevel.class, "second", "2nd level"); mockFieldComment(SecondLevel.class, "third", "3rd level"); mockFieldComment(ThirdLevel.class, "fourth", "4th level"); mockFieldComment(FourthLevel.class, "fifth", "5th level"); mockFieldComment(FifthLevel.class, "last", "An integer"); FieldDocumentationGenerator generator = new FieldDocumentationGenerator(mapper.writer(), mapper.getDeserializationConfig(), javadocReader, constraintReader, typeMapping, SnippetTranslationManager.getDefaultResolver(), null); Type type = FirstLevel.class; // when List<ExtendedFieldDescriptor> result = cast(generator .generateDocumentation(type, mapper.getTypeFactory()).values()); // then assertThat(result.size(), is(5)); assertThat(result.get(0), is(descriptor("second", "Object", "2nd level", "true"))); assertThat(result.get(1), is(descriptor("second.third", "Array[Object]", "3rd level", "true"))); assertThat(result.get(2), is(descriptor("second.third[].fourth", "Object", "4th level", "true"))); assertThat(result.get(3), is(descriptor("second.third[].fourth.fifth", "Array[Object]", "5th level", "true"))); assertThat(result.get(4), is(descriptor("second.third[].fourth.fifth[].last", "Integer", "An integer", "true"))); }
Example 8
Source File: FieldDocumentationGeneratorTest.java From spring-auto-restdocs with Apache License 2.0 | 5 votes |
@Test public void testGenerateDocumentationForRecursiveTypes() throws Exception { // given ObjectMapper mapper = createMapper(); FieldDocumentationGenerator generator = new FieldDocumentationGenerator(mapper.writer(), mapper.getDeserializationConfig(), javadocReader, constraintReader, typeMapping, SnippetTranslationManager.getDefaultResolver(), null); Type type = RecursiveType.class; // when List<ExtendedFieldDescriptor> result = cast(generator .generateDocumentation(type, mapper.getTypeFactory()).values()); // then assertThat(result.size(), is(16)); assertThat(result.get(0), is(descriptor("sub1", "Array[Object]", "", "true"))); assertThat(result.get(1), is(descriptor("sub2", "Object", "", "true"))); assertThat(result.get(2), is(descriptor("sub3", "Array[Object]", "", "true"))); assertThat(result.get(3), is(descriptor("sub4", "Object", "", "true"))); assertThat(result.get(4), is(descriptor("sub5", "Array[Object]", "", "true"))); assertThat(result.get(5), is(descriptor("sub6", "Object", "", "true"))); assertThat(result.get(6), is(descriptor("sub7", "Array[Object]", "", "true"))); assertThat(result.get(7), is(descriptor("sub7[].sub1", "Array[Object]", "", "true"))); assertThat(result.get(8), is(descriptor("sub7[].sub2", "Object", "", "true"))); assertThat(result.get(9), is(descriptor("sub7[].sub3", "Array[Object]", "", "true"))); assertThat(result.get(10), is(descriptor("sub7[].sub4", "Object", "", "true"))); assertThat(result.get(11), is(descriptor("sub8", "Object", "", "true"))); assertThat(result.get(12), is(descriptor("sub8.sub1", "Array[Object]", "", "true"))); assertThat(result.get(13), is(descriptor("sub8.sub2", "Object", "", "true"))); assertThat(result.get(14), is(descriptor("sub8.sub3", "Array[Object]", "", "true"))); assertThat(result.get(15), is(descriptor("sub8.sub4", "Object", "", "true"))); }
Example 9
Source File: FieldDocumentationGeneratorTest.java From spring-auto-restdocs with Apache License 2.0 | 5 votes |
@Test public void testGenerateDocumentationForJacksonAnnotations() throws Exception { // given ObjectMapper mapper = createMapper(); mockFieldComment(JsonAnnotations.class, "location", "A location"); mockFieldComment(JsonAnnotations.class, "uri", "A uri"); when(javadocReader.resolveMethodComment(JsonAnnotations.class, "getParameter")) .thenReturn("A parameter"); mockFieldComment(JsonAnnotations.Meta.class, "headers", "A header map"); FieldDocumentationGenerator generator = new FieldDocumentationGenerator(mapper.writer(), mapper.getDeserializationConfig(), javadocReader, constraintReader, typeMapping, SnippetTranslationManager.getDefaultResolver(), null); Type type = JsonAnnotations.class; // when List<ExtendedFieldDescriptor> result = cast(generator .generateDocumentation(type, mapper.getTypeFactory()).values()); // then assertThat(result.size(), is(4)); // @JsonPropertyOrder puts it to first place assertThat(result.get(0), is(descriptor("uri", "String", "A uri", "true"))); // @JsonProperty assertThat(result.get(1), is(descriptor("path", "String", "A location", "true"))); // @JsonGetter assertThat(result.get(2), is(descriptor("param", "String", "A parameter", "true"))); // @JsonUnwrapped assertThat(result.get(3), is(descriptor("headers", "Map", "A header map", "true"))); }
Example 10
Source File: FieldDocumentationGeneratorTest.java From spring-auto-restdocs with Apache License 2.0 | 5 votes |
@Test public void testGenerateDocumentationForFieldResolution() throws Exception { // given // different mapper for custom field resolution ObjectMapper mapper = new ObjectMapper(); mapper.setVisibility(mapper.getSerializationConfig().getDefaultVisibilityChecker() .withFieldVisibility(JsonAutoDetect.Visibility.PUBLIC_ONLY)); // comment on field directly mockFieldComment(FieldCommentResolution.class, "location", "A location"); // comment on getter instead of field when(javadocReader.resolveMethodComment(FieldCommentResolution.class, "getType")) .thenReturn("A type"); // comment on field instead of getter mockFieldComment(FieldCommentResolution.class, "uri", "A uri"); mockFieldComment(FieldCommentResolution.class, "secured", "A secured flag"); FieldDocumentationGenerator generator = new FieldDocumentationGenerator(mapper.writer(), mapper.getDeserializationConfig(), javadocReader, constraintReader, typeMapping, SnippetTranslationManager.getDefaultResolver(), null); Type type = FieldCommentResolution.class; // when List<ExtendedFieldDescriptor> result = cast(generator .generateDocumentation(type, mapper.getTypeFactory()).values()); // then assertThat(result.size(), is(4)); // field comment assertThat(result.get(0), is(descriptor("location", "String", "A location", "true"))); // getter comment assertThat(result.get(1), is(descriptor("type", "String", "A type", "true"))); // field comment assertThat(result.get(2), is(descriptor("uri", "String", "A uri", "true"))); assertThat(result.get(3), is(descriptor("secured", "Boolean", "A secured flag", "true"))); }
Example 11
Source File: FieldDocumentationGeneratorTest.java From spring-auto-restdocs with Apache License 2.0 | 5 votes |
@Test public void testGenerateDocumentationForConstraints() throws Exception { // given ObjectMapper mapper = createMapper(); mockConstraint(ConstraintResolution.class, "location", "A constraint for location"); mockConstraint(ConstraintResolution.class, "type", "A constraint for type"); mockOptional(ConstraintResolution.class, "type", "false"); mockOptional(ConstraintResolution.class, "params", "false"); mockConstraint(ConstraintField.class, "value", "A constraint1 for value", "A constraint2 for value"); mockOptional(ConstraintField.class, "value", "false"); FieldDocumentationGenerator generator = new FieldDocumentationGenerator(mapper.writer(), mapper.getDeserializationConfig(), javadocReader, constraintReader, typeMapping, SnippetTranslationManager.getDefaultResolver(), null); Type type = ConstraintResolution.class; // when List<ExtendedFieldDescriptor> fieldDescriptions = cast(generator .generateDocumentation(type, mapper.getTypeFactory()).values()); // then assertThat(fieldDescriptions.size(), is(5)); assertThat(fieldDescriptions.get(0), is(descriptor("location", "String", "", "true", "A constraint for location"))); assertThat(fieldDescriptions.get(1), is(descriptor("type", "Integer", "", "false", "A constraint for type"))); assertThat(fieldDescriptions.get(2), is(descriptor("params", "Array[Object]", "", "false"))); assertThat(fieldDescriptions.get(3), is(descriptor("params[].value", "String", "", "false", "A constraint1 for value", "A constraint2 for value"))); assertThat(fieldDescriptions.get(4), is(descriptor("flags", "Array[Boolean]", "", "true"))); }
Example 12
Source File: FieldDocumentationGeneratorTest.java From spring-auto-restdocs with Apache License 2.0 | 4 votes |
@Test public void testGenerateDocumentationForPrimitiveTypes() throws Exception { // given ObjectMapper mapper = createMapper(); mockFieldComment(PrimitiveTypes.class, "string", "A string"); mockFieldComment(PrimitiveTypes.class, "bool", "A boolean"); mockFieldComment(PrimitiveTypes.class, "number", "An integer"); mockFieldComment(PrimitiveTypes.class, "decimal", "A decimal"); FieldDocumentationGenerator generator = new FieldDocumentationGenerator(mapper.writer(), mapper.getDeserializationConfig(), javadocReader, constraintReader, typeMapping, SnippetTranslationManager.getDefaultResolver(), null); Type type = PrimitiveTypes.class; // when List<ExtendedFieldDescriptor> result = cast(generator .generateDocumentation(type, mapper.getTypeFactory()).values()); // then assertThat(result.size(), is(4)); assertThat(result.get(0), is(descriptor("string", "Array[String]", "A string", "true"))); assertThat(result.get(1), is(descriptor("bool", "Boolean", "A boolean", "true"))); assertThat(result.get(2), is(descriptor("number", "Integer", "An integer", "true"))); assertThat(result.get(3), is(descriptor("decimal", "Decimal", "A decimal", "true"))); // when change deserialization config mapper.configure(DeserializationFeature.FAIL_ON_NULL_FOR_PRIMITIVES, true); generator = new FieldDocumentationGenerator(mapper.writer(), mapper.getDeserializationConfig(), javadocReader, constraintReader, typeMapping, SnippetTranslationManager.getDefaultResolver(), null); // when result = cast(generator.generateDocumentation(type, mapper.getTypeFactory()).values()); // then assertThat(result.size(), is(4)); assertThat(result.get(0), is(descriptor("string", "Array[String]", "A string", "true"))); assertThat(result.get(1), is(descriptor("bool", "Boolean", "A boolean", "false"))); assertThat(result.get(2), is(descriptor("number", "Integer", "An integer", "false"))); assertThat(result.get(3), is(descriptor("decimal", "Decimal", "A decimal", "false"))); }
Example 13
Source File: FieldDocumentationGeneratorTest.java From spring-auto-restdocs with Apache License 2.0 | 4 votes |
@Test public void testGenerateDocumentationForComposedTypes() throws Exception { // given ObjectMapper mapper = createMapper(); mockFieldComment(ComposedTypes.class, "object", "An object"); mockFieldComment(BasicTypes.class, "string", "A string"); mockFieldComment(BasicTypes.class, "bool", "A boolean"); mockFieldComment(BasicTypes.class, "number", "An integer"); mockFieldComment(BasicTypes.class, "decimal", "A decimal"); mockFieldComment(ComposedTypes.class, "array", "An array"); FieldDocumentationGenerator generator = new FieldDocumentationGenerator(mapper.writer(), mapper.getDeserializationConfig(), javadocReader, constraintReader, typeMapping, SnippetTranslationManager.getDefaultResolver(), null); Type type = ComposedTypes.class; // when List<ExtendedFieldDescriptor> result = cast(generator .generateDocumentation(type, mapper.getTypeFactory()).values()); // then assertThat(result.size(), is(10)); assertThat(result.get(0), is(descriptor("object", "Object", "An object", "true"))); assertThat(result.get(1), is(descriptor("object.string", "String", "A string", "true"))); assertThat(result.get(2), is(descriptor("object.bool", "Boolean", "A boolean", "true"))); assertThat(result.get(3), is(descriptor("object.number", "Integer", "An integer", "true"))); assertThat(result.get(4), is(descriptor("object.decimal", "Decimal", "A decimal", "true"))); assertThat(result.get(5), is(descriptor("array", "Array[Object]", "An array", "true"))); assertThat(result.get(6), is(descriptor("array[].string", "String", "A string", "true"))); assertThat(result.get(7), is(descriptor("array[].bool", "Boolean", "A boolean", "true"))); assertThat(result.get(8), is(descriptor("array[].number", "Integer", "An integer", "true"))); assertThat(result.get(9), is(descriptor("array[].decimal", "Decimal", "A decimal", "true"))); }
Example 14
Source File: FieldDocumentationGeneratorTest.java From spring-auto-restdocs with Apache License 2.0 | 4 votes |
@Test public void testGenerateDocumentationForJacksonSubTypes() throws Exception { // given ObjectMapper mapper = createMapper(); mockFieldComment(JsonType1.class, "name", "A name"); mockFieldComment(JsonType1.class, "type", "A type"); mockFieldComment(JsonType1.class, "base1", "A base 1"); mockFieldComment(JsonType1.class, "base2", "A base 2"); mockFieldComment(JsonType1.class, "base3", "A base 3"); mockFieldComment(JsonType1.class, "base4", "A base 4"); mockFieldComment(JsonType1SubType1.class, "base1Sub1", "A base 1 sub 1"); mockFieldComment(JsonType1SubType2.class, "base1Sub2", "A base 1 sub 2"); mockFieldComment(JsonType2.class, "clazz", "A clazz"); mockFieldComment(JsonType2SubType1.class, "base2Sub1", "A base 2 sub 1"); mockFieldComment(JsonType2SubType2.class, "base2Sub2", "A base 2 sub 2"); mockTypeSpecifier(JsonType1SubType1.class, "[S1]"); FieldDocumentationGenerator generator = new FieldDocumentationGenerator(mapper.writer(), mapper.getDeserializationConfig(), javadocReader, constraintReader, typeMapping, SnippetTranslationManager.getDefaultResolver(), null); Type type = JsonType1.class; // when List<ExtendedFieldDescriptor> fieldDescriptions = cast(generator .generateDocumentation(type, mapper.getTypeFactory()).values()); // then assertThat(fieldDescriptions.size(), is(14)); assertThat(fieldDescriptions.get(0), is(descriptor("type", "String", "A type", "true"))); assertThat(fieldDescriptions.get(1), is(descriptor("name", "String", "A name", "true"))); assertThat(fieldDescriptions.get(2), is(descriptor("base1", "Array[Object]", "A base 1", "true"))); assertThat(fieldDescriptions.get(3), is(descriptor("base2", "Object", "A base 2", "true"))); assertThat(fieldDescriptions.get(4), is(descriptor("base3", "Array[Object]", "A base 3", "true"))); assertThat(fieldDescriptions.get(5), is(descriptor("base3[].clazz", "String", "A clazz", "true"))); assertThat(fieldDescriptions.get(6), is(descriptor("base3[].base2Sub1", "String", "A base 2 sub 1", "true"))); assertThat(fieldDescriptions.get(7), is(descriptor("base3[].base2Sub2", "String", "A base 2 sub 2", "true"))); assertThat(fieldDescriptions.get(8), is(descriptor("base4", "Object", "A base 4", "true"))); assertThat(fieldDescriptions.get(9), is(descriptor("base4.clazz", "String", "A clazz", "true"))); assertThat(fieldDescriptions.get(10), is(descriptor("base4.base2Sub1", "String", "A base 2 sub 1", "true"))); assertThat(fieldDescriptions.get(11), is(descriptor("base4.base2Sub2", "String", "A base 2 sub 2", "true"))); assertThat(fieldDescriptions.get(12), is(descriptor("base1Sub1", "String", "A base 1 sub 1 [S1]", "true [S1]"))); assertThat(fieldDescriptions.get(13), is(descriptor("base1Sub2", "String", "A base 1 sub 2", "true"))); }
Example 15
Source File: FieldDocumentationGeneratorTest.java From spring-auto-restdocs with Apache License 2.0 | 4 votes |
@Test public void testGenerateDocumentationForPlainSubTypes() throws Exception { // given ObjectMapper mapper = createMapper(); mockFieldComment(Plain.class, "field", "A field"); mockFieldComment(Plain.class, "overriddenField", "An overridden field"); mockFieldComment(PlainX.class, "overriddenField", "Custom 1"); mockFieldComment(PlainX.class, "x", "A field X"); mockFieldComment(PlainY.class, "overriddenField", "Custom 2"); mockFieldComment(PlainY.class, "y", "A field Y"); mockTypeSpecifier(Plain.class, ""); mockTypeSpecifier(PlainX.class, "(X)"); mockTypeSpecifier(PlainY.class, "(Y)"); mockOptional(Plain.class, "overriddenField", "true"); mockOptional(PlainX.class, "overriddenField", "false"); mockOptional(PlainY.class, "overriddenField", "false"); mockConstraint(Plain.class, "overriddenField", "Size[1]"); mockConstraint(PlainX.class, "overriddenField", "Size[x]"); mockConstraint(PlainY.class, "overriddenField", "Size[y]"); TypeMapping typeMapping = new TypeMapping(); typeMapping.mapSubtypes(Plain.class, PlainX.class, PlainY.class); FieldDocumentationGenerator generator = new FieldDocumentationGenerator(mapper.writer(), mapper.getDeserializationConfig(), javadocReader, constraintReader, typeMapping, SnippetTranslationManager.getDefaultResolver(), null); Type type = Plain.class; // when List<ExtendedFieldDescriptor> fieldDescriptions = cast(generator .generateDocumentation(type, mapper.getTypeFactory()).values()); // then assertThat(fieldDescriptions.size(), is(4)); assertThat(fieldDescriptions.get(0), is(descriptor("field", "String", "A field", "true"))); assertThat(fieldDescriptions.get(1), is(descriptor("overriddenField", "String", "An overridden field<br>Custom 1 (X)<br>Custom 2 (Y)", Arrays.asList("true", "false (X)", "false (Y)"), "Size[1]", "Size[x] (X)", "Size[y] (Y)"))); assertThat(fieldDescriptions.get(2), is(descriptor("x", "String", "A field X (X)", "true (X)"))); assertThat(fieldDescriptions.get(3), is(descriptor("y", "String", "A field Y (Y)", "true (Y)"))); }