Issues (38)

Tests/Services/AzineGenderGuesserTest.php (1 issue)

Labels
Severity
1
<?php
2
3
namespace Azine\HybridAuthBundle\Services;
4
5
use Symfony\Bundle\FrameworkBundle\Tests\TestCase;
6
7
class AzineGenderGuesserTest extends TestCase
8
{
9
    public function testGuess()
10
    {
11
        $guesser = new AzineGenderGuesser();
12
        $result = $guesser->guess('Patrick');
13
        $this->assertSame('m', $result['gender']);
14
        $result = $guesser->guess('Tom');
15
        $this->assertSame('m', $result['gender']);
16
17
        $result = $guesser->guess('Sonja');
18
        $this->assertSame('f', $result['gender']);
19
        $result = $guesser->guess('Petra');
20
        $this->assertSame('f', $result['gender']);
21
22
        $this->assertNull($guesser->guess(null));
0 ignored issues
show
Are you sure the usage of $guesser->guess(null) targeting Azine\HybridAuthBundle\S...eGenderGuesser::guess() seems to always return null.

This check looks for function or method calls that always return null and whose return value is used.

class A
{
    function getObject()
    {
        return null;
    }

}

$a = new A();
if ($a->getObject()) {

The method getObject() can return nothing but null, so it makes no sense to use the return value.

The reason is most likely that a function or method is imcomplete or has been reduced for debug purposes.

Loading history...
23
    }
24
25
    public function testGender()
26
    {
27
        $guesser = new AzineGenderGuesser();
28
        $this->assertSame('m', $guesser->gender('Patrick'));
29
        $this->assertSame('m', $guesser->gender('Tom'));
30
        $this->assertSame('f', $guesser->gender('Sonja'));
31
        $this->assertSame('f', $guesser->gender('Petra'));
32
        $this->assertSame('', $guesser->gender('ertwerqwrfas'));
33
    }
34
35
    public function testGuesserWithOptions()
36
    {
37
        $females = array('lkjlkjlkj' => 1);
38
        $males = array('oiuoiuoui' => 1);
39
        $matchList = array('one_only',
40
                            'either_weight',
41
                            'one_only_metaphone',
42
                            'either_weight_metaphone',
43
                            'v2_rules',
44
                            'v1_rules', );
45
46
        // use with extra names supplied via constructor
47
        $guesser = new AzineGenderGuesser($females, $males, true, $matchList);
48
49
        $result = $guesser->guess('oiuoiuoui');
50
        $this->assertSame('m', $result['gender']);
51
        $result = $guesser->guess('Patrick');
52
        $this->assertSame('m', $result['gender']);
53
        $result = $guesser->guess('Tom');
54
        $this->assertSame('m', $result['gender']);
55
56
        $result = $guesser->guess('lkjlkjlkj');
57
        $this->assertSame('f', $result['gender']);
58
        $result = $guesser->guess('Sonja');
59
        $this->assertSame('f', $result['gender']);
60
        $result = $guesser->guess('Petra');
61
        $this->assertSame('f', $result['gender']);
62
63
        // use only names supplied via constructor
64
        $guesser = new AzineGenderGuesser($females, $males, false, array('one_only'));
65
66
        $result = $guesser->guess('oiuoiuoui');
67
        $this->assertSame('m', $result['gender']);
68
69
        $result = $guesser->guess('Patrick');
70
        $this->assertNull($result);
71
        $result = $guesser->guess('Tom');
72
        $this->assertNull($result);
73
74
        $result = $guesser->guess('lkjlkjlkj');
75
        $this->assertSame('f', $result['gender']);
76
77
        $result = $guesser->guess('Sonja');
78
        $this->assertNull($result);
79
        $result = $guesser->guess('Petra');
80
        $this->assertNull($result);
81
    }
82
83
    public function testGuesserWithEitherWeight()
84
    {
85
        $females = array();
86
        $males = array();
87
        $matchList = array('either_weight');
88
89
        // use with extra names supplied via constructor
90
        $guesser = new AzineGenderGuesser($females, $males, false, $matchList);
91
92
        $result = $guesser->guess('Randy');
93
        $this->assertSame('m', $result['gender']);
94
    }
95
96
    public function testGuesserWithRules1()
97
    {
98
        $females = array();
99
        $males = array();
100
        $matchList = array('v1_rules');
101
102
        // use with extra names supplied via constructor
103
        $guesser = new AzineGenderGuesser($females, $males, false, $matchList);
104
105
        $result = $guesser->guess('Randy');
106
        $this->assertSame('m', $result['gender']);
107
108
        $result = $guesser->guess('Lois');
109
        $this->assertSame('f', $result['gender']);
110
    }
111
112
    public function testGuesserWithRules2()
113
    {
114
        $females = array();
115
        $males = array();
116
        $matchList = array('v2_rules');
117
118
        // use with extra names supplied via constructor
119
        $guesser = new AzineGenderGuesser($females, $males, false, $matchList);
120
121
        $result = $guesser->guess('John');
122
        $this->assertSame('m', $result['gender']);
123
        $result = $guesser->guess('Anfernee');
124
        $this->assertSame('m', $result['gender']);
125
126
        $result = $guesser->guess('Trish');
127
        $this->assertSame('f', $result['gender']);
128
        $result = $guesser->guess('Ellie');
129
        $this->assertSame('f', $result['gender']);
130
    }
131
132
    public function testGuesserWithMetaPhone()
133
    {
134
        $females = array();
135
        $males = array();
136
        $matchList = array('one_only_metaphone');
137
138
        // use with extra names supplied via constructor
139
        $guesser = new AzineGenderGuesser($females, $males, true, $matchList);
140
141
        $result = $guesser->guess('Patric');
142
        $this->assertSame('m', $result['gender']);
143
        $result = $guesser->guess('Tomàs');
144
        $this->assertSame('m', $result['gender']);
145
146
        $result = $guesser->guess('Sonja');
147
        $this->assertSame('f', $result['gender']);
148
    }
149
150
    public function testGuesserWithMetaPhone2()
151
    {
152
        $females = array();
153
        $males = array();
154
        $matchList = array('either_weight_metaphone');
155
156
        // use with extra names supplied via constructor
157
        $guesser = new AzineGenderGuesser($females, $males, true, $matchList);
158
159
        $result = $guesser->guess('Patric');
160
        $this->assertSame('m', $result['gender']);
161
        $result = $guesser->guess('Tomàs');
162
        $this->assertSame('m', $result['gender']);
163
164
        $result = $guesser->guess('Sonja');
165
        $this->assertSame('f', $result['gender']);
166
    }
167
}
168