Search in sources :

Example 51 with NodeInterface

use of org.structr.core.graph.NodeInterface in project structr by structr.

the class ValidationTest method testDatePropertyNotNullValidation.

@Test
public void testDatePropertyNotNullValidation() {
    final String keyName = "notnull";
    final Class<NodeInterface> testType = createTypeWithProperty("Test", keyName, "+Date");
    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("Date property not null constraint violated!");
        } catch (FrameworkException fex) {
            final List<ErrorToken> tokens = fex.getErrorBuffer().getErrorTokens();
            final ErrorToken token = tokens.get(0);
            assertEquals("Invalid date validation result", 1, tokens.size());
            assertEquals("Invalid date validation result", 422, fex.getStatus());
            assertEquals("Invalid date validation result", keyName, token.getProperty());
            assertEquals("Invalid date validation result", "Test", token.getType());
            assertEquals("Invalid date 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 52 with NodeInterface

use of org.structr.core.graph.NodeInterface in project structr by structr.

the class ValidationTest method testIntPropertyNotNullValidation.

@Test
public void testIntPropertyNotNullValidation() {
    final String keyName = "notnull";
    final Class<NodeInterface> testType = createTypeWithProperty("Test", keyName, "+Integer");
    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("Int property not null constraint violated!");
        } catch (FrameworkException fex) {
            final List<ErrorToken> tokens = fex.getErrorBuffer().getErrorTokens();
            final ErrorToken token = tokens.get(0);
            assertEquals("Invalid int validation result", 1, tokens.size());
            assertEquals("Invalid int validation result", 422, fex.getStatus());
            assertEquals("Invalid int validation result", keyName, token.getProperty());
            assertEquals("Invalid int validation result", "Test", token.getType());
            assertEquals("Invalid int 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 53 with NodeInterface

use of org.structr.core.graph.NodeInterface in project structr by structr.

the class ValidationTest method testDoublePropertyRangeValidation4.

@Test
public void testDoublePropertyRangeValidation4() {
    final Class<NodeInterface> testType = createTypeWithProperty("Test", "range1", "+Double(]0.0,0.5])");
    final PropertyKey range1 = StructrApp.key(testType, "range1");
    checkRangeSuccess(testType, range1, 0.00001);
    checkRangeSuccess(testType, range1, 0.1);
    checkRangeSuccess(testType, range1, 0.2);
    checkRangeSuccess(testType, range1, 0.3);
    checkRangeSuccess(testType, range1, 0.4);
    checkRangeSuccess(testType, range1, 0.49999);
    checkRangeSuccess(testType, range1, 0.5);
    try {
        checkRangeError(testType, range1, -0.0);
    } catch (FrameworkException fex) {
        checkException(fex, 1, 422, "Test", "range1", "must_be_in_range");
    }
    try {
        checkRangeError(testType, range1, 0.0);
    } catch (FrameworkException fex) {
        checkException(fex, 1, 422, "Test", "range1", "must_be_in_range");
    }
    try {
        checkRangeError(testType, range1, -0.00001);
    } catch (FrameworkException fex) {
        checkException(fex, 1, 422, "Test", "range1", "must_be_in_range");
    }
    try {
        checkRangeError(testType, range1, 0.51);
    } catch (FrameworkException fex) {
        checkException(fex, 1, 422, "Test", "range1", "must_be_in_range");
    }
    try {
        checkRangeError(testType, range1, 1.51);
    } catch (FrameworkException fex) {
        checkException(fex, 1, 422, "Test", "range1", "must_be_in_range");
    }
}
Also used : FrameworkException(org.structr.common.error.FrameworkException) NodeInterface(org.structr.core.graph.NodeInterface) PropertyKey(org.structr.core.property.PropertyKey) StructrTest(org.structr.common.StructrTest) Test(org.junit.Test)

Example 54 with NodeInterface

use of org.structr.core.graph.NodeInterface in project structr by structr.

the class ValidationTest method testDoublePropertyRangeValidation3.

@Test
public void testDoublePropertyRangeValidation3() {
    final Class<NodeInterface> testType = createTypeWithProperty("Test", "range1", "+Double([0.0,0.5[)");
    final PropertyKey range1 = StructrApp.key(testType, "range1");
    checkRangeSuccess(testType, range1, -0.0);
    checkRangeSuccess(testType, range1, 0.0);
    checkRangeSuccess(testType, range1, 0.00001);
    checkRangeSuccess(testType, range1, 0.1);
    checkRangeSuccess(testType, range1, 0.2);
    checkRangeSuccess(testType, range1, 0.3);
    checkRangeSuccess(testType, range1, 0.4);
    checkRangeSuccess(testType, range1, 0.49999);
    try {
        checkRangeError(testType, range1, -0.00001);
    } catch (FrameworkException fex) {
        checkException(fex, 1, 422, "Test", "range1", "must_be_in_range");
    }
    try {
        checkRangeError(testType, range1, 0.5);
    } catch (FrameworkException fex) {
        checkException(fex, 1, 422, "Test", "range1", "must_be_in_range");
    }
    try {
        checkRangeError(testType, range1, 0.51);
    } catch (FrameworkException fex) {
        checkException(fex, 1, 422, "Test", "range1", "must_be_in_range");
    }
    try {
        checkRangeError(testType, range1, 1.51);
    } catch (FrameworkException fex) {
        checkException(fex, 1, 422, "Test", "range1", "must_be_in_range");
    }
}
Also used : FrameworkException(org.structr.common.error.FrameworkException) NodeInterface(org.structr.core.graph.NodeInterface) PropertyKey(org.structr.core.property.PropertyKey) StructrTest(org.structr.common.StructrTest) Test(org.junit.Test)

Example 55 with NodeInterface

use of org.structr.core.graph.NodeInterface in project structr by structr.

the class ValidationTest method testDoublePropertyUniquenessValidation.

// ----- double property validation tests -----
@Test
public void testDoublePropertyUniquenessValidation() {
    final String keyName = "unique";
    final Class<NodeInterface> testType = createTypeWithProperty("Test", keyName, "Double!");
    final PropertyKey key = StructrApp.key(testType, keyName);
    String uuid = null;
    if (key != null) {
        // test failure
        try (final Tx tx = app.tx()) {
            uuid = app.create(testType, new NodeAttribute<>(key, 0.123)).getUuid();
            app.create(testType, new NodeAttribute<>(key, 0.123));
            tx.success();
            fail("Double property uniqueness 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", "already_taken", token.getToken());
            assertEquals("Invalid double validation result", uuid, token.getDetail());
        }
    }
}
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)

Aggregations

NodeInterface (org.structr.core.graph.NodeInterface)186 FrameworkException (org.structr.common.error.FrameworkException)120 Tx (org.structr.core.graph.Tx)116 Test (org.junit.Test)81 PropertyKey (org.structr.core.property.PropertyKey)61 LinkedList (java.util.LinkedList)36 StructrTest (org.structr.common.StructrTest)29 PropertyMap (org.structr.core.property.PropertyMap)26 TestOne (org.structr.core.entity.TestOne)24 List (java.util.List)23 GraphObject (org.structr.core.GraphObject)22 App (org.structr.core.app.App)21 StructrApp (org.structr.core.app.StructrApp)21 GenericNode (org.structr.core.entity.GenericNode)21 Before (org.junit.Before)18 Result (org.structr.core.Result)18 AbstractRelationship (org.structr.core.entity.AbstractRelationship)16 Random (java.util.Random)15 RelationshipInterface (org.structr.core.graph.RelationshipInterface)14 ErrorToken (org.structr.common.error.ErrorToken)12