@@ -31,7 +31,19 @@ public function testDefaultListIsNotCollection(): void
3131 $ subType = new PropertyTypePrimitive ('int ' , false );
3232 $ list = new PropertyTypeIterable ($ subType , false , false );
3333
34- $ this ->assertFalse ($ list ->isCollection ());
34+ $ this ->assertFalse ($ list ->isTraversable ());
35+ }
36+
37+ /**
38+ * @deprecated This only checks the behaviour of deprecated class {@see PropertyTypeArray}
39+ */
40+ public function testDefaultTraversableClassIsTraversableInterface (): void
41+ {
42+ $ subType = new PropertyTypePrimitive ('int ' , false );
43+ $ collection = new PropertyTypeArray ($ subType , false , false , true );
44+
45+ $ this ->assertTrue ($ collection ->isTraversable ());
46+ $ this ->assertSame (\Traversable::class, $ collection ->getTraversableClass ());
3547 }
3648
3749 /**
@@ -51,9 +63,9 @@ public function testExplicitCollectionClassIsKept(): void
5163 $ subType = new PropertyTypePrimitive ('int ' , false );
5264 $ collection = new PropertyTypeIterable ($ subType , false , false , ArrayCollection::class);
5365
54- $ this ->assertTrue ($ collection ->isCollection ());
55- $ this ->assertNotSame (Collection ::class, $ collection ->getCollectionClass ());
56- $ this ->assertSame (ArrayCollection::class, $ collection ->getCollectionClass ());
66+ $ this ->assertTrue ($ collection ->isTraversable ());
67+ $ this ->assertNotSame (\Traversable ::class, $ collection ->getTraversableClass ());
68+ $ this ->assertSame (ArrayCollection::class, $ collection ->getTraversableClass ());
5769 }
5870
5971 public function testMergeListWithClassCollection (): void
@@ -74,9 +86,9 @@ public function testMergeDefaultCollectionListWithClassCollection(): void
7486 $ result = $ defaultCollection ->merge ($ typeHintedCollection );
7587 $ this ->assertInstanceOf (PropertyTypeArray::class, $ result );
7688 /* @var PropertyTypeIterable $result */
77- $ this ->assertTrue ($ result ->isCollection ());
89+ $ this ->assertTrue ($ result ->isTraversable ());
7890 $ this ->assertSame ((string ) $ defaultCollection ->getSubType (), (string ) $ result ->getSubType ());
79- $ this ->assertSame (Collection ::class, $ result ->getCollectionClass ());
91+ $ this ->assertSame (\Traversable ::class, $ result ->getTraversableClass ());
8092 }
8193
8294 public function testMergeExplicitCollectionListWithClassCollection (): void
@@ -88,9 +100,9 @@ public function testMergeExplicitCollectionListWithClassCollection(): void
88100 $ result = $ explicitCollection ->merge ($ typeHintedCollection );
89101 $ this ->assertInstanceOf (PropertyTypeIterable::class, $ result );
90102 /* @var PropertyTypeIterable $result */
91- $ this ->assertTrue ($ result ->isCollection ());
103+ $ this ->assertTrue ($ result ->isTraversable ());
92104 $ this ->assertSame ((string ) $ explicitCollection ->getSubType (), (string ) $ result ->getSubType ());
93- $ this ->assertSame (ArrayCollection::class, $ result ->getCollectionClass ());
105+ $ this ->assertSame (ArrayCollection::class, $ result ->getTraversableClass ());
94106 }
95107
96108 public function testMergeExplicitCollectionListWithDefaultCollection (): void
@@ -102,9 +114,9 @@ public function testMergeExplicitCollectionListWithDefaultCollection(): void
102114 $ result = $ explicitCollection ->merge ($ defaultCollection );
103115 $ this ->assertInstanceOf (PropertyTypeIterable::class, $ result );
104116 /* @var PropertyTypeIterable $result */
105- $ this ->assertTrue ($ result ->isCollection ());
117+ $ this ->assertTrue ($ result ->isTraversable ());
106118 $ this ->assertSame ((string ) $ explicitCollection ->getSubType (), (string ) $ result ->getSubType ());
107- $ this ->assertSame (ArrayCollection::class, $ result ->getCollectionClass ());
119+ $ this ->assertSame (ArrayCollection::class, $ result ->getTraversableClass ());
108120 }
109121
110122 public function testMergeDefaultCollectionListWithExplicitCollection (): void
@@ -116,7 +128,7 @@ public function testMergeDefaultCollectionListWithExplicitCollection(): void
116128 $ result = $ defaultCollection ->merge ($ explicitCollection );
117129 $ this ->assertInstanceOf (PropertyTypeArray::class, $ result );
118130 /* @var PropertyTypeIterable $result */
119- $ this ->assertTrue ($ result ->isCollection ());
131+ $ this ->assertTrue ($ result ->isTraversable ());
120132 $ this ->assertSame ((string ) $ explicitCollection ->getSubType (), (string ) $ result ->getSubType ());
121133 $ this ->assertSame (Collection::class, $ result ->getCollectionClass ());
122134 }
@@ -130,9 +142,9 @@ public function testMergeClassCollectionWithExplicitCollectionList(): void
130142 $ result = $ typeHintedCollection ->merge ($ explicitCollection );
131143 $ this ->assertInstanceOf (PropertyTypeIterable::class, $ result );
132144 /* @var PropertyTypeIterable $result */
133- $ this ->assertTrue ($ result ->isCollection ());
145+ $ this ->assertTrue ($ result ->isTraversable ());
134146 $ this ->assertSame ((string ) $ explicitCollection ->getSubType (), (string ) $ result ->getSubType ());
135- $ this ->assertSame (ArrayCollection::class, $ result ->getCollectionClass ());
147+ $ this ->assertSame (ArrayCollection::class, $ result ->getTraversableClass ());
136148 }
137149
138150 public function testMergeListAndCollection (): void
@@ -144,8 +156,8 @@ public function testMergeListAndCollection(): void
144156 foreach ([$ list ->merge ($ collection ), $ collection ->merge ($ list )] as $ result ) {
145157 $ this ->assertInstanceOf (PropertyTypeIterable::class, $ result );
146158 /* @var PropertyTypeIterable $result */
147- $ this ->assertTrue ($ result ->isCollection ());
148- $ this ->assertSame (Collection::class, $ result ->getCollectionClass ());
159+ $ this ->assertTrue ($ result ->isTraversable ());
160+ $ this ->assertSame (Collection::class, $ result ->getTraversableClass ());
149161 $ this ->assertSame ((string ) $ list ->getSubType (), (string ) $ result ->getSubType ());
150162 }
151163 }
@@ -159,8 +171,8 @@ public function testMergeListWithExplicitCollectionClass(): void
159171 foreach ([$ list ->merge ($ collection ), $ collection ->merge ($ list )] as $ result ) {
160172 $ this ->assertInstanceOf (PropertyTypeIterable::class, $ result );
161173 /* @var PropertyTypeIterable $result */
162- $ this ->assertTrue ($ result ->isCollection ());
163- $ this ->assertSame (ArrayCollection::class, $ result ->getCollectionClass ());
174+ $ this ->assertTrue ($ result ->isTraversable ());
175+ $ this ->assertSame (ArrayCollection::class, $ result ->getTraversableClass ());
164176 $ this ->assertSame ((string ) $ list ->getSubType (), (string ) $ result ->getSubType ());
165177 }
166178 }
0 commit comments