File tree Expand file tree Collapse file tree 1 file changed +45
-16
lines changed Expand file tree Collapse file tree 1 file changed +45
-16
lines changed Original file line number Diff line number Diff line change @@ -58,23 +58,22 @@ class Person
5858 end
5959
6060 describe 'when one of attribute is array' do
61- let ( :person ) do
62- Person . new (
63- addresses : [
64- {
65- street : 'Street 1/2' ,
66- city : {
67- name : 'NYC'
68- }
69- } ,
70- {
71- street : 'Street 3/2' ,
72- city : {
73- name : 'Moscow'
74- }
61+ let ( :person ) { Person . new addresses : addresses }
62+ let ( :addresses ) do
63+ [
64+ {
65+ street : 'Street 1/2' ,
66+ city : {
67+ name : 'NYC'
7568 }
76- ]
77- )
69+ } ,
70+ {
71+ street : 'Street 3/2' ,
72+ city : {
73+ name : 'Moscow'
74+ }
75+ }
76+ ]
7877 end
7978
8079 it 'allows embedded values' do
@@ -105,6 +104,36 @@ class Person
105104 person . addresses [ 0 ] . must_be_instance_of Address
106105 end
107106
107+ describe 'array of ShallowAttributes objects' do
108+ let ( :addresses ) { [ address_1 , address_2 ] }
109+ let ( :address_1 ) do
110+ Address . new (
111+ street : 'Street 1/2' ,
112+ city : {
113+ name : 'NYC'
114+ }
115+ )
116+ end
117+ let ( :address_2 ) do
118+ Address . new (
119+ street : 'Street 3/2' ,
120+ city : {
121+ name : 'Moscow'
122+ }
123+ )
124+ end
125+
126+ it 'allows embedded values' do
127+ person . addresses . count . must_equal 2
128+
129+ person . addresses [ 0 ] . street . must_equal 'Street 1/2'
130+ person . addresses [ 0 ] . city . name . must_equal 'NYC'
131+
132+ person . addresses [ 1 ] . street . must_equal 'Street 3/2'
133+ person . addresses [ 1 ] . city . name . must_equal 'Moscow'
134+ end
135+ end
136+
108137 describe '#attributes' do
109138 it 'returns attributes hash' do
110139 hash = person . attributes
You can’t perform that action at this time.
0 commit comments