1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140
|
require File.expand_path('../support/test_helper', __FILE__)
class Draft1Test < Minitest::Test
def validation_errors(schema, data, options)
super(schema, data, :version => :draft1)
end
def exclusive_minimum
{ 'minimumCanEqual' => false }
end
def exclusive_maximum
{ 'maximumCanEqual' => false }
end
include ArrayValidation::ItemsTests
include EnumValidation::General
include EnumValidation::V1_V2
include NumberValidation::MinMaxTests
include ObjectValidation::AdditionalPropertiesTests
include StrictValidation
include StringValidation::ValueTests
include StringValidation::FormatTests
include StringValidation::DateAndTimeFormatTests
include TypeValidation::SimpleTypeTests
include TypeValidation::AnyTypeTests
include TypeValidation::SchemaUnionTypeTests
def test_optional
# Set up the default datatype
schema = {
"properties" => {
"a" => {"type" => "string"}
}
}
data = {}
refute_valid schema, data
data['a'] = "Hello"
assert_valid schema, data
schema = {
"properties" => {
"a" => {"type" => "integer", "optional" => "true"}
}
}
data = {}
assert_valid schema, data
end
def test_max_decimal
# Set up the default datatype
schema = {
"properties" => {
"a" => {"maxDecimal" => 2}
}
}
data = {
"a" => nil
}
data["a"] = 3.35
assert_valid schema, data
data["a"] = 3.455
refute_valid schema, data
schema["properties"]["a"]["maxDecimal"] = 0
data["a"] = 4.0
refute_valid schema, data
data["a"] = 'boo'
assert_valid schema, data
data["a"] = 5
assert_valid schema, data
end
def test_disallow
# Set up the default datatype
schema = {
"properties" => {
"a" => {"disallow" => "integer"}
}
}
data = {
"a" => nil
}
data["a"] = 'string'
assert_valid schema, data
data["a"] = 5
refute_valid schema, data
schema["properties"]["a"]["disallow"] = ["integer","string"]
data["a"] = 'string'
refute_valid schema, data
data["a"] = 5
refute_valid schema, data
data["a"] = false
assert_valid schema, data
end
def test_format_datetime
schema = {
"type" => "object",
"properties" => { "a" => {"type" => "string", "format" => "date-time"}}
}
assert_valid schema, {"a" => "2010-01-01T12:00:00Z"}
refute_valid schema, {"a" => "2010-01-32T12:00:00Z"}
refute_valid schema, {"a" => "2010-13-01T12:00:00Z"}
refute_valid schema, {"a" => "2010-01-01T24:00:00Z"}
refute_valid schema, {"a" => "2010-01-01T12:60:00Z"}
refute_valid schema, {"a" => "2010-01-01T12:00:60Z"}
refute_valid schema, {"a" => "2010-01-01T12:00:00z"}
refute_valid schema, {"a" => "2010-01-0112:00:00Z"}
refute_valid schema, {"a" => "2010-01-01T12:00:00Z\nabc"}
end
end
|