Skip to content

Commit d5446ce

Browse files
committed
Rewrite test suite to Pest
1 parent 36cb3fc commit d5446ce

File tree

6 files changed

+140
-146
lines changed

6 files changed

+140
-146
lines changed

tests/FakeCarDataProviderTest.php

Lines changed: 0 additions & 61 deletions
This file was deleted.

tests/Pest.php

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,6 @@
1111
|
1212
*/
1313

14-
// pest()->extend(Tests\TestCase::class)->in('Feature');
15-
1614
/*
1715
|--------------------------------------------------------------------------
1816
| Expectations
@@ -24,9 +22,6 @@
2422
|
2523
*/
2624

27-
expect()->extend('toBeOne', function () {
28-
return $this->toBe(1);
29-
});
3025

3126
/*
3227
|--------------------------------------------------------------------------
@@ -38,8 +33,3 @@
3833
| global functions to help you to reduce the number of lines of code in your test files.
3934
|
4035
*/
41-
42-
function something()
43-
{
44-
// ..
45-
}

tests/TestCase.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?php
22

3-
namespace Tests;
3+
namespace FakeCar\Tests;
44

55
use PHPUnit\Framework\TestCase as BaseTestCase;
66

tests/Unit/ArchTest.php

Lines changed: 0 additions & 6 deletions
This file was deleted.
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
<?php
2+
3+
use FakeCar\Tests\TestProviders\BMWFakeCarData;
4+
use FakeCar\Tests\TestProviders\FerrariEnzoTestProvider;
5+
6+
test('custom provider data source', function () {
7+
$BMWCarData = new BMWFakeCarData;
8+
$fakeCarDataProvider = new \Faker\Provider\FakeCarDataProvider($BMWCarData);
9+
10+
$faker = (new \Faker\Factory())::create();
11+
$fakeCar = new \Faker\Provider\FakeCar($faker);
12+
$fakeCar->setDataProvider($fakeCarDataProvider);
13+
$faker->addProvider($fakeCar);
14+
15+
for ($i = 0; $i <= 100; $i++) {
16+
$data = $faker->vehicleArray();
17+
expect($data['brand'])->toEqual('BMW')
18+
->and($faker->vehicleBrand())->toEqual('BMW')
19+
->and((BMWFakeCarData::$brandsWithModels)['BMW'])->toContain($faker->vehicleModel())
20+
->and(BMWFakeCarData::$vehicleTypes)->toContain($faker->vehicleType());
21+
22+
$regex = '/^(?<value>\d+) (?<unit>[a-zA-Z]+)$/';
23+
expect($faker->vehicleEnginePower())->toMatch($regex);
24+
preg_match($regex, $faker->vehicleEnginePower(), $matches);
25+
expect($matches['value'])->toBeGreaterThanOrEqual(BMWFakeCarData::$vehicleEnginePower['range'][0])
26+
->and($matches['value'])->toBeLessThanOrEqual(BMWFakeCarData::$vehicleEnginePower['range'][1])
27+
->and($matches['unit'])->toEqual('hp')
28+
->and($faker->vehicleEngineTorque())->toMatch($regex);
29+
30+
preg_match($regex, $faker->vehicleEngineTorque(), $matches);
31+
expect($matches['value'])->toBeGreaterThanOrEqual(BMWFakeCarData::$vehicleEngineTorque['range'][0])
32+
->and($matches['value'])->toBeLessThanOrEqual(BMWFakeCarData::$vehicleEngineTorque['range'][1])
33+
->and($matches['unit'])->toEqual('nm');
34+
}
35+
});
36+
37+
test('custom provider class', function () {
38+
$fakeCarDataProvider = new FerrariEnzoTestProvider();
39+
40+
$faker = (new \Faker\Factory())::create();
41+
$fakeCar = new \Faker\Provider\FakeCar($faker);
42+
$fakeCar->setDataProvider($fakeCarDataProvider);
43+
$faker->addProvider($fakeCar);
44+
45+
$vehicleArray = $faker->vehicleArray();
46+
expect($vehicleArray['brand'])->toEqual('Ferrari')
47+
->and($vehicleArray['model'])->toEqual('Enzo')
48+
->and($faker->vehicle())->toEqual('Ferrari Enzo')
49+
->and($faker->vehicleBrand())->toEqual('Ferrari')
50+
->and($faker->vehicleModel())->toEqual('Enzo')
51+
->and($faker->vehicleType())->toEqual('coupe')
52+
->and($faker->vehicleFuelType())->toEqual('gasoline')
53+
->and($faker->vehicleDoorCount())->toEqual(2)
54+
->and($faker->vehicleSeatCount())->toEqual(2)
55+
->and($faker->vehicleProperties())->toEqual([
56+
'Air condition',
57+
'GPS',
58+
'Leather seats',
59+
]);
60+
61+
});

0 commit comments

Comments
 (0)