Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Unit Test #43

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
SaifJerbi merged 6 commits into JsonSchema-JavaUI:master from Hdebbech:master
Jun 11, 2017
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
🎨 Unit Test
  • Loading branch information
Hdebbech committed Jun 11, 2017
commit 3efac63fcc8b9f5409ffce0362dea2c271c0212d
6 changes: 6 additions & 0 deletions pom.xml
View file Open in desktop
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,12 @@
<artifactId>slf4j-api</artifactId>
<version>1.7.25</version>
</dependency>
<dependency>
<groupId>com.jayway.jsonpath</groupId>
<artifactId>json-path-assert</artifactId>
<version>2.2.0</version>
<scope>test</scope>
</dependency>

</dependencies>
<build>
Expand Down
38 changes: 0 additions & 38 deletions src/test/java/io/asfjava/ui/AppTest.java
View file Open in desktop

This file was deleted.

255 changes: 126 additions & 129 deletions src/test/java/io/asfjava/ui/core/schema/UiFormSchemaGeneratorTest.java
View file Open in desktop
Original file line number Diff line number Diff line change
@@ -1,12 +1,17 @@
package io.asfjava.ui.core.schema;

import static com.jayway.jsonpath.matchers.JsonPathMatchers.hasJsonPath;
import static org.hamcrest.Matchers.equalTo;
import static org.hamcrest.Matchers.hasItem;
import static org.hamcrest.Matchers.hasSize;

import java.io.Serializable;

import org.junit.Assert;
import org.junit.BeforeClass;
import org.junit.Test;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;

import io.asfjava.ui.core.GeneratorFactoryInitializer;
Expand All @@ -18,7 +23,6 @@
import io.asfjava.ui.core.form.TextArea;
import io.asfjava.ui.core.form.TextField;
import io.asfjava.ui.dto.UiForm;
import io.asfjava.ui.test.JsonNodeAssert;

public class UiFormSchemaGeneratorTest {

Expand All @@ -30,144 +34,138 @@ public static void init() {
@Test
public void testGenerate_textField() throws JsonProcessingException {
UiForm ui = UiFormSchemaGenerator.get().generate(TextFieldForm.class);
JsonNode json = new ObjectMapper().valueToTree(ui);
JsonNodeAssert asserter = new JsonNodeAssert(json);
asserter.assertEquals("schema.properties.firstName.title", "First Name");
asserter.assertEquals("schema.properties.firstName.pattern", "[a-z]");
asserter.assertEquals("form.0.key", "firstName");
asserter.assertTrue("form.0.notitle");
asserter.assertEquals("form.0.validationMessage", "this is a validation msg");
asserter.assertEquals("form.0.description", "This is a description for your first name field");
asserter.assertEquals("form.0.placeholder", "Your first name");
String json = new ObjectMapper().writeValueAsString(ui);


Assert.assertThat(json, hasJsonPath("$.schema.properties.firstName.title",equalTo("First Name")));
Assert.assertThat(json, hasJsonPath("$.schema.properties.firstName.pattern",equalTo("[a-z]")));
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='firstName')].key",hasSize(1)));
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='firstName')].description",hasItem("This is a description for your first name field")));
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='firstName')].placeholder",hasItem("Your first name")));
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='firstName')].validationMessage",hasItem("this is a validation msg")));
//Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='firstName')].type",hasItem("textField")));

}

@Test
public void testGenerate_Number() throws JsonProcessingException {
UiForm ui = UiFormSchemaGenerator.get().generate(NumberForm.class);
JsonNode json = new ObjectMapper().valueToTree(ui);
JsonNodeAssert asserter = new JsonNodeAssert(json);
asserter.assertEquals("schema.properties.number.title", "Number of children");
asserter.assertEquals("form.0.key", "number");
asserter.assertTrue("form.0.notitle");
asserter.assertTrue("form.0.readonly");
asserter.assertEquals("form.0.validationMessage", "this is a validation msg");
asserter.assertEquals("form.0.description", "This is a number");
asserter.assertEquals("form.0.placeholder", "Number of children");
String json = new ObjectMapper().writeValueAsString(ui);
//Assert.assertThat(json, hasJsonPath("$.schema.properties.number.title",equalTo("Number")));
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='number')].key",hasSize(1)));
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='number')].description",hasItem("This is a number")));
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='number')].placeholder",hasItem("Number of children")));
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='number')].validationMessage",hasItem("this is a validation msg")));
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='number')].type",hasItem("number")));
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='number')].notitle",hasItem(true)));
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='number')].readonly",hasItem(true)));

}

@Test
public void testGenerate_Password() throws JsonProcessingException {
UiForm ui = UiFormSchemaGenerator.get().generate(PasswordForm.class);
JsonNode json = new ObjectMapper().valueToTree(ui);
JsonNodeAssert asserter = new JsonNodeAssert(json);
asserter.assertEquals("schema.properties.password.title", "Password");
asserter.assertEquals("form.0.key", "password");
asserter.assertTrue("form.0.notitle");
asserter.assertTrue("form.0.readonly");
asserter.assertEquals("form.0.validationMessage", "this is a validation msg");
asserter.assertEquals("form.0.description", "This is password");
asserter.assertEquals("form.0.placeholder", "Please set you password");

String json = new ObjectMapper().writeValueAsString(ui);
Assert.assertThat(json, hasJsonPath("$.schema.properties.password.title",equalTo("Password")));
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='password')].key",hasSize(1)));
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='password')].description",hasItem("This is password")));
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='password')].placeholder",hasItem("Please set you password")));
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='password')].validationMessage",hasItem("this is a validation msg")));
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='password')].type",hasItem("password")));
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='password')].notitle",hasItem(true)));
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='password')].readonly",hasItem(true)));
}

@Test
public void testGenerate_TextArea() throws JsonProcessingException {
UiForm ui = UiFormSchemaGenerator.get().generate(TextAreaForm.class);
JsonNode json = new ObjectMapper().valueToTree(ui);
JsonNodeAssert asserter = new JsonNodeAssert(json);
asserter.assertEquals("schema.properties.address.title", "Address");
asserter.assertEquals("form.0.key", "address");
asserter.assertTrue("form.0.notitle");
asserter.assertTrue("form.0.readonly");
asserter.assertEquals("form.0.validationMessage", "this is a validation msg");
asserter.assertEquals("form.0.description", "This is textarea");
asserter.assertEquals("form.0.placeholder", "Fill your address please");

String json = new ObjectMapper().writeValueAsString(ui);
Assert.assertThat(json, hasJsonPath("$.schema.properties.address.title",equalTo("Address")));
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='address')].key",hasSize(1)));
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='address')].description",hasItem("This is textarea")));
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='address')].placeholder",hasItem("Fill your address please")));
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='address')].validationMessage",hasItem("this is a validation msg")));
//Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='password')].type",hasItem("textArea")));
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='address')].notitle",hasItem(true)));
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='address')].readonly",hasItem(true)));

}

@Test
public void testGenerate_CheckBox() throws JsonProcessingException {
UiForm ui = UiFormSchemaGenerator.get().generate(CheckBoxForm.class);
JsonNode json = new ObjectMapper().valueToTree(ui);
JsonNodeAssert asserter = new JsonNodeAssert(json);
asserter.assertEquals("schema.properties.color.title", "Color");
asserter.assertEquals("form.0.key", "color");
asserter.assertFalse("form.0.multiple");
asserter.assertTrue("form.0.required");
asserter.assertEquals("form.0.titleMap.0.name", "Red");
asserter.assertEquals("form.0.titleMap.0.value", "red");
asserter.assertEquals("form.0.titleMap.1.name", "Blue");
asserter.assertEquals("form.0.titleMap.1.value", "blue");
asserter.assertEquals("form.0.titleMap.2.name", "Green");
asserter.assertEquals("form.0.titleMap.2.value", "green");
String json = new ObjectMapper().writeValueAsString(ui);
Assert.assertThat(json, hasJsonPath("$.schema.properties.color.title",equalTo("Color")));
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='color')].key",hasSize(1)));
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='color')].multiple",hasItem(false)));
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='color')].required",hasItem(true)));
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='color')].titleMap[0].name",hasItem("Red")));
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='color')].titleMap[0].value",hasItem("red")));
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='color')].titleMap[1].name",hasItem("Blue")));
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='color')].titleMap[1].value",hasItem("blue")));
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='color')].titleMap[2].name",hasItem("Green")));
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='color')].titleMap[2].value",hasItem("green")));
}

@Test
public void testGenerate_CheckBox_WithCustomValuesContainer() throws JsonProcessingException {
UiForm ui = UiFormSchemaGenerator.get().generate(CheckBoxForm2.class);
JsonNode json = new ObjectMapper().valueToTree(ui);
JsonNodeAssert asserter = new JsonNodeAssert(json);
asserter.assertEquals("schema.properties.color.title", "Color");
asserter.assertEquals("form.0.key", "color");
asserter.assertTrue("form.0.multiple");
asserter.assertFalse("form.0.required");
asserter.assertEquals("form.0.titleMap.0.name", "Red");
asserter.assertEquals("form.0.titleMap.0.value", "red");
asserter.assertEquals("form.0.titleMap.1.name", "Blue");
asserter.assertEquals("form.0.titleMap.1.value", "blue");
asserter.assertEquals("form.0.titleMap.2.name", "Green");
asserter.assertEquals("form.0.titleMap.2.value", "green");
String json = new ObjectMapper().writeValueAsString(ui);
Assert.assertThat(json, hasJsonPath("$.schema.properties.color.title",equalTo("Color")));
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='color')].key",hasSize(1)));
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='color')].multiple",hasItem(true)));
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='color')].required",hasItem(false)));
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='color')].titleMap[?(@.name=='Red')].value",hasItem("red")));
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='color')].titleMap[?(@.name=='Blue')].value",hasItem("blue")));
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='color')].titleMap[?(@.name=='Green')].value",hasItem("green")));
}

@Test
public void testGenerate_RadioBox() throws JsonProcessingException {
UiForm ui = UiFormSchemaGenerator.get().generate(RadioBoxForm.class);
JsonNode json = new ObjectMapper().valueToTree(ui);
JsonNodeAssert asserter = new JsonNodeAssert(json);
asserter.assertEquals("schema.properties.civilState.title", "Civil State");
asserter.assertEquals("form.0.key", "civilState");
asserter.assertFalse("form.0.readonly");
asserter.assertEquals("form.0.titleMap.0.name", "Maried");
asserter.assertEquals("form.0.titleMap.0.value", "COMMITTED");
asserter.assertEquals("form.0.titleMap.1.name", "Single");
asserter.assertEquals("form.0.titleMap.1.value", "HAPPY");
asserter.assertEquals("form.0.titleMap.2.name", "Divorced");
asserter.assertEquals("form.0.titleMap.2.value", "RELEASED");
String json = new ObjectMapper().writeValueAsString(ui);
Assert.assertThat(json, hasJsonPath("$.schema.properties.civilState.title",equalTo("Civil State")));
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='civilState')].key",hasSize(1)));
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='civilState')].readOnly",hasItem(false)));
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='civilState')].titleMap[?(@.name=='Maried')].value",hasItem("COMMITTED")));
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='civilState')].titleMap[?(@.name=='Single')].value",hasItem("HAPPY")));
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='civilState')].titleMap[?(@.name=='Divorced')].value",hasItem("RELEASED")));

}

@Test
public void testGenerate_ComboBox() throws JsonProcessingException {
UiForm ui = UiFormSchemaGenerator.get().generate(ComboBoxForm.class);
JsonNode json = new ObjectMapper().valueToTree(ui);
JsonNodeAssert asserter = new JsonNodeAssert(json);
asserter.assertEquals("schema.properties.currency.title", "Currency");
asserter.assertEquals("form.0.key", "currency");
asserter.assertFalse("form.0.autofocus");
asserter.assertFalse("form.0.disabled");
asserter.assertFalse("form.0.multiple");
asserter.assertTrue("form.0.required");
asserter.assertEquals("form.0.titleMap.0.name", "Euro");
asserter.assertEquals("form.0.titleMap.0.value", "euro");
asserter.assertEquals("form.0.titleMap.1.name", "Dollar");
asserter.assertEquals("form.0.titleMap.1.value", "dollar");

String json = new ObjectMapper().writeValueAsString(ui);
Assert.assertThat(json, hasJsonPath("$.schema.properties.currency.title",equalTo("Currency")));
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='currency')].key",hasSize(1)));
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='currency')].disabled",hasItem(false)));
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='currency')].multiple",hasItem(false)));
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='currency')].required",hasItem(true)));
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='currency')].autofocus",hasItem(false)));
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='currency')].titleMap[?(@.name=='Euro')].value",hasItem("euro")));
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='currency')].titleMap[?(@.name=='Dollar')].value",hasItem("dollar")));

}

@Test
public void testGenerate_ComboBox_WithCustomValuesContainer() throws JsonProcessingException {
UiForm ui = UiFormSchemaGenerator.get().generate(ComboBoxForm2.class);
JsonNode json = new ObjectMapper().valueToTree(ui);
JsonNodeAssert asserter = new JsonNodeAssert(json);
asserter.assertEquals("schema.properties.gender.title", "Gender");
asserter.assertEquals("form.0.key", "currency");
asserter.assertFalse("form.0.autofocus");
asserter.assertFalse("form.0.disabled");
asserter.assertFalse("form.0.multiple");
asserter.assertFalse("form.0.required");
asserter.assertEquals("form.0.titleMap.0.name", "Male");
asserter.assertEquals("form.0.titleMap.0.value", "male");
asserter.assertEquals("form.0.titleMap.1.name", "Female");
asserter.assertEquals("form.0.titleMap.1.value", "female");

String json = new ObjectMapper().writeValueAsString(ui);
Assert.assertThat(json, hasJsonPath("$.schema.properties.gender.title",equalTo("Gender")));
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='gender')].key",hasSize(1)));
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='gender')].disabled",hasItem(false)));
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='gender')].multiple",hasItem(false)));
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='gender')].required",hasItem(false)));
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='gender')].autofocus",hasItem(false)));
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='gender')].titleMap[?(@.name=='Male')].value",hasItem("male")));
Assert.assertThat(json, hasJsonPath("$.form[?(@.key=='gender')].titleMap[?(@.name=='Female')].value",hasItem("female")));

}



}

Expand Down Expand Up @@ -212,53 +210,52 @@ public String getAddress() {
}
}

class CheckBoxForm implements Serializable{
@CheckBox(title = "Color", values = { "red", "blue", "green" }, defaultvalue = "red",required=true)
class CheckBoxForm implements Serializable{

@CheckBox(title = "Color", values = { "red", "blue", "green" }, defaultvalue = "red",required = true)
private String color;
public String getColor(){

public String getColor(){
return color;
}
}

class CheckBoxForm2 implements Serializable{
@CheckBox(title = "Color", titleMap=MyCheckBoxValues.class, defaultvalue = "red",multiple=true)
class CheckBoxForm2 implements Serializable{

@CheckBox(title = "Color", titleMap = MyCheckBoxValues.class, defaultvalue = "red",multiple = true)
private String color;
public String getColor(){

public String getColor(){
return color;
}
}

class RadioBoxForm implements Serializable{
class RadioBoxForm implements Serializable{

@RadioBox(title = "Civil State", titleMap = CivilStateValues.class)
private String civilState;
public String getCivilState(){

public String getCivilState(){
return civilState;
}
}

class ComboBoxForm implements Serializable{
@ComboBox(title = "Currency", values = { "euro", "dollar" }, required=true)
class ComboBoxForm implements Serializable{

@ComboBox(title = "Currency", values = { "euro", "dollar" }, required = true)
private String currency;
public String getCurrency(){

public String getCurrency(){
return currency;
}
}

class ComboBoxForm2 implements Serializable{
class ComboBoxForm2 implements Serializable{

@ComboBox(title = "Gender", titleMap = GenderTitleMap.class)
private String gender;
public String getGender(){

public String getGender(){
return gender;
}
}

Loading

AltStyle によって変換されたページ (->オリジナル) /