summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorAlexei Rousskikh <ext-alexei.rousskikh@nokia.com>2012-02-08 09:16:41 -0500
committerAndrew Christian <andrew.christian@nokia.com>2012-02-08 17:18:41 +0100
commit1bafa9fae27587a126c03893031cb370df505dca (patch)
tree3954097605ebb07e89a481282cb334b53f6ce1a0 /tests
parentf8dc69764d193b75bde667e2eefaa45fc909306d (diff)
fixed exclusiveMin/Max; implemented divisibleBy attribute
Change-Id: I28e43e1c8cbecae0d8c7aef6fc84ef5656c45cea Reviewed-by: Andrew Christian <andrew.christian@nokia.com>
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/jsonschema/tst_jsonschema.cpp39
1 files changed, 33 insertions, 6 deletions
diff --git a/tests/auto/jsonschema/tst_jsonschema.cpp b/tests/auto/jsonschema/tst_jsonschema.cpp
index 16e0704..8bd090a 100644
--- a/tests/auto/jsonschema/tst_jsonschema.cpp
+++ b/tests/auto/jsonschema/tst_jsonschema.cpp
@@ -55,28 +55,39 @@ private slots:
void testTypeValidation();
// 5.2 properties
void testProperitesValidation();
+ // TODO: 5.3 patternProperties
+ // TODO: 5.4 additionalProperties
// 5.5 items
void testItemsValidation();
+ // TODO: 5.6 additionalItems
// 5.7
void testRequiredValidation();
+ // TODO: 5.8 dependencies
// 5.9, 5.10
void testMinimumMaximumValidation();
// 5.11, 5.12
void testExclusiveMinimumExclusiveMaximumValidation();
// 5.13, 5.14
void testMinMaxItemsValidation();
+ // TODO: 5.15 uniqueItems
// 5.16
void testPatternValidation();
// 5.17, 5.18
void testMinMaxLengthValidation();
// 5.19
void testEnum();
+ // TODO: 5.20 default
// 5.21
void testTitleValidation();
// 5.22
void testDescriptionValidation();
+ // TODO: 5.23 format
+ // 5.24
+ void testDivisibleByValidation();
+ // TODO: 5.25 disallow
// 5.26
void testExtendsValidation();
+ // TODO: 5.27 id
// 5.28
void testRefValidation();
@@ -230,27 +241,27 @@ void tst_JsonSchema::testMinimumMaximumValidation()
// 5.11, 5.12
void tst_JsonSchema::testExclusiveMinimumExclusiveMaximumValidation()
{
- //true
- QVERIFY(!validate(QJsonValue(0), "{ \"exclusiveMinimum\" : false, \"exclusiveMaximum\" : false }")); //illegal
- /*FIX QVERIFY(validate(QJsonValue(1), "{ \"minimum\" : 1, \"maximum\" : 10, \"exclusiveMinimum\" : false, \"exclusiveMaximum\" : false }"));
+ //valid
+ QVERIFY(validate(QJsonValue(1), "{ \"minimum\" : 1, \"maximum\" : 10, \"exclusiveMinimum\" : false, \"exclusiveMaximum\" : false }"));
QVERIFY(validate(QJsonValue(5), "{ \"minimum\" : 1, \"maximum\" : 10, \"exclusiveMinimum\" : false, \"exclusiveMaximum\" : false }"));
QVERIFY(validate(QJsonValue(10), "{ \"minimum\" : 1, \"maximum\" : 10, \"exclusiveMinimum\" : false, \"exclusiveMaximum\" : false }"));
QVERIFY(validate(QJsonValue(1), "{ \"minimum\" : 1, \"maximum\" : 1, \"exclusiveMinimum\" : false, \"exclusiveMaximum\" : false }"));
+ // invalid
QVERIFY(!validate(QJsonValue(0), "{ \"minimum\" : 1, \"maximum\" : 10, \"exclusiveMinimum\" : false, \"exclusiveMaximum\" : false }"));
QVERIFY(!validate(QJsonValue(11), "{ \"minimum\" : 1, \"maximum\" : 10, \"exclusiveMinimum\" : false, \"exclusiveMaximum\" : false }"));
- //false
- QVERIFY(!validate(QJsonValue(0), "{ \"exclusiveMinimum\" : true, \"exclusiveMaximum\" : true }")); //illegal
+ //valid
QVERIFY(validate(QJsonValue(1.0001), "{ \"minimum\" : 1, \"maximum\" : 10, \"exclusiveMinimum\" : true, \"exclusiveMaximum\" : true }"));
QVERIFY(validate(QJsonValue(5), "{ \"minimum\" : 1, \"maximum\" : 10, \"exclusiveMinimum\" : true, \"exclusiveMaximum\" : true }"));
QVERIFY(validate(QJsonValue(9.9999), "{ \"minimum\" : 1, \"maximum\" : 10, \"exclusiveMinimum\" : true, \"exclusiveMaximum\" : true }"));
+ // invalid
QVERIFY(!validate(QJsonValue(1), "{ \"minimum\" : 1, \"maximum\" : 10, \"exclusiveMinimum\" : true, \"exclusiveMaximum\" : true }"));
QVERIFY(!validate(QJsonValue(10), "{ \"minimum\" : 1, \"maximum\" : 10, \"exclusiveMinimum\" : true, \"exclusiveMaximum\" : true }"));
QVERIFY(!validate(QJsonValue(1), "{ \"minimum\" : 1, \"maximum\" : 1, \"exclusiveMinimum\" : true, \"exclusiveMaximum\" : true }"));
QVERIFY(!validate(QJsonValue(0), "{ \"minimum\" : 1, \"maximum\" : 10, \"exclusiveMinimum\" : true, \"exclusiveMaximum\" : true }"));
- QVERIFY(!validate(QJsonValue(11), "{ \"minimum\" : 1, \"maximum\" : 10, \"exclusiveMinimum\" : true, \"exclusiveMaximum\" : true }"));*/
+ QVERIFY(!validate(QJsonValue(11), "{ \"minimum\" : 1, \"maximum\" : 10, \"exclusiveMinimum\" : true, \"exclusiveMaximum\" : true }"));
}
// 5.13, 5.14
@@ -331,6 +342,22 @@ void tst_JsonSchema::testDescriptionValidation()
{
}
+// 5.24
+void tst_JsonSchema::testDivisibleByValidation()
+{
+ QVERIFY(validate(QJsonValue(0), "{ \"divisibleBy\" : 1 }"));
+ QVERIFY(validate(QJsonValue(10), "{ \"divisibleBy\" : 5 }"));
+ QVERIFY(validate(QJsonValue(10), "{ \"divisibleBy\" : 10 }"));
+ QVERIFY(validate(QJsonValue(0), "{ \"divisibleBy\" : 2.5 }"));
+ QVERIFY(validate(QJsonValue(5), "{ \"divisibleBy\" : 2.5 }"));
+ QVERIFY(validate(QJsonValue(7.5), "{ \"divisibleBy\" : 2.5 }"));
+
+ QVERIFY(!validate(QJsonValue(0), "{ \"divisibleBy\" : 0 }"));
+ QVERIFY(!validate(QJsonValue(7), "{ \"divisibleBy\" : 5 }"));
+ QVERIFY(!validate(QJsonValue(4.5), "{ \"divisibleBy\" : 2 }"));
+ QVERIFY(!validate(QJsonValue(7.5), "{ \"divisibleBy\" : 1.8 }"));
+};
+
// 5.26
void tst_JsonSchema::testExtendsValidation()
{