diff --git a/CHANGELOG.md b/CHANGELOG.md index d6256270..b625849e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -29,6 +29,10 @@ For a full diff see [`7afa59c...main`][7afa59c...main]. * Used `TimeKeeper` instead of `SlowTestCollector` in `Subscriber\TestPreparedSubscriber` ([#25]), by [@localheinz] * Used `TimeKeeper` and `Collector\Collector` instead of `SlowTestCollector` in `Subscriber\TestPassedSubscriber` ([#26]), by [@localheinz] +### Removed + +* Removed `SlowTestCollector` ([#36]), by [@localheinz] + [7afa59c...main]: https://github.com/ergebnis/phpunit-slow-test-detector/compare/7afa59c...main [#6]: https://github.com/ergebnis/phpunit-slow-test-detector/pull/6 @@ -46,5 +50,6 @@ For a full diff see [`7afa59c...main`][7afa59c...main]. [#25]: https://github.com/ergebnis/phpunit-slow-test-detector/pull/25 [#26]: https://github.com/ergebnis/phpunit-slow-test-detector/pull/26 [#34]: https://github.com/ergebnis/phpunit-slow-test-detector/pull/34 +[#36]: https://github.com/ergebnis/phpunit-slow-test-detector/pull/36 [@localheinz]: https://github.com/localheinz diff --git a/src/SlowTestCollector.php b/src/SlowTestCollector.php deleted file mode 100644 index 9e4aa8c8..00000000 --- a/src/SlowTestCollector.php +++ /dev/null @@ -1,78 +0,0 @@ -maximumDuration = $maximumDuration; - $this->timer = $timeKeeper; - $this->collector = $collector; - } - - public function testPrepared(Event\Code\Test $test, Event\Telemetry\HRTime $preparedTime): void - { - $this->timer->start( - $test, - $preparedTime - ); - } - - public function testPassed(Event\Code\Test $test, Event\Telemetry\HRTime $passedTime): void - { - $duration = $this->timer->stop( - $test, - $passedTime - ); - - if (!$duration->isGreaterThan($this->maximumDuration)) { - return; - } - - $slowTest = SlowTest::fromTestAndDuration( - $test, - $duration - ); - - $this->collector->collect($slowTest); - } - - public function maximumDuration(): Event\Telemetry\Duration - { - return $this->maximumDuration; - } - - /** - * @phpstan-return list - * @psalm-return list - * - * @return array - */ - public function slowTests(): array - { - return $this->collector->collected(); - } -} diff --git a/test/Unit/SlowTestCollectorTest.php b/test/Unit/SlowTestCollectorTest.php deleted file mode 100644 index 64675cd2..00000000 --- a/test/Unit/SlowTestCollectorTest.php +++ /dev/null @@ -1,276 +0,0 @@ -numberBetween()); - - $slowTestCollector = new SlowTestCollector( - $maximumDuration, - new TimeKeeper(), - new Double\Collector\AppendingCollector() - ); - - self::assertSame([], $slowTestCollector->slowTests()); - } - - public function testConstructorSetsValues(): void - { - $maximumDuration = Event\Telemetry\Duration::fromSeconds(self::faker()->numberBetween()); - - $slowTestCollector = new SlowTestCollector( - $maximumDuration, - new TimeKeeper(), - new Double\Collector\AppendingCollector() - ); - - self::assertSame($maximumDuration, $slowTestCollector->maximumDuration()); - } - - public function testDoesNotCollectSlowTestWhenTestHasBeenPreparedButHasNotPassed(): void - { - $faker = self::faker(); - - $maximumDuration = Event\Telemetry\Duration::fromSecondsAndNanoseconds( - $faker->numberBetween(), - $faker->numberBetween(0, 500_000_000) - ); - - $preparedTest = self::createTest('test'); - - $preparedTime = Event\Telemetry\HRTime::fromSecondsAndNanoseconds( - $faker->numberBetween(), - 0 - ); - - $slowTestCollector = new SlowTestCollector( - $maximumDuration, - new TimeKeeper(), - $this->createMock(Collector\Collector::class) - ); - - $slowTestCollector->testPrepared( - $preparedTest, - $preparedTime - ); - - self::assertSame([], $slowTestCollector->slowTests()); - } - - public function testDoesNotCollectSlowTestWhenTestHasPassedButNotBeenPrepared(): void - { - $faker = self::faker(); - - $maximumDuration = Event\Telemetry\Duration::fromSecondsAndNanoseconds( - $faker->numberBetween(), - $faker->numberBetween(0, 500_000_000) - ); - - $passedTest = self::createTest('test'); - - $passedTime = Event\Telemetry\HRTime::fromSecondsAndNanoseconds( - $faker->numberBetween(), - 0 - ); - - $slowTestCollector = new SlowTestCollector( - $maximumDuration, - new TimeKeeper(), - new Double\Collector\AppendingCollector() - ); - - $slowTestCollector->testPassed( - $passedTest, - $passedTime - ); - - self::assertSame([], $slowTestCollector->slowTests()); - } - - public function testDoesNotCollectSlowTestWhenTestHasBeenPreparedAndPassedWithDurationLessThanMaximumDuration(): void - { - $faker = self::faker(); - - $maximumDuration = Event\Telemetry\Duration::fromSecondsAndNanoseconds( - $faker->numberBetween(), - $faker->numberBetween(1, 500_000_000) - ); - - $preparedTest = self::createTest('test'); - - $preparedTime = Event\Telemetry\HRTime::fromSecondsAndNanoseconds( - $faker->numberBetween(), - 0 - ); - - $passedTest = clone $preparedTest; - - $passedTime = Event\Telemetry\HRTime::fromSecondsAndNanoseconds( - $preparedTime->seconds() + $maximumDuration->seconds(), - $preparedTime->nanoseconds() + $maximumDuration->nanoseconds() - 1 - ); - - $slowTestCollector = new SlowTestCollector( - $maximumDuration, - new TimeKeeper(), - new Double\Collector\AppendingCollector() - ); - - $slowTestCollector->testPrepared( - $preparedTest, - $preparedTime - ); - - $slowTestCollector->testPassed( - $passedTest, - $passedTime - ); - - self::assertSame([], $slowTestCollector->slowTests()); - } - - public function testDoesNotCollectSlowTestWhenTestHasBeenPreparedAndPassedWithDurationEqualToMaximumDuration(): void - { - $faker = self::faker(); - - $maximumDuration = Event\Telemetry\Duration::fromSecondsAndNanoseconds( - $faker->numberBetween(), - $faker->numberBetween(0, 500_000_000) - ); - - $preparedTest = self::createTest('test'); - - $preparedTime = Event\Telemetry\HRTime::fromSecondsAndNanoseconds( - $faker->numberBetween(), - 0 - ); - - $passedTest = clone $preparedTest; - - $passedTime = Event\Telemetry\HRTime::fromSecondsAndNanoseconds( - $preparedTime->seconds() + $maximumDuration->seconds(), - $preparedTime->nanoseconds() + $maximumDuration->nanoseconds() - ); - - $slowTestCollector = new SlowTestCollector( - $maximumDuration, - new TimeKeeper(), - new Double\Collector\AppendingCollector() - ); - - $slowTestCollector->testPrepared( - $preparedTest, - $preparedTime - ); - - $slowTestCollector->testPassed( - $passedTest, - $passedTime - ); - - self::assertSame([], $slowTestCollector->slowTests()); - } - - public function testCollectsSlowTestWhenTestHasBeenPreparedAndPassedWithDurationGreaterThanMaximumDuration(): void - { - $faker = self::faker(); - - $maximumDuration = Event\Telemetry\Duration::fromSecondsAndNanoseconds( - $faker->numberBetween(), - $faker->numberBetween(0, 500_000_000) - ); - - $preparedTest = self::createTest('test'); - - $preparedTime = Event\Telemetry\HRTime::fromSecondsAndNanoseconds( - $faker->numberBetween(), - 0 - ); - - $passedTest = clone $preparedTest; - - $passedTime = Event\Telemetry\HRTime::fromSecondsAndNanoseconds( - $preparedTime->seconds() + $maximumDuration->seconds(), - $preparedTime->nanoseconds() + $maximumDuration->nanoseconds() + 1 - ); - - $slowTestCollector = new SlowTestCollector( - $maximumDuration, - new TimeKeeper(), - new Double\Collector\AppendingCollector() - ); - - $slowTestCollector->testPrepared( - $preparedTest, - $preparedTime - ); - - $slowTestCollector->testPassed( - $passedTest, - $passedTime - ); - - $expected = [ - SlowTest::fromTestAndDuration( - $passedTest, - $passedTime->duration($preparedTime) - ), - ]; - - self::assertEquals($expected, $slowTestCollector->slowTests()); - } - - private static function createTest(string $methodName): Event\Code\Test - { - $faker = self::faker(); - - $methodNameWithDataSet = \sprintf( - '%s with data set #%d', - $methodName, - $faker->numberBetween() - ); - - if ($faker->boolean) { - $methodNameWithDataSet = $methodName; - } - - return new Event\Code\Test( - self::class, - $methodName, - $methodNameWithDataSet - ); - } -} diff --git a/test/Unit/Subscriber/TestPassedSubscriberTest.php b/test/Unit/Subscriber/TestPassedSubscriberTest.php index 71d09cc8..d4c06b97 100644 --- a/test/Unit/Subscriber/TestPassedSubscriberTest.php +++ b/test/Unit/Subscriber/TestPassedSubscriberTest.php @@ -28,7 +28,6 @@ * @covers \Ergebnis\PHPUnit\SlowTestDetector\Subscriber\TestPassedSubscriber * * @uses \Ergebnis\PHPUnit\SlowTestDetector\SlowTest - * @uses \Ergebnis\PHPUnit\SlowTestDetector\SlowTestCollector * @uses \Ergebnis\PHPUnit\SlowTestDetector\TimeKeeper */ final class TestPassedSubscriberTest extends Framework\TestCase