File tree Expand file tree Collapse file tree 1 file changed +45
-17
lines changed Expand file tree Collapse file tree 1 file changed +45
-17
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- }
75- }
76- ]
77- )
61+ let ( :person ) { Person . new addresses : [ address_1 , address_2 ] }
62+ let ( :address_1 ) do
63+ {
64+ street : 'Street 1/2' ,
65+ city : {
66+ name : 'NYC'
67+ }
68+ }
69+ end
70+ let ( :address_2 ) do
71+ {
72+ street : 'Street 3/2' ,
73+ city : {
74+ name : 'Moscow'
75+ }
76+ }
7877 end
7978
8079 it 'allows embedded values' do
@@ -105,6 +104,35 @@ class Person
105104 person . addresses [ 0 ] . must_be_instance_of Address
106105 end
107106
107+ describe 'array of ShallowAttributes objects' do
108+ let ( :address_1 ) do
109+ Address . new (
110+ street : 'Street 1/2' ,
111+ city : {
112+ name : 'NYC'
113+ }
114+ )
115+ end
116+ let ( :address_2 ) do
117+ Address . new (
118+ street : 'Street 3/2' ,
119+ city : {
120+ name : 'Moscow'
121+ }
122+ )
123+ end
124+
125+ it 'allows embedded ShallowAttributes objects' do
126+ person . addresses . count . must_equal 2
127+
128+ person . addresses [ 0 ] . street . must_equal 'Street 1/2'
129+ person . addresses [ 0 ] . city . name . must_equal 'NYC'
130+
131+ person . addresses [ 1 ] . street . must_equal 'Street 3/2'
132+ person . addresses [ 1 ] . city . name . must_equal 'Moscow'
133+ end
134+ end
135+
108136 describe '#attributes' do
109137 it 'returns attributes hash' do
110138 hash = person . attributes
You can’t perform that action at this time.
0 commit comments