@@ -83,7 +83,7 @@ public function testToDocumentProducesCorrectStructure(): void
8383 documentSecurity: true ,
8484 );
8585
86- $ doc = $ collection-> toDocument () ;
86+ $ doc = $ collection ;
8787
8888 $ this ->assertInstanceOf (Document::class, $ doc );
8989 $ this ->assertSame ('accounts ' , $ doc ->getId ());
@@ -99,17 +99,15 @@ public function testToDocumentProducesCorrectStructure(): void
9999 public function testToDocumentUsesIdWhenNameEmpty (): void
100100 {
101101 $ collection = new Collection (id: 'myCol ' , name: '' );
102- $ doc = $ collection ->toDocument ();
103102
104- $ this ->assertSame ('myCol ' , $ doc ->getAttribute ('name ' ));
103+ $ this ->assertSame ('myCol ' , $ collection ->getAttribute ('name ' ));
105104 }
106105
107106 public function testToDocumentPreservesNameWhenSet (): void
108107 {
109108 $ collection = new Collection (id: 'myCol ' , name: 'My Collection ' );
110- $ doc = $ collection ->toDocument ();
111109
112- $ this ->assertSame ('My Collection ' , $ doc ->getAttribute ('name ' ));
110+ $ this ->assertSame ('My Collection ' , $ collection ->getAttribute ('name ' ));
113111 }
114112
115113 public function testFromDocumentRoundtrip (): void
@@ -126,8 +124,7 @@ public function testFromDocumentRoundtrip(): void
126124 documentSecurity: false ,
127125 );
128126
129- $ doc = $ original ->toDocument ();
130- $ restored = Collection::fromDocument ($ doc );
127+ $ restored = Collection::fromArray ($ original ->getArrayCopy ());
131128
132129 $ this ->assertSame ($ original ->id , $ restored ->id );
133130 $ this ->assertSame ($ original ->name , $ restored ->name );
@@ -137,14 +134,13 @@ public function testFromDocumentRoundtrip(): void
137134 $ this ->assertSame ($ original ->attributes [0 ]->key , $ restored ->attributes [0 ]->key );
138135 $ this ->assertSame ($ original ->indexes [0 ]->key , $ restored ->indexes [0 ]->key );
139136 $ this ->assertInstanceOf (StringType::class, $ restored ->attributes [0 ]);
140- $ this ->assertInstanceOf (Attribute::class, $ doc ->getAttribute ('attributes ' )[0 ]);
141- $ this ->assertInstanceOf (Index::class, $ doc ->getAttribute ('indexes ' )[0 ]);
137+ $ this ->assertInstanceOf (Attribute::class, $ original ->getAttribute ('attributes ' )[0 ]);
138+ $ this ->assertInstanceOf (Index::class, $ original ->getAttribute ('indexes ' )[0 ]);
142139 }
143140
144- public function testFromDocumentWithEmptyDocument (): void
141+ public function testFromArrayWithEmptyPayload (): void
145142 {
146- $ doc = new Document ();
147- $ collection = Collection::fromDocument ($ doc );
143+ $ collection = Collection::fromArray ([]);
148144
149145 $ this ->assertSame ('' , $ collection ->id );
150146 $ this ->assertSame ('' , $ collection ->name );
@@ -165,11 +161,10 @@ public function testWithMultipleAttributes(): void
165161
166162 $ collection = new Collection (id: 'users ' , attributes: $ attrs );
167163
168- $ doc = $ collection ->toDocument ();
169- $ restoredAttrs = $ doc ->getAttribute ('attributes ' );
164+ $ restoredAttrs = $ collection ->getAttribute ('attributes ' );
170165 $ this ->assertCount (4 , $ restoredAttrs );
171166
172- $ restored = Collection::fromDocument ( $ doc );
167+ $ restored = Collection::fromArray ( $ collection -> getArrayCopy () );
173168 $ this ->assertCount (4 , $ restored ->attributes );
174169 $ this ->assertSame ('name ' , $ restored ->attributes [0 ]->key );
175170 $ this ->assertSame ('active ' , $ restored ->attributes [3 ]->key );
@@ -189,10 +184,9 @@ public function testWithMultipleIndexes(): void
189184
190185 $ collection = new Collection (id: 'users ' , indexes: $ indexes );
191186
192- $ doc = $ collection ->toDocument ();
193- $ this ->assertCount (3 , $ doc ->getAttribute ('indexes ' ));
187+ $ this ->assertCount (3 , $ collection ->getAttribute ('indexes ' ));
194188
195- $ restored = Collection::fromDocument ( $ doc );
189+ $ restored = Collection::fromArray ( $ collection -> getArrayCopy () );
196190 $ this ->assertCount (3 , $ restored ->indexes );
197191 $ this ->assertSame ('idx_compound ' , $ restored ->indexes [2 ]->key );
198192 }
@@ -207,26 +201,23 @@ public function testWithPermissions(): void
207201 ];
208202
209203 $ collection = new Collection (id: 'posts ' , permissions: $ permissions );
210- $ doc = $ collection ->toDocument ();
211204
212- $ this ->assertCount (4 , $ doc ->getPermissions ());
213- $ this ->assertContains (Permission::read (Role::any ()), $ doc ->getPermissions ());
205+ $ this ->assertCount (4 , $ collection ->getPermissions ());
206+ $ this ->assertContains (Permission::read (Role::any ()), $ collection ->getPermissions ());
214207 }
215208
216209 public function testDocumentSecurityTrue (): void
217210 {
218211 $ collection = new Collection (id: 'secure ' , documentSecurity: true );
219- $ doc = $ collection ->toDocument ();
220212
221- $ this ->assertTrue ($ doc ->getAttribute ('documentSecurity ' ));
213+ $ this ->assertTrue ($ collection ->getAttribute ('documentSecurity ' ));
222214 }
223215
224216 public function testDocumentSecurityFalse (): void
225217 {
226218 $ collection = new Collection (id: 'insecure ' , documentSecurity: false );
227- $ doc = $ collection ->toDocument ();
228219
229- $ this ->assertFalse ($ doc ->getAttribute ('documentSecurity ' ));
220+ $ this ->assertFalse ($ collection ->getAttribute ('documentSecurity ' ));
230221 }
231222
232223 public function testFromDocumentPreservesPermissions (): void
@@ -236,16 +227,14 @@ public function testFromDocumentPreservesPermissions(): void
236227 Permission::create (Role::any ()),
237228 ];
238229
239- $ doc = new Document ([
230+ $ collection = Collection:: fromArray ([
240231 '$id ' => 'test ' ,
241232 '$permissions ' => $ permissions ,
242233 'name ' => 'test ' ,
243234 'attributes ' => [],
244235 'indexes ' => [],
245236 'documentSecurity ' => true ,
246237 ]);
247-
248- $ collection = Collection::fromDocument ($ doc );
249238 $ this ->assertNotNull ($ collection ->permissions );
250239 $ this ->assertCount (2 , $ collection ->permissions );
251240 }
@@ -255,8 +244,7 @@ public function testAttributeModelsStayModels(): void
255244 $ attr = Attribute::string (key: 'title ' , size: 64 );
256245 $ collection = new Collection (id: 'articles ' , attributes: [$ attr ]);
257246
258- $ doc = $ collection ->toDocument ();
259- $ attributes = $ doc ->getAttribute ('attributes ' );
247+ $ attributes = $ collection ->getAttribute ('attributes ' );
260248
261249 $ this ->assertInstanceOf (Attribute::class, $ attributes [0 ]);
262250 $ this ->assertSame ('title ' , $ attributes [0 ]->key );
@@ -268,8 +256,7 @@ public function testIndexModelsStayModels(): void
268256 $ idx = Index::fullText (key: 'idx_test ' , attributes: ['body ' ]);
269257 $ collection = new Collection (id: 'articles ' , indexes: [$ idx ]);
270258
271- $ doc = $ collection ->toDocument ();
272- $ indexes = $ doc ->getAttribute ('indexes ' );
259+ $ indexes = $ collection ->getAttribute ('indexes ' );
273260
274261 $ this ->assertInstanceOf (Index::class, $ indexes [0 ]);
275262 $ this ->assertSame ('idx_test ' , $ indexes [0 ]->key );
0 commit comments