Test Failed
Push — master ( 8413e5...65cae7 )
by Jakub
02:11
created

HeaderLocaleResolverTest::testResolve()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 15
Code Lines 13

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 13
dl 0
loc 15
rs 9.8333
c 0
b 0
f 0
cc 1
nc 1
nop 0
1
<?php
2
declare(strict_types=1);
3
4
namespace Nexendrie\Translation\Resolvers;
5
6
use Tester\Assert;
7
use Nette\Http\Request;
8
use Nette\Http\UrlScript;
9
use Nexendrie\Translation\ILoader;
10
use Nexendrie\Translation\LoaderNotSetException;
11
12
require __DIR__ . "/../../../bootstrap.php";
13
14
/**
15
 * @author Jakub Konečný
16
 * @testCase
17
 */
18
final class HeaderLocaleResolverTest extends \Tester\TestCase {
19
  use \Testbench\TCompiledContainer;
20
  
21
  protected function prepareRequest(string $language): Request {
22
    $headers = [
23
      "Accept-Language" => $language
24
    ];
25
    return new Request(new UrlScript(), null, null, null, $headers);
26
  }
27
  
28
  public function testResolve(): void {
29
    $resolver = new HeaderLocaleResolver();
30
    Assert::exception(function() use($resolver) {
31
      $resolver->resolve();
32
    }, LoaderNotSetException::class);
33
    /** @var ILoader $loader */
34
    $loader = $this->getService(ILoader::class);
35
    $resolver->setLoader($loader);
36
    Assert::null($resolver->resolve());
37
    $resolver = new HeaderLocaleResolver($this->prepareRequest("zh"));
38
    $resolver->setLoader($loader);
39
    Assert::null($resolver->resolve());
40
    $resolver = new HeaderLocaleResolver($this->prepareRequest("en"));
41
    $resolver->setLoader($loader);
42
    Assert::same("en", $resolver->resolve());
43
  }
44
}
45
46
$test = new HeaderLocaleResolverTest();
47
$test->run();
48
?>