Skip to content

Commit

Permalink
Fix Content Type Update Overrides required
Browse files Browse the repository at this point in the history
  • Loading branch information
Tom Reznik committed Dec 20, 2014
1 parent c3f746a commit 6505428
Show file tree
Hide file tree
Showing 4 changed files with 44 additions and 5 deletions.
27 changes: 27 additions & 0 deletions src/main/java/com/contentful/java/cma/model/CMAField.java
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,9 @@ public class CMAField {
// Validations
List<Map> validations;

// Required
Boolean required;

/**
* Sets the ID for this field.
* Returns this {@code CMAField} instance
Expand Down Expand Up @@ -85,6 +88,20 @@ public CMAField setValidations(List<Map> validations) {
return this;
}

/**
* Sets the {@code required} attribute of this field.
* @param required boolean indicating whether or not this field is required
* Returns this {@code CMAField} instance
*/
public CMAField setRequired(boolean required) {
if (required) {
this.required = true;
} else {
this.required = null;
}
return this;
}

/**
* Returns the {@code id} attribute of this field.
*/
Expand Down Expand Up @@ -119,4 +136,14 @@ public String getLinkType() {
public List<Map> getValidations() {
return validations;
}

/**
* Returns the {@code required} attribute of this field.
*/
public boolean isRequired() {
if (required == null) {
return false;
}
return required;
}
}
17 changes: 14 additions & 3 deletions src/test/kotlin/com/contentful/java/cma/ContentTypeTests.kt
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,8 @@ class ContentTypeTests : BaseTest() {
.setDisplayField("df")
.addField(CMAField().setId("f1")
.setName("field1")
.setType(CMAFieldType.Text))
.setType(CMAFieldType.Text)
.setRequired(true))
.addField(CMAField().setId("f2")
.setName("field2")
.setType(CMAFieldType.Number)),
Expand All @@ -54,6 +55,7 @@ class ContentTypeTests : BaseTest() {
assertEquals("/spaces/spaceid/content_types", recordedRequest.getPath())
assertJsonEquals(requestBody, recordedRequest.getBodyAsString())
assertEquals(2, result.getFields().size)
assertTrue(result.getFields()[0].isRequired())
}

test fun testCreateWithId() {
Expand All @@ -70,7 +72,8 @@ class ContentTypeTests : BaseTest() {
.setFields(listOf(
CMAField().setId("f1")
.setName("field1")
.setType(CMAFieldType.Text),
.setType(CMAFieldType.Text)
.setRequired(true),
CMAField().setId("f2")
.setName("field2")
.setType(CMAFieldType.Number))
Expand All @@ -83,6 +86,7 @@ class ContentTypeTests : BaseTest() {
assertJsonEquals(requestBody, recordedRequest.getBodyAsString())
assertEquals(2, result.getFields().size)
assertEquals("df", result.getDisplayField())
assertTrue(result.getFields()[0].isRequired())
}

test fun testCreateWithLink() {
Expand Down Expand Up @@ -126,7 +130,7 @@ class ContentTypeTests : BaseTest() {
contentType, TestCallback()) as TestCallback)

assertEquals(3, contentType.getFields().size)
assertNotNull(contentType.getFields().get(0).getValidations())
assertNotNull(contentType.getFields()[0].getValidations())

// Request
val recordedRequest = server!!.takeRequest()
Expand Down Expand Up @@ -312,4 +316,11 @@ class ContentTypeTests : BaseTest() {
throw e
}
}

test fun testContentTypeSetRequiredFalse() {
val contentType = CMAContentType().addField(CMAField().setId("id").setRequired(false))
assertFalse(contentType.getFields()[0].isRequired())
assertJsonEquals("""{"fields":[{"id":"id"}]}""",
gson!!.toJson(contentType, javaClass<CMAContentType>()))
}
}
2 changes: 1 addition & 1 deletion src/test/resources/content_type_create_request.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"name":"whatever1","displayField":"df","fields":[{"id":"f1","name":"field1","type":"Text"},{"id":"f2","name":"field2","type":"Number"}]}
{"name":"whatever1","displayField":"df","fields":[{"id":"f1","name":"field1","type":"Text","required":true},{"id":"f2","name":"field2","type":"Number"}]}
3 changes: 2 additions & 1 deletion src/test/resources/content_type_create_response.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,8 @@
{
"id": "f1",
"name": "field1",
"type": "Text"
"type": "Text",
"required": true
},
{
"id": "f2",
Expand Down

0 comments on commit 6505428

Please sign in to comment.