Passed
Push — main ( b1fbff...0e72dc )
by Johny
02:35
created

NumberTest   A

Complexity

Total Complexity 12

Size/Duplication

Total Lines 60
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
wmc 12
eloc 21
dl 0
loc 60
c 0
b 0
f 0
rs 10
1
<?php
2
3
declare(strict_types=1);
4
5
namespace DummyGenerator\Test\Extension;
6
7
use DummyGenerator\Container\DefinitionContainer;
8
use DummyGenerator\Core\Number;
9
use DummyGenerator\Definitions\Extension\NumberExtensionInterface;
10
use DummyGenerator\Definitions\Randomizer\RandomizerInterface;
11
use DummyGenerator\DummyGenerator;
12
use DummyGenerator\Core\Randomizer\Randomizer;
13
use PHPUnit\Framework\TestCase;
14
15
class NumberTest extends TestCase
16
{
17
    private DummyGenerator $generator;
18
19
    public function setUp(): void
20
    {
21
        parent::setUp();
22
23
        $container = new DefinitionContainer([]);
24
        $container->add(RandomizerInterface::class, Randomizer::class);
25
        $container->add(NumberExtensionInterface::class, Number::class);
26
        $this->generator = new DummyGenerator($container);
27
    }
28
29
    public function testNumberBetween(): void
30
    {
31
        $number = $this->generator->numberBetween(min: 25, max: 82);
32
33
        self::assertTrue($number >= 25 && $number <= 82);
34
    }
35
36
    public function testRandomDigit(): void
37
    {
38
        $number = $this->generator->randomDigit();
39
40
        self::assertTrue($number >= 0 && $number <= 9);
41
    }
42
43
    public function testRandomDigitNot(): void
44
    {
45
        $number = $this->generator->randomDigitNot(except: 5);
46
        self::assertNotSame($number, 5);
47
    }
48
49
    public function testRandomDigitNotZero(): void
50
    {
51
        $number = $this->generator->randomDigitNotZero();
52
53
        self::assertNotSame($number, 0);
54
    }
55
56
    public function testRandomFloat(): void
57
    {
58
        $number = $this->generator->randomFloat(nbMaxDecimals: 3, min: 12.83, max: 26.45);
59
60
        // TODO check for decimals number
61
        self::assertTrue($number >= 12.83 && $number <= 26.45);
62
    }
63
64
    public function testRandomNumber(): void
65
    {
66
        $number = $this->generator->randomNumber(nbDigits: 3, strict: true);
67
68
        self::assertTrue($number >= 100 && $number <= 999);
69
    }
70
71
    public function testBoolean(): void
72
    {
73
        self::assertTrue($this->generator->boolean(chanceOfGettingTrue: 100));
74
        self::assertFalse($this->generator->boolean(chanceOfGettingTrue: 0));
75
    }
76
77
}
78