Completed
Push — master ( 9c48b0...ba7492 )
by Daniel
02:16
created

JobBuilderTest::testFromApi()   B

Complexity

Conditions 1
Paths 1

Size

Total Lines 34
Code Lines 28

Duplication

Lines 0
Ratio 0 %

Importance

Changes 2
Bugs 0 Features 1
Metric Value
c 2
b 0
f 1
dl 0
loc 34
rs 8.8571
cc 1
eloc 28
nc 1
nop 0
1
<?php
2
3
namespace Jobles\Tests\Careerjet\Builder;
4
5
use Jobles\Careerjet\Builder\JobBuilder;
6
use Jobles\Careerjet\Exception\CareerjetException;
7
8
class JobBuilderTest extends \PHPUnit_Framework_TestCase
9
{
10
    public function testFromApiShouldThrowCareerjetExceptionOnInvalidData()
11
    {
12
        $this->expectException(CareerjetException::class);
13
        $this->expectExceptionMessage('Invalid API job');
14
15
        JobBuilder::fromApi(new \stdClass, 'Brazil');
16
    }
17
18
    public function testFromApi()
19
    {
20
        $apiJob = new \stdClass;
21
        $apiJob->title = 'Analista de Sistema para Software de RH';
22
        $apiJob->date = 'Sat, 13 Feb 2016 08:59:39 GMT';
23
        $apiJob->description = 'Principais atribuições do cargo...';
24
        $apiJob->url = 'http://jobviewtrack.com/pt-br/job-12345';
25
        $apiJob->site = 'www.ceviu.com.br';
26
        $apiJob->company = 'Mega Enterprise, Co';
27
        $apiJob->locations = 'São Paulo - SP';
28
        $apiJob->salary_currency_code = 'BRL';
29
        $apiJob->salary_min = '1000';
30
        $apiJob->salary_max = '2000';
31
32
        $job = JobBuilder::fromApi($apiJob, 'Brazil');
33
34
        $this->assertEquals('Analista de Sistema para Software de RH', $job->getTitle());
35
        $this->assertInstanceOf(\DateTime::class, $job->getDate());
36
        $this->assertEquals('2016-02-13 08:59:39', $job->getDate()->format('Y-m-d H:i:s'));
37
        $this->assertEquals('Principais atribuições do cargo...', $job->getSnippet());
38
        $this->assertEquals('http://jobviewtrack.com/pt-br/job-12345', $job->getViewUrl());
39
        $this->assertEquals('www.ceviu.com.br', $job->getSource());
40
        $this->assertEquals('Mega Enterprise, Co', $job->getCompany());
41
        $this->assertEquals('São Paulo', $job->getCity());
42
        $this->assertEquals('SP', $job->getState());
43
        $this->assertEquals('BRL', $job->getSalaryCurrencyCode());
44
        $this->assertEquals('1000', $job->getSalaryMin());
45
        $this->assertEquals('2000', $job->getSalaryMax());
46
47
        $job = JobBuilder::fromApi($apiJob, 'China');
48
49
        $this->assertNull($job->getState());
50
        $this->assertNull($job->getCity());
51
    }
52
}
53