Completed
Pull Request — master (#29)
by Nicolas
03:33 queued 01:42
created

ExportSpec::it_builds_last_translations()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 8
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 8
rs 9.4285
cc 1
eloc 6
nc 1
nop 3
1
<?php
2
3
namespace spec\Akeneo\Crowdin\Api;
4
5
use PhpSpec\ObjectBehavior;
6
use Prophecy\Argument;
7
use Akeneo\Crowdin\Client;
8
use Guzzle\Http\Client as HttpClient;
9
use Guzzle\Http\Message\Response;
10
use Guzzle\Http\Message\Request;
11
12
class ExportSpec extends ObjectBehavior
13
{
14
    function let(Client $client, HttpClient $http)
15
    {
16
        $client->getHttpClient()->willReturn($http);
17
        $client->getProjectIdentifier()->willReturn('akeneo');
18
        $client->getProjectApiKey()->willReturn('1234');
19
        $this->beConstructedWith($client);
20
    }
21
22
    function it_should_be_an_api()
23
    {
24
        $this->shouldBeAnInstanceOf('Akeneo\Crowdin\Api\AbstractApi');
25
    }
26
27
    function it_builds_last_translations(HttpClient $http, Request $request, Response $response)
28
    {
29
        $content = '<?xml version="1.0" encoding="ISO-8859-1"?><success status="built"></success>';
30
        $response->getBody(true)->willReturn($content);
31
        $request->send()->willReturn($response);
32
        $http->get('project/akeneo/export?key=1234')->willReturn($request);
33
        $this->execute()->shouldBe($content);
34
    }
35
36
    function it_skips_build_if_less_than_half_an_hour(HttpClient $http, Request $request, Response $response)
37
    {
38
        $content = '<?xml version="1.0" encoding="ISO-8859-1"?><success status="skipped"></success>';
39
        $response->getBody(true)->willReturn($content);
40
        $request->send()->willReturn($response);
41
        $http->get('project/akeneo/export?key=1234')->willReturn($request);
42
        $this->execute()->shouldBe($content);
43
    }
44
}
45