Sha256: a8e12abdd44514dd871b9da117146d31bf880bc0aafe1804a4df1f03edbae85a

Contents?: true

Size: 1.2 KB

Versions: 2

Compression:

Stored size: 1.2 KB

Contents

require 'rspec'
require 'rspec-deep-ignore-order-matcher'

describe Deep::Ignore::Order::Matcher do

	it 'should matches usual values' do
		['an_string', 1, 13.5, nil, [1, 2, 3], { a: 1, b: 2 }].each_slice(2) do |value1, value2|
			value1.should be_deep_equal value1
			value2.should be_deep_equal value2
			value1.should_not be_deep_equal value2
			value2.should_not be_deep_equal value1
		end
	end

	it 'should ignore order in plain arrays' do
		actual = Array.new(5) { Random.rand(1000) }
		expected = actual.sort
		actual.should be_deep_equal expected
	end

	it 'should match deep structs' do
		actual = [{ a: 1, b: 'str', c: [1, 2, 3] }, [{ a: [2, { a: 4 }] }, { b: 2 }, { c: 3 }]]
		expected = [{ a: 1, b: 'str', c: [3, 1, 2] }, [{ b: 2 }, { a: [{ a: 4 }, 2] }, { c: 3 }]]
		actual.should be_deep_equal expected
		actual[0][:c].push(4)
		actual.should_not be_deep_equal expected
	end

	it 'should do not match partials' do
		[1, 2, 3].should_not be_deep_equal [1, 2]
		[1, 2].should_not be_deep_equal [1, 2, 3]
		{ a: 1, b: 2 }.should_not be_deep_equal({ a: 1 })
		{ a: 1 }.should_not be_deep_equal({ a: 1, b: 2 })
	end

	it 'should ignore hash keys order' do
		{ a: 1, b: 2 }.should be_deep_equal({ b: 2, a: 1 })
	end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
rspec-deep-ignore-order-matcher-0.0.4 spec/matcher_spec.rb
rspec-deep-ignore-order-matcher-0.0.3 spec/matcher_spec.rb