@@ -147,6 +147,54 @@ public function testResolvingArrayCollectionWithKey()
147147 $ this ->assertInstanceOf (Types \Compound::class, $ valueType );
148148 }
149149
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+
150198 /**
151199 * @covers ::__construct
152200 * @covers ::resolve
0 commit comments