Skip to content

Commit f38d4d0

Browse files
Error out early
1 parent 57c04d2 commit f38d4d0

File tree

1 file changed

+24
-20
lines changed

1 file changed

+24
-20
lines changed

src/Metadata/Api/DataProvider.php

Lines changed: 24 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -170,26 +170,7 @@ private function dataProvidedByMethods(ReflectionMethod $testMethod, MetadataCol
170170
}
171171

172172
foreach ($data as $key => $value) {
173-
if (is_int($key)) {
174-
$result[] = new ProvidedData($providerLabel, $value);
175-
} elseif (is_string($key)) {
176-
if (array_key_exists($key, $result)) {
177-
Event\Facade::emitter()->dataProviderMethodFinished(
178-
$testMethod,
179-
...$methodsCalled,
180-
);
181-
182-
throw new InvalidDataProviderException(
183-
sprintf(
184-
'The key "%s" has already been defined by provider %s',
185-
$key,
186-
$result[$key]->getProviderLabel(),
187-
),
188-
);
189-
}
190-
191-
$result[$key] = new ProvidedData($providerLabel, $value);
192-
} else {
173+
if (!is_int($key) && !is_string($key)) {
193174
// @codeCoverageIgnoreStart
194175
throw new InvalidDataProviderException(
195176
sprintf(
@@ -199,6 +180,29 @@ private function dataProvidedByMethods(ReflectionMethod $testMethod, MetadataCol
199180
);
200181
// @codeCoverageIgnoreEnd
201182
}
183+
184+
if (is_int($key)) {
185+
$result[] = new ProvidedData($providerLabel, $value);
186+
187+
continue;
188+
}
189+
190+
if (array_key_exists($key, $result)) {
191+
Event\Facade::emitter()->dataProviderMethodFinished(
192+
$testMethod,
193+
...$methodsCalled,
194+
);
195+
196+
throw new InvalidDataProviderException(
197+
sprintf(
198+
'The key "%s" has already been defined by provider %s',
199+
$key,
200+
$result[$key]->getProviderLabel(),
201+
),
202+
);
203+
}
204+
205+
$result[$key] = new ProvidedData($providerLabel, $value);
202206
}
203207
}
204208

0 commit comments

Comments
 (0)