@@ -175,6 +175,30 @@ public function testSetAttribute(): void
175175 $ this ->assertEquals (['one ' ], $ this ->document ->getAttribute ('list ' , []));
176176 }
177177
178+ public function testSetAttributes (): void
179+ {
180+ $ document = new Document (['$id ' => ID ::custom ('' ), '$collection ' => 'users ' ]);
181+
182+ $ otherDocument = new Document ([
183+ '$id ' => ID ::custom ('new ' ),
184+ '$permissions ' => [
185+ Permission::read (Role::any ()),
186+ Permission::update (Role::user ('new ' )),
187+ Permission::delete (Role::user ('new ' )),
188+ ],
189+ 'email ' => 'joe@example.com ' ,
190+ 'prefs ' => new \stdClass (),
191+ ]);
192+
193+ $ document ->setAttributes ($ otherDocument ->getArrayCopy ());
194+
195+ $ this ->assertEquals ($ otherDocument ->getId (), $ document ->getId ());
196+ $ this ->assertEquals ('users ' , $ document ->getCollection ());
197+ $ this ->assertEquals ($ otherDocument ->getPermissions (), $ document ->getPermissions ());
198+ $ this ->assertEquals ($ otherDocument ->getAttribute ('email ' ), $ document ->getAttribute ('email ' ));
199+ $ this ->assertEquals ($ otherDocument ->getAttribute ('prefs ' ), $ document ->getAttribute ('prefs ' ));
200+ }
201+
178202 public function testRemoveAttribute (): void
179203 {
180204 $ this ->document ->removeAttribute ('list ' );
0 commit comments