/**
* Copyright (C) 2010-2017 Structr GmbH
*
* This file is part of Structr <http://structr.org>.
*
* Structr is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* Structr is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Structr. If not, see <http://www.gnu.org/licenses/>.
*/
package org.structr.rest.resource;
import com.jayway.restassured.RestAssured;
import com.jayway.restassured.filter.log.ResponseLoggingFilter;
import static org.hamcrest.Matchers.*;
import org.junit.Test;
import org.structr.rest.common.StructrRestTest;
/**
*
*
*/
public class SchemaResourceTest extends StructrRestTest {
@Test
public void testCustomSchema0() {
createEntity("/schema_node", "{ \"name\": \"TestType0\", \"_foo\": \"String\" }");
RestAssured
.given()
.contentType("application/json; charset=UTF-8")
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(200))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(201))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(400))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(404))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(422))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(500))
.expect()
.statusCode(200)
.body("result", hasSize(14))
.body("result_count", equalTo(14))
.body("result[-1].type", equalTo("String"))
.body("result[-1].jsonName", equalTo("foo"))
.body("result[-1].declaringClass", equalTo("TestType0"))
.when()
.get("/_schema/TestType0/ui");
}
@Test
public void testCustomSchema1() {
createEntity("/schema_node", "{ \"name\": \"TestType1\", \"_foo\": \"fooDb|String\" }");
RestAssured
.given()
.contentType("application/json; charset=UTF-8")
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(200))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(201))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(400))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(404))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(422))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(500))
.expect()
.statusCode(200)
.body("result", hasSize(14))
.body("result_count", equalTo(14))
.body("result[-1].type", equalTo("String"))
.body("result[-1].jsonName", equalTo("foo"))
.body("result[-1].dbName", equalTo("fooDb"))
.body("result[-1].declaringClass", equalTo("TestType1"))
.when()
.get("/_schema/TestType1/ui");
}
@Test
public void testCustomSchema2() {
createEntity("/schema_node", "{ \"name\": \"TestType2\", \"_foo\": \"+String\" }");
RestAssured
.given()
.contentType("application/json; charset=UTF-8")
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(200))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(201))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(400))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(404))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(422))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(500))
.expect()
.statusCode(200)
.body("result", hasSize(14))
.body("result_count", equalTo(14))
.body("result[-1].type", equalTo("String"))
.body("result[-1].dbName", equalTo("foo"))
.body("result[-1].notNull", equalTo(true))
.when()
.get("/_schema/TestType2/ui");
}
@Test
public void testCustomSchema3() {
createEntity("/schema_node", "{ \"name\": \"TestType3\", \"_foo\": \"String!\" }");
RestAssured
.given()
.contentType("application/json; charset=UTF-8")
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(200))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(201))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(400))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(404))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(422))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(500))
.expect()
.statusCode(200)
.body("result", hasSize(14))
.body("result_count", equalTo(14))
.body("result[-1].dbName", equalTo("foo"))
.body("result[-1].unique", equalTo(true))
.when()
.get("/_schema/TestType3/ui");
}
@Test
public void testCustomSchema4() {
createEntity("/schema_node", "{ \"name\": \"TestType4\", \"_foo\": \"+String!\" }");
RestAssured
.given()
.contentType("application/json; charset=UTF-8")
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(200))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(201))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(400))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(404))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(422))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(500))
.expect()
.statusCode(200)
.body("result", hasSize(14))
.body("result_count", equalTo(14))
.body("result[-1].dbName", equalTo("foo"))
.body("result[-1].unique", equalTo(true))
.body("result[-1].notNull", equalTo(true))
.when()
.get("/_schema/TestType4/ui");
}
@Test
public void testCustomSchema5() {
createEntity("/schema_node", "{ \"name\": \"TestType5\", \"_foo\": \"String(bar)\" }");
RestAssured
.given()
.contentType("application/json; charset=UTF-8")
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(200))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(201))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(400))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(404))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(422))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(500))
.expect()
.statusCode(200)
.body("result", hasSize(14))
.body("result_count", equalTo(14))
.body("result[-1].format", equalTo("bar"))
.when()
.get("/_schema/TestType5/ui");
}
@Test
public void testCustomSchema6() {
createEntity("/schema_node", "{ \"name\": \"TestType6\", \"_foo\": \"String!(bar)\" }");
RestAssured
.given()
.contentType("application/json; charset=UTF-8")
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(200))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(201))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(400))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(404))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(422))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(500))
.expect()
.statusCode(200)
.body("result", hasSize(14))
.body("result_count", equalTo(14))
.body("result[-1].dbName", equalTo("foo"))
.body("result[-1].unique", equalTo(true))
.body("result[-1].format", equalTo("bar"))
.when()
.get("/_schema/TestType6/ui");
}
@Test
public void testCustomSchema7() {
createEntity("/schema_node", "{ \"name\": \"TestType7\", \"_foo\": \"String[text/html]\" }");
RestAssured
.given()
.contentType("application/json; charset=UTF-8")
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(200))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(201))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(400))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(404))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(422))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(500))
.expect()
.statusCode(200)
.body("result", hasSize(14))
.body("result_count", equalTo(14))
.body("result[-1].dbName", equalTo("foo"))
.body("result[-1].contentType", equalTo("text/html"))
.when()
.get("/_schema/TestType7/ui");
}
@Test
public void testCustomSchema8() {
createEntity("/schema_node", "{ \"name\": \"TestType8\", \"_foo\": \"String[text/html]!\" }");
RestAssured
.given()
.contentType("application/json; charset=UTF-8")
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(200))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(201))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(400))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(404))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(422))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(500))
.expect()
.statusCode(200)
.body("result", hasSize(14))
.body("result_count", equalTo(14))
.body("result[-1].dbName", equalTo("foo"))
.body("result[-1].contentType", equalTo("text/html"))
.body("result[-1].unique", equalTo(true))
.when()
.get("/_schema/TestType8/ui");
}
@Test
public void testCustomSchema9() {
createEntity("/schema_node", "{ \"name\": \"TestType9\", \"_foo\": \"+String[text/html]!\" }");
RestAssured
.given()
.contentType("application/json; charset=UTF-8")
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(200))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(201))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(400))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(404))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(422))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(500))
.expect()
.statusCode(200)
.body("result", hasSize(14))
.body("result_count", equalTo(14))
.body("result[-1].dbName", equalTo("foo"))
.body("result[-1].contentType", equalTo("text/html"))
.body("result[-1].notNull", equalTo(true))
.when()
.get("/_schema/TestType9/ui");
}
@Test
public void testCustomSchema10() {
createEntity("/schema_node", "{ \"name\": \"TestType10\", \"_foo\": \"+String[text/html]!\" }");
RestAssured
.given()
.contentType("application/json; charset=UTF-8")
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(200))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(201))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(400))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(404))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(422))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(500))
.expect()
.statusCode(200)
.body("result", hasSize(14))
.body("result_count", equalTo(14))
.body("result[-1].dbName", equalTo("foo"))
.body("result[-1].contentType", equalTo("text/html"))
.body("result[-1].notNull", equalTo(true))
.when()
.get("/_schema/TestType10/ui");
}
@Test
public void testCustomSchema11() {
createEntity("/schema_node", "{ \"name\": \"TestType11\", \"_foo\": \"+String[text/html]!([a-f0-9]{32}):xyz\" }");
RestAssured
.given()
.contentType("application/json; charset=UTF-8")
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(200))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(201))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(400))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(404))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(422))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(500))
.expect()
.statusCode(200)
.body("result", hasSize(14))
.body("result_count", equalTo(14))
.body("result[-1].dbName", equalTo("foo"))
.body("result[-1].contentType", equalTo("text/html"))
.body("result[-1].notNull", equalTo(true))
.body("result[-1].format", equalTo("[a-f0-9]{32}"))
.body("result[-1].defaultValue", equalTo("xyz"))
.when()
.get("/_schema/TestType11/ui");
}
@Test
public void testCustomSchema12() {
createEntity("/schema_node", "{ \"name\": \"TestType12\", \"_foo\": \"+Date!(yyyy-MM-dd)\" }");
RestAssured
.given()
.contentType("application/json; charset=UTF-8")
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(200))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(201))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(400))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(404))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(422))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(500))
.expect()
.statusCode(200)
.body("result", hasSize(14))
.body("result_count", equalTo(14))
.body("result[-1].dbName", equalTo("foo"))
.body("result[-1].type", equalTo("Date"))
.body("result[-1].notNull", equalTo(true))
.body("result[-1].format", equalTo("yyyy-MM-dd"))
.when()
.get("/_schema/TestType12/ui");
}
@Test
public void testCustomSchema13() {
createEntity("/schema_node", "{ \"name\": \"TestType13\", \"_foo\": \"fooDb|+String[text/html]!([a-f0-9]{32}):xyz\" }");
RestAssured
.given()
.contentType("application/json; charset=UTF-8")
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(200))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(201))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(400))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(404))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(422))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(500))
.expect()
.statusCode(200)
.body("result", hasSize(14))
.body("result_count", equalTo(14))
.body("result[-1].jsonName", equalTo("foo"))
.body("result[-1].dbName", equalTo("fooDb"))
.body("result[-1].contentType", equalTo("text/html"))
.body("result[-1].notNull", equalTo(true))
.body("result[-1].format", equalTo("[a-f0-9]{32}"))
.body("result[-1].defaultValue", equalTo("xyz"))
.when()
.get("/_schema/TestType13/ui");
}
@Test
public void testCustomSchema14() {
createEntity("/schema_node", "{ \"name\": \"TestType14\", \"_foo\": \"fooDb|+String[text/html]!(multi-line):xyz\" }");
RestAssured
.given()
.contentType("application/json; charset=UTF-8")
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(200))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(201))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(400))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(404))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(422))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(500))
.expect()
.statusCode(200)
.body("result", hasSize(14))
.body("result_count", equalTo(14))
.body("result[-1].jsonName", equalTo("foo"))
.body("result[-1].dbName", equalTo("fooDb"))
.body("result[-1].contentType", equalTo("text/html"))
.body("result[-1].notNull", equalTo(true))
.body("result[-1].format", equalTo("multi-line"))
.body("result[-1].defaultValue", equalTo("xyz"))
.when()
.get("/_schema/TestType14/ui");
}
@Test
public void testCustomSchema15() {
createEntity("/schema_node", "{ \"name\": \"TestType15\", \"_foo\": \"fooDb|+String[text/html]!(some-format with | pipe in it):xyz\" }");
RestAssured
.given()
.contentType("application/json; charset=UTF-8")
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(200))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(201))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(400))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(404))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(422))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(500))
.expect()
.statusCode(200)
.body("result", hasSize(14))
.body("result_count", equalTo(14))
.body("result[-1].jsonName", equalTo("foo"))
.body("result[-1].dbName", equalTo("fooDb"))
.body("result[-1].contentType", equalTo("text/html"))
.body("result[-1].notNull", equalTo(true))
.body("result[-1].format", equalTo("some-format with | pipe in it"))
.body("result[-1].defaultValue", equalTo("xyz"))
.when()
.get("/_schema/TestType15/ui");
}
@Test
public void testCustomSchema16() {
createEntity("/schema_node", "{ \"name\": \"TestType16\", \"_foo\": \"+String[text/html]!(some-format with no pipe in it):xyz\" }");
RestAssured
.given()
.contentType("application/json; charset=UTF-8")
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(200))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(201))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(400))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(404))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(422))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(500))
.expect()
.statusCode(200)
.body("result", hasSize(14))
.body("result_count", equalTo(14))
.body("result[-1].jsonName", equalTo("foo"))
.body("result[-1].contentType", equalTo("text/html"))
.body("result[-1].notNull", equalTo(true))
.body("result[-1].format", equalTo("some-format with no pipe in it"))
.body("result[-1].defaultValue", equalTo("xyz"))
.when()
.get("/_schema/TestType16/ui");
}
@Test
public void testCustomSchema17() {
createEntity("/schema_node", "{ \"name\": \"TestType17\", \"_foo\": \"+String[text/html]!(some-format with a | pipe in it):xyz\" }");
RestAssured
.given()
.contentType("application/json; charset=UTF-8")
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(200))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(201))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(400))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(404))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(422))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(500))
.expect()
.statusCode(200)
.body("result", hasSize(14))
.body("result_count", equalTo(14))
.body("result[-1].jsonName", equalTo("foo"))
.body("result[-1].contentType", equalTo("text/html"))
.body("result[-1].notNull", equalTo(true))
.body("result[-1].format", equalTo("some-format with a | pipe in it"))
.body("result[-1].defaultValue", equalTo("xyz"))
.when()
.get("/_schema/TestType17/ui");
}
@Test
public void testCustomSchema18() {
createEntity("/schema_node", "{ \"name\": \"TestType18\", \"_foo\": \"Foo|+Date!\" }");
RestAssured
.given()
.contentType("application/json; charset=UTF-8")
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(200))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(201))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(400))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(404))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(422))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(500))
.expect()
.statusCode(200)
.body("result", hasSize(14))
.body("result_count", equalTo(14))
.body("result[-1].jsonName", equalTo("foo"))
.body("result[-1].dbName", equalTo("Foo"))
.body("result[-1].type", equalTo("Date"))
.body("result[-1].notNull", equalTo(true))
.when()
.get("/_schema/TestType18/ui");
}
@Test
public void testCustomSchema19() {
createEntity("/schema_node", "{ \"name\": \"TestType19\", \"_foo\": \"Foo|+Date!(yyyy-MM-dd)\" }");
RestAssured
.given()
.contentType("application/json; charset=UTF-8")
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(200))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(201))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(400))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(404))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(422))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(500))
.expect()
.statusCode(200)
.body("result", hasSize(14))
.body("result_count", equalTo(14))
.body("result[-1].jsonName", equalTo("foo"))
.body("result[-1].dbName", equalTo("Foo"))
.body("result[-1].type", equalTo("Date"))
.body("result[-1].notNull", equalTo(true))
.body("result[-1].format", equalTo("yyyy-MM-dd"))
.when()
.get("/_schema/TestType19/ui");
}
@Test
public void testCustomSchema20() {
createEntity("/schema_node", "{ \"name\": \"TestType20\", \"_foo\": \"Foo|+Boolean!\" }");
RestAssured
.given()
.contentType("application/json; charset=UTF-8")
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(200))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(201))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(400))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(404))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(422))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(500))
.expect()
.statusCode(200)
.body("result", hasSize(14))
.body("result_count", equalTo(14))
.body("result[-1].jsonName", equalTo("foo"))
.body("result[-1].dbName", equalTo("Foo"))
.body("result[-1].type", equalTo("Boolean"))
.body("result[-1].notNull", equalTo(true))
.when()
.get("/_schema/TestType20/ui");
}
@Test
public void testCustomSchema21() {
createEntity("/schema_node", "{ \"name\": \"TestType21\", \"_foo\": \"Foo|+Double!\" }");
RestAssured
.given()
.contentType("application/json; charset=UTF-8")
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(200))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(201))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(400))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(404))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(422))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(500))
.expect()
.statusCode(200)
.body("result", hasSize(14))
.body("result_count", equalTo(14))
.body("result[-1].jsonName", equalTo("foo"))
.body("result[-1].dbName", equalTo("Foo"))
.body("result[-1].type", equalTo("Double"))
.body("result[-1].notNull", equalTo(true))
.when()
.get("/_schema/TestType21/ui");
}
@Test
public void testCustomSchema22() {
createEntity("/schema_node", "{ \"name\": \"TestType22\", \"_foo\": \"+Enum(a,b,c)!\" }");
RestAssured
.given()
.contentType("application/json; charset=UTF-8")
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(200))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(201))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(400))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(404))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(422))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(500))
.expect()
.statusCode(200)
.body("result", hasSize(14))
.body("result_count", equalTo(14))
.body("result[-1].jsonName", equalTo("foo"))
.body("result[-1].dbName", equalTo("foo"))
.body("result[-1].type", equalTo("Enum"))
.body("result[-1].format", equalTo("a,b,c"))
.body("result[-1].notNull", equalTo(true))
.when()
.get("/_schema/TestType22/ui");
}
@Test
public void testCustomSchema23() {
createEntity("/schema_node", "{ \"name\": \"TestType23\", \"_foo\": \"Foo|+Enum(a,b,c)!\" }");
RestAssured
.given()
.contentType("application/json; charset=UTF-8")
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(200))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(201))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(400))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(404))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(422))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(500))
.expect()
.statusCode(200)
.body("result", hasSize(14))
.body("result_count", equalTo(14))
.body("result[-1].jsonName", equalTo("foo"))
.body("result[-1].dbName", equalTo("Foo"))
.body("result[-1].type", equalTo("Enum"))
.body("result[-1].format", equalTo("a,b,c"))
.body("result[-1].notNull", equalTo(true))
.when()
.get("/_schema/TestType23/ui");
}
@Test
public void testCustomSchema24() {
createEntity("/schema_node", "{ \"name\": \"TestType24\", \"_foo\": \"Foo|+Enum!(a,b,c):b\" }");
RestAssured
.given()
.contentType("application/json; charset=UTF-8")
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(200))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(201))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(400))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(404))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(422))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(500))
.expect()
.statusCode(200)
.body("result", hasSize(14))
.body("result_count", equalTo(14))
.body("result[-1].jsonName", equalTo("foo"))
.body("result[-1].dbName", equalTo("Foo"))
.body("result[-1].type", equalTo("Enum"))
.body("result[-1].format", equalTo("a,b,c"))
.body("result[-1].defaultValue", equalTo("b"))
.body("result[-1].notNull", equalTo(true))
.when()
.get("/_schema/TestType24/ui");
}
@Test
public void testCustomSchema25() {
createEntity("/schema_node", "{ \"name\": \"TestType25\", \"_foo\": \"Foo|+Boolean!:true\" }");
RestAssured
.given()
.contentType("application/json; charset=UTF-8")
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(200))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(201))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(400))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(404))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(422))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(500))
.expect()
.statusCode(200)
.body("result", hasSize(14))
.body("result_count", equalTo(14))
.body("result[-1].jsonName", equalTo("foo"))
.body("result[-1].dbName", equalTo("Foo"))
.body("result[-1].type", equalTo("Boolean"))
.body("result[-1].defaultValue", equalTo(true))
.body("result[-1].notNull", equalTo(true))
.when()
.get("/_schema/TestType25/ui");
}
@Test
public void testCustomSchema26() {
createEntity("/schema_node", "{ \"name\": \"TestType26\", \"_foo\": \"Foo|+Double!:12.34\" }");
RestAssured
.given()
.contentType("application/json; charset=UTF-8")
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(200))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(201))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(400))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(404))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(422))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(500))
.expect()
.statusCode(200)
.body("result", hasSize(14))
.body("result_count", equalTo(14))
.body("result[-1].jsonName", equalTo("foo"))
.body("result[-1].dbName", equalTo("Foo"))
.body("result[-1].type", equalTo("Double"))
.body("result[-1].defaultValue", equalTo(12.34f)) // The restassured lib parses floating-point numbers to Float
.body("result[-1].notNull", equalTo(true))
.when()
.get("/_schema/TestType26/ui");
}
@Test
public void testSchemaMethodExecution() {
createEntity("/SchemaNode", "{ name: Test, __public: \"name, type\", ___test: \"find('Test')\" }");
createEntity("Test", "{ name: Test }");
RestAssured
.given()
.contentType("application/json; charset=UTF-8")
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(201))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(400))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(404))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(422))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(500))
.expect()
.statusCode(200)
.body("result_count", equalTo(1))
.body("result.type", equalTo("Test"))
.body("result.name", equalTo("Test"))
.when()
.post("/Test/test");
}
@Test
public void testInheritedSchemaMethodExecution() {
createEntity("/SchemaNode", "{ name: TestBase, ___test: \"find('Test')\" }");
createEntity("/SchemaNode", "{ name: Test, __public: \"name, type\", extendsClass: \"org.structr.dynamic.TestBase\" }");
createEntity("Test", "{ name: Test }");
RestAssured
.given()
.contentType("application/json; charset=UTF-8")
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(201))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(400))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(404))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(422))
.filter(ResponseLoggingFilter.logResponseIfStatusCodeIs(500))
.expect()
.statusCode(200)
.body("result_count", equalTo(1))
.body("result.type", equalTo("Test"))
.body("result.name", equalTo("Test"))
.when()
.post("/Test/test");
}
}