@@ -147,6 +147,54 @@ public function testResolvingArrayCollectionWithKey()
147
147
$ this ->assertInstanceOf (Types \Compound::class, $ valueType );
148
148
}
149
149
150
+ /**
151
+ * @covers ::__construct
152
+ * @covers ::resolve
153
+ *
154
+ * @uses \phpDocumentor\Reflection\Types\Context
155
+ * @uses \phpDocumentor\Reflection\Types\Compound
156
+ * @uses \phpDocumentor\Reflection\Types\Collection
157
+ * @uses \phpDocumentor\Reflection\Types\String_
158
+ */
159
+ public function testResolvingArrayCollectionWithKeyAndWhitespace ()
160
+ {
161
+ $ fixture = new TypeResolver ();
162
+
163
+ /** @var Collection $resolvedType */
164
+ $ resolvedType = $ fixture ->resolve ('array<string, object|array> ' , new Context ('' ));
165
+
166
+ $ this ->assertInstanceOf (Array_::class, $ resolvedType );
167
+ $ this ->assertSame ('array<string,object|array> ' , (string ) $ resolvedType );
168
+
169
+ /** @var Array_ $valueType */
170
+ $ valueType = $ resolvedType ->getValueType ();
171
+
172
+ /** @var Compound $keyType */
173
+ $ keyType = $ resolvedType ->getKeyType ();
174
+
175
+ $ this ->assertInstanceOf (Types \String_::class, $ keyType );
176
+ $ this ->assertInstanceOf (Types \Compound::class, $ valueType );
177
+ }
178
+
179
+ /**
180
+ * @covers ::__construct
181
+ * @covers ::resolve
182
+ *
183
+ * @expectedException \InvalidArgumentException
184
+ *
185
+ * @uses \phpDocumentor\Reflection\Types\Context
186
+ * @uses \phpDocumentor\Reflection\Types\Compound
187
+ * @uses \phpDocumentor\Reflection\Types\Collection
188
+ * @uses \phpDocumentor\Reflection\Types\String_
189
+ */
190
+ public function testResolvingArrayCollectionWithKeyAndTooManyWhitespace ()
191
+ {
192
+ $ fixture = new TypeResolver ();
193
+
194
+ /** @var Collection $resolvedType */
195
+ $ resolvedType = $ fixture ->resolve ('array<string, object|array> ' , new Context ('' ));
196
+ }
197
+
150
198
/**
151
199
* @covers ::__construct
152
200
* @covers ::resolve
0 commit comments