assertNotEmpty( self::$serviceOptionsAccessLog, 'You need to pass LoggedServiceOptions to your class instead of ServiceOptions ' . 'for TestAllServiceOptionsUsed to work.' ); list( $expected, $actual ) = self::$serviceOptionsAccessLog; $expected = array_diff( $expected, $expectedUnused ); $this->assertSame( [], array_diff( $expected, array_keys( $actual ) ), "Some ServiceOptions keys were not accessed in tests. If they really aren't used, " . "remove them from the class' option list. If they are used, add tests to cover them, " . "or ignore the problem for now by passing them to assertAllServiceOptionsUsed() in " . "its \$expectedUnused argument." ); if ( $expectedUnused ) { $this->markTestIncomplete( 'Some ServiceOptions keys are not yet accessed by tests: ' . implode( ', ', $expectedUnused ) ); } } }