|
2 | 2 |
|
3 | 3 | namespace MabeEnumTest; |
4 | 4 |
|
| 5 | +use AssertionError; |
5 | 6 | use InvalidArgumentException; |
6 | 7 | use LogicException; |
7 | 8 | use MabeEnum\Enum; |
@@ -274,15 +275,63 @@ public function testInstantiateUsingMagicMethod() |
274 | 275 | $this->assertSame(EnumInheritance::ONE, $enum->getValue()); |
275 | 276 | } |
276 | 277 |
|
277 | | - public function testAmbiguousConstantsThrowsLogicException() |
| 278 | + public function testEnabledAssertAmbiguousEnumeratorValues() |
| 279 | + { |
| 280 | + assert_options(ASSERT_ACTIVE, 1); |
| 281 | + assert_options(ASSERT_WARNING, 1); |
| 282 | + assert_options(ASSERT_BAIL, 0); |
| 283 | + assert_options(ASSERT_QUIET_EVAL, 0); |
| 284 | + if (\PHP_VERSION_ID >= 70000) { |
| 285 | + $this->expectException(AssertionError::class); |
| 286 | + } elseif (defined('HHVM_VERSION')) { |
| 287 | + try { |
| 288 | + EnumAmbiguous::get('unknown'); |
| 289 | + } catch (\Exception $e) { |
| 290 | + var_dump($e); |
| 291 | + } |
| 292 | + } |
| 293 | + |
| 294 | + EnumAmbiguous::get('unknown'); |
| 295 | + } |
| 296 | + |
| 297 | + public function testDisabledAssertAmbiguousEnumeratorValues() |
278 | 298 | { |
279 | | - $this->expectException(LogicException::class); |
| 299 | + assert_options(ASSERT_ACTIVE, 0); |
| 300 | + assert_options(ASSERT_WARNING, 1); |
| 301 | + assert_options(ASSERT_BAIL, 0); |
| 302 | + assert_options(ASSERT_QUIET_EVAL, 0); |
| 303 | + $this->expectException(InvalidArgumentException::class); |
| 304 | + |
280 | 305 | EnumAmbiguous::get('unknown'); |
281 | 306 | } |
282 | 307 |
|
283 | | - public function testExtendedAmbiguousCanstantsThrowsLogicException() |
| 308 | + public function testExtendedEnabledAssertAmbiguousEnumeratorValues() |
| 309 | + { |
| 310 | + assert_options(ASSERT_ACTIVE, 1); |
| 311 | + assert_options(ASSERT_WARNING, 1); |
| 312 | + assert_options(ASSERT_BAIL, 0); |
| 313 | + assert_options(ASSERT_QUIET_EVAL, 0); |
| 314 | + if (\PHP_VERSION_ID >= 70000) { |
| 315 | + $this->expectException(AssertionError::class); |
| 316 | + } elseif (defined('HHVM_VERSION')) { |
| 317 | + try { |
| 318 | + EnumExtendedAmbiguous::get('unknown'); |
| 319 | + } catch (\Exception $e) { |
| 320 | + var_dump($e); |
| 321 | + } |
| 322 | + } |
| 323 | + |
| 324 | + EnumExtendedAmbiguous::get('unknown'); |
| 325 | + } |
| 326 | + |
| 327 | + public function testExtendedDisabledAssertAmbiguousEnumeratorValues() |
284 | 328 | { |
285 | | - $this->expectException(LogicException::class); |
| 329 | + assert_options(ASSERT_ACTIVE, 0); |
| 330 | + assert_options(ASSERT_WARNING, 1); |
| 331 | + assert_options(ASSERT_BAIL, 0); |
| 332 | + assert_options(ASSERT_QUIET_EVAL, 0); |
| 333 | + $this->expectException(InvalidArgumentException::class); |
| 334 | + |
286 | 335 | EnumExtendedAmbiguous::get('unknown'); |
287 | 336 | } |
288 | 337 |
|
|
0 commit comments