structure_compare 0.1.5 → 0.1.6
Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c7e3a4d3ba5b971952f4c8b36cbc5625eddeef86
|
4
|
+
data.tar.gz: 696b6e7775ff575315164a84cd4156082f12d369
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a6ede945d269bfdebb0eb77783a9a3797d426e0b0198a3b801fd7b076be9790ac2f6116ac6282098b3af3ce5373108abb08a9eaa6af54348b026278a962d450e
|
7
|
+
data.tar.gz: dcead81b09f0223e65cc5a7120cbdf4059ec2c2a085c3170ae3ab4c1178915dbed9ae53b14c04f794e8a8a5e2b14e4fee23b5f4f2d2fe47ec76025ed9dd32fe5
|
@@ -92,16 +92,16 @@ module StructureCompare
|
|
92
92
|
|
93
93
|
if @options[:strict_key_order]
|
94
94
|
if expected_keys != actual_keys
|
95
|
-
not_equal_error!(
|
95
|
+
not_equal_error!(failure_message)
|
96
96
|
end
|
97
97
|
else
|
98
98
|
# NOTE: first did this with sorting, but can't sort mixed type keys
|
99
99
|
all_keys_present = (
|
100
|
-
expected_keys.all?{ |key|
|
101
|
-
actual_keys.all?{ |key|
|
100
|
+
expected_keys.all?{ |key| actual_keys.include?(key) } &&
|
101
|
+
actual_keys.all?{ |key| expected_keys.include?(key) }
|
102
102
|
)
|
103
103
|
if !all_keys_present
|
104
|
-
not_equal_error!(
|
104
|
+
not_equal_error!(failure_message)
|
105
105
|
end
|
106
106
|
end
|
107
107
|
end
|
@@ -113,7 +113,7 @@ module StructureCompare
|
|
113
113
|
def check_kind_of!(expected, actual)
|
114
114
|
unless actual.kind_of?(expected.class)
|
115
115
|
failure_message = "expected #{actual.class.to_s} to be kind of #{expected.class.to_s}"
|
116
|
-
not_equal_error!(
|
116
|
+
not_equal_error!(failure_message)
|
117
117
|
end
|
118
118
|
end
|
119
119
|
|
@@ -128,7 +128,7 @@ module StructureCompare
|
|
128
128
|
|
129
129
|
if !is_equal
|
130
130
|
failure_message ||= "expected: #{expected.inspect}, got: #{actual.inspect}"
|
131
|
-
not_equal_error!(
|
131
|
+
not_equal_error!(failure_message)
|
132
132
|
end
|
133
133
|
end
|
134
134
|
|
@@ -142,7 +142,7 @@ module StructureCompare
|
|
142
142
|
end
|
143
143
|
|
144
144
|
# TODO make this part of an overridden exception?
|
145
|
-
def not_equal_error!(
|
145
|
+
def not_equal_error!(failure_message)
|
146
146
|
@error = failure_message
|
147
147
|
raise StructuresNotEqualError.new() # TODO error message, path
|
148
148
|
end
|
@@ -17,6 +17,12 @@ class StructureCompareTest < MiniTest::Test
|
|
17
17
|
assert_structures_equal({a: 1, b: 2}, {b: 2, a: 1})
|
18
18
|
assert_structures_equal({a: 1, b: 2}, {b: 2, a: 1}, strict_key_order: false)
|
19
19
|
refute_structures_equal({a: 1, b: 2}, {b: 2, a: 1}, strict_key_order: true)
|
20
|
+
|
21
|
+
# this was a bug with combining relaxed key order and indifferent access
|
22
|
+
assert_structures_equal(
|
23
|
+
{a: 1, b: 2}, {"b": 2, "a": 1},
|
24
|
+
strict_key_order: false, indifferent_access: true
|
25
|
+
)
|
20
26
|
end
|
21
27
|
|
22
28
|
def test_compares_leaf_value_types
|