Passed
Push — master ( 07ef79...da9750 )
by Jean Paul
08:59
created

GuessGenderTransformerTest::testGuessGender1()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 11
Code Lines 7

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 7
c 1
b 0
f 0
nc 1
nop 0
dl 0
loc 11
rs 10
1
<?php
2
3
namespace Coco\SourceWatcher\Tests\Core\Transformers;
4
5
use Coco\SourceWatcher\Core\Row;
6
use Coco\SourceWatcher\Core\Transformers\GuessGenderTransformer;
7
use GenderDetector\Country;
8
use GenderDetector\Gender;
9
use PHPUnit\Framework\TestCase;
10
11
class GuessGenderTransformerTest extends TestCase
12
{
13
    public function testGuessGender1(): void {
14
        $transformer = new GuessGenderTransformer();
15
        $transformer->options( ['country' => Country::USA, 'firstNameField' => 'first_name', 'genderField' => 'gender'] );
16
17
        $row = new Row( [ 'first_name' => 'Jean', 'gender' => null ] );
18
19
        $transformer->transform( $row );
20
21
        $this->assertNotNull( $row->get( 'gender' ) );
22
        $this->assertNotEmpty( $row->get( 'gender' ) );
23
        $this->assertEquals( Gender::MOSTLY_FEMALE, $row->get( 'gender' ) );
24
    }
25
26
    public function testGuessGender2(): void {
27
        $transformer = new GuessGenderTransformer();
28
        $transformer->options( ['country' => Country::USA, 'firstNameField' => 'first_name', 'genderField' => 'gender'] );
29
30
        $row = new Row( [ 'first_name' => 'Paul', 'gender' => null ] );
31
32
        $transformer->transform( $row );
33
34
        $this->assertNotNull( $row->get( 'gender' ) );
35
        $this->assertNotEmpty( $row->get( 'gender' ) );
36
        $this->assertEquals( Gender::MALE, $row->get( 'gender' ) );
37
    }
38
39
    public function testGuessGender3(): void {
40
        $transformer = new GuessGenderTransformer();
41
        $transformer->options( ['country' => Country::USA, 'firstNameField' => 'first_name', 'genderField' => 'gender'] );
42
43
        $row = new Row( [ 'first_name' => 'jean paul', 'gender' => null ] );
44
45
        $transformer->transform( $row );
46
47
        $this->assertNotNull( $row->get( 'gender' ) );
48
        $this->assertNotEmpty( $row->get( 'gender' ) );
49
        $this->assertEquals( Gender::MALE, $row->get( 'gender' ) );
50
    }
51
}
52