Sha256: edb19cfeefef96127954a5c510bd21fb117baea10fb5e29cd9fbd46ebb2ade33
Contents?: true
Size: 1.88 KB
Versions: 1
Compression:
Stored size: 1.88 KB
Contents
require 'spec_helper' module Alf module Engine describe ToArray do subject{ ToArray.new(rel, ordering).to_a } context 'when ordering is nil' do let(:rel){[ {name: "Jones", parts: Relation::DEE}, {name: "Smith", parts: Relation::DUM} ]} let(:ordering){ nil } let(:expected){[ {name: "Jones", parts: [{}]}, {name: "Smith", parts: []} ]} it{ should eq(expected) } end context 'when both empty' do let(:rel) { [] } let(:ordering){ Ordering::EMPTY } it{ should eq(rel) } end context 'when ascending on single attribute' do let(:rel){[ {name: "Jones"}, {name: "Smith"} ]} let(:ordering){ Ordering.new([[:name, :asc]]) } it{ should eq(rel) } end context 'when descending on single attribute' do let(:rel){[ {name: "Jones"}, {name: "Smith"} ]} let(:ordering){ Ordering.new([[:name, :desc]]) } it{ should eq(rel.reverse) } end context 'when TVAs are involved' do let(:rel){[ {name: "Jones", hobby: { score: 10 }}, {name: "Jones", hobby: { score: 12 }} ]} let(:ordering){ Ordering.new([[:name, :asc], [[:hobby, :score], :desc]]) } it{ should eq(rel.reverse) } end context 'when RVAs are involved' do let(:rel){[ {name: "Smith", rva: Relation(id: [8, 7]) }, {name: "Jones", rva: Relation(id: [1, 3]) } ]} let(:expected){[ {name: "Jones", rva: [{id: 1}, {id: 3}] }, {name: "Smith", rva: [{id: 7}, {id: 8}] } ]} let(:ordering){ Ordering.new([[:name, :asc], [[:rva, :id], :asc]]) } it{ should eq(expected) } end end # describe ToArray end # module Engine end # module Alf
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
alf-core-0.15.0 | spec/unit/alf-engine/test_to_array.rb |