Search in sources :

Example 6 with ErrorToken

use of org.structr.common.error.ErrorToken in project structr by structr.

the class ValidationTest method testStringPropertyRegexMatch.

@Test
public void testStringPropertyRegexMatch() {
    final String keyName = "regex";
    final Class testType = createTypeWithProperty("Test", keyName, "String([a-zA-Z0-9]+)");
    final PropertyKey key = StructrApp.key(testType, keyName);
    if (key != null) {
        try (final Tx tx = app.tx()) {
            app.create(testType, new NodeAttribute<>(key, "abcdefg_"));
            tx.success();
            fail("Regex constraint violated!");
        } catch (FrameworkException fex) {
            final List<ErrorToken> tokens = fex.getErrorBuffer().getErrorTokens();
            final ErrorToken token = tokens.get(0);
            assertEquals("Invalid uniqueness validation result", 1, tokens.size());
            assertEquals("Invalid regex validation result", 422, fex.getStatus());
            assertEquals("Invalid regex validation result", "regex", token.getProperty());
            assertEquals("Invalid regex validation result", "Test", token.getType());
            assertEquals("Invalid regex validation result", "must_match", token.getToken());
        }
    }
}
Also used : Tx(org.structr.core.graph.Tx) FrameworkException(org.structr.common.error.FrameworkException) List(java.util.List) ErrorToken(org.structr.common.error.ErrorToken) PropertyKey(org.structr.core.property.PropertyKey) StructrTest(org.structr.common.StructrTest) Test(org.junit.Test)

Example 7 with ErrorToken

use of org.structr.common.error.ErrorToken in project structr by structr.

the class ValidationTest method checkException.

private void checkException(final FrameworkException fex, final int numberOfTokens, final int statusCode, final String typeName, final String keyName, final String errorToken, final String uuid) {
    final List<ErrorToken> tokens = fex.getErrorBuffer().getErrorTokens();
    final ErrorToken token = tokens.get(0);
    assertEquals("Invalid validation result", numberOfTokens, tokens.size());
    assertEquals("Invalid validation result", statusCode, fex.getStatus());
    assertEquals("Invalid validation result", keyName, token.getProperty());
    assertEquals("Invalid validation result", typeName, token.getType());
    assertEquals("Invalid validation result", errorToken, token.getToken());
    if (uuid != null) {
        assertEquals("Invalid validation result", uuid, token.getDetail());
    }
}
Also used : ErrorToken(org.structr.common.error.ErrorToken)

Example 8 with ErrorToken

use of org.structr.common.error.ErrorToken in project structr by structr.

the class ValidationTest method testDoublePropertyNotNullValidation.

@Test
public void testDoublePropertyNotNullValidation() {
    final String keyName = "notnull";
    final Class<NodeInterface> testType = createTypeWithProperty("Test", keyName, "+Double");
    final PropertyKey key = StructrApp.key(testType, keyName);
    if (key != null) {
        // test failure
        try (final Tx tx = app.tx()) {
            app.create(testType, new NodeAttribute<>(key, null));
            tx.success();
            fail("Double property not null constraint violated!");
        } catch (FrameworkException fex) {
            final List<ErrorToken> tokens = fex.getErrorBuffer().getErrorTokens();
            final ErrorToken token = tokens.get(0);
            assertEquals("Invalid double validation result", 1, tokens.size());
            assertEquals("Invalid double validation result", 422, fex.getStatus());
            assertEquals("Invalid double validation result", keyName, token.getProperty());
            assertEquals("Invalid double validation result", "Test", token.getType());
            assertEquals("Invalid double validation result", "must_not_be_empty", token.getToken());
        }
    }
}
Also used : Tx(org.structr.core.graph.Tx) FrameworkException(org.structr.common.error.FrameworkException) List(java.util.List) ErrorToken(org.structr.common.error.ErrorToken) NodeInterface(org.structr.core.graph.NodeInterface) PropertyKey(org.structr.core.property.PropertyKey) StructrTest(org.structr.common.StructrTest) Test(org.junit.Test)

Example 9 with ErrorToken

use of org.structr.common.error.ErrorToken in project structr by structr.

the class ValidationTest method testEnumPropertyNotNullValidation.

@Test
public void testEnumPropertyNotNullValidation() {
    final String keyName = "notnull";
    final Class<NodeInterface> testType = createTypeWithProperty("Test", keyName, "+Enum(one, two, three)");
    final PropertyKey key = StructrApp.key(testType, keyName);
    // test failure
    try (final Tx tx = app.tx()) {
        app.create(testType, new NodeAttribute<>(key, null));
        tx.success();
        fail("Enum property not null constraint violated!");
    } catch (FrameworkException fex) {
        final List<ErrorToken> tokens = fex.getErrorBuffer().getErrorTokens();
        final ErrorToken token = tokens.get(0);
        assertEquals("Invalid enum validation result", 1, tokens.size());
        assertEquals("Invalid enum validation result", 422, fex.getStatus());
        assertEquals("Invalid enum validation result", keyName, token.getProperty());
        assertEquals("Invalid enum validation result", "Test", token.getType());
        assertEquals("Invalid enum validation result", "must_not_be_empty", token.getToken());
    }
}
Also used : Tx(org.structr.core.graph.Tx) FrameworkException(org.structr.common.error.FrameworkException) List(java.util.List) ErrorToken(org.structr.common.error.ErrorToken) NodeInterface(org.structr.core.graph.NodeInterface) PropertyKey(org.structr.core.property.PropertyKey) StructrTest(org.structr.common.StructrTest) Test(org.junit.Test)

Example 10 with ErrorToken

use of org.structr.common.error.ErrorToken in project structr by structr.

the class ValidationTest method testStringPropertyUniqueness.

@Test
public void testStringPropertyUniqueness() {
    try (final Tx tx = app.tx()) {
        app.create(SchemaNode.class, new NodeAttribute<>(AbstractNode.name, "Test"), new NodeAttribute<>(new StringProperty("_testUnique"), "String!"));
        tx.success();
    } catch (FrameworkException fex) {
        logger.warn("", fex);
        fail("Unexpected exception.");
    }
    final Class testType = StructrApp.getConfiguration().getNodeEntityClass("Test");
    if (testType != null) {
        final PropertyKey key = StructrApp.key(testType, "testUnique");
        if (key != null) {
            try (final Tx tx = app.tx()) {
                // key must be unique, but can empty
                app.create(testType, new NodeAttribute<>(key, "unique"));
                app.create(testType, new NodeAttribute<>(key, ""));
                tx.success();
            } catch (FrameworkException fex) {
                logger.warn("", fex);
                fail("Unexpected exception.");
            }
            for (int i = 0; i < 5; i++) {
                try (final Tx tx = app.tx()) {
                    app.create(testType, new NodeAttribute<>(key, "unique"));
                    tx.success();
                    fail("Uniqueness constraint violated!");
                } catch (FrameworkException fex) {
                    final List<ErrorToken> tokens = fex.getErrorBuffer().getErrorTokens();
                    final ErrorToken token = tokens.get(0);
                    assertEquals("Invalid uniqueness validation result", 1, tokens.size());
                    assertEquals("Invalid uniqueness validation result", 422, fex.getStatus());
                    assertEquals("Invalid uniqueness validation result", "testUnique", token.getProperty());
                    assertEquals("Invalid uniqueness validation result", "Test", token.getType());
                    assertEquals("Invalid uniqueness validation result", "already_taken", token.getToken());
                }
            }
        }
    }
}
Also used : Tx(org.structr.core.graph.Tx) FrameworkException(org.structr.common.error.FrameworkException) StringProperty(org.structr.core.property.StringProperty) List(java.util.List) ErrorToken(org.structr.common.error.ErrorToken) PropertyKey(org.structr.core.property.PropertyKey) StructrTest(org.structr.common.StructrTest) Test(org.junit.Test)

Aggregations

ErrorToken (org.structr.common.error.ErrorToken)26 Test (org.junit.Test)25 FrameworkException (org.structr.common.error.FrameworkException)25 Tx (org.structr.core.graph.Tx)25 StructrTest (org.structr.common.StructrTest)24 List (java.util.List)21 PropertyKey (org.structr.core.property.PropertyKey)20 NodeInterface (org.structr.core.graph.NodeInterface)12 StringProperty (org.structr.core.property.StringProperty)6 Date (java.util.Date)1 Random (java.util.Random)1 GraphObject (org.structr.core.GraphObject)1 App (org.structr.core.app.App)1 StructrApp (org.structr.core.app.StructrApp)1 Principal (org.structr.core.entity.Principal)1 SchemaNode (org.structr.core.entity.SchemaNode)1 EnumProperty (org.structr.core.property.EnumProperty)1