Guest User

JobUrlBuilderTest

a guest
Apr 10th, 2018
219
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 3.92 KB | None | 0 0
  1. <?php
  2.  
  3. use Acme\Services\JobUrlBuilder;
  4.  
  5. class JobUrlBuilderTest extends TestCase
  6. {
  7.     /** @test */
  8.     function it_trims_first_hypen()
  9.     {
  10.         $withHyphen = new JobUrlBuilder;
  11.         $withHyphen->setParameters('-helloworld');
  12.  
  13.         $withoutHyphen = new JobUrlBuilder;
  14.         $withoutHyphen->setParameters('helloworld');
  15.  
  16.         $this->assertEquals($withHyphen, $withoutHyphen);
  17.     }
  18.  
  19.     /** @test */
  20.     function it_parses_empty_parameters()
  21.     {
  22.         $urlBuilder = new JobUrlBuilder;
  23.         $urlBuilder->setParameters('');
  24.  
  25.         $this->assertEmpty($urlBuilder->keywords);
  26.         $this->assertEmpty($urlBuilder->employmentTypes);
  27.         $this->assertTrue($urlBuilder->hasDefaultLocation());
  28.     }
  29.  
  30.     /** @test */
  31.     function it_parses_one_parameter()
  32.     {
  33.         // location
  34.         $urlBuilder = new JobUrlBuilder;
  35.         $urlBuilder->setParameters('toronto');
  36.  
  37.         $this->assertEmpty($urlBuilder->keywords);
  38.         $this->assertEmpty($urlBuilder->employmentTypes);
  39.         $this->assertEquals(['toronto'], $urlBuilder->locations);
  40.  
  41.         // locations
  42.         $urlBuilder = new JobUrlBuilder;
  43.         $urlBuilder->setParameters('toronto~paris');
  44.  
  45.         $this->assertEmpty($urlBuilder->keywords);
  46.         $this->assertEmpty($urlBuilder->employmentTypes);
  47.         $this->assertEquals(['toronto', 'paris'], $urlBuilder->locations);
  48.     }
  49.  
  50.     /** @test */
  51.     function it_parses_two_parameters()
  52.     {
  53.         // employmentType-location
  54.         $urlBuilder = new JobUrlBuilder;
  55.         $urlBuilder->setAllEmploymentTypes(['full_time']);
  56.         $urlBuilder->setParameters('full_time-toronto');
  57.  
  58.         $this->assertEmpty($urlBuilder->keywords);
  59.         $this->assertEquals(['full_time'], $urlBuilder->employmentTypes);
  60.         $this->assertEquals(['toronto'], $urlBuilder->locations);
  61.  
  62.         // employmentTypes-locations
  63.         $urlBuilder = new JobUrlBuilder;
  64.         $urlBuilder->setAllEmploymentTypes(['full_time', 'part_time', 'temps partiel', 'freelance']);
  65.         $urlBuilder->setParameters('full_time~part_time~temps partiel-toronto~paris');
  66.  
  67.         $this->assertEmpty($urlBuilder->keywords);
  68.         $this->assertEquals(['full_time', 'part_time', 'temps partiel'], $urlBuilder->employmentTypes);
  69.         $this->assertEquals(['toronto', 'paris'], $urlBuilder->locations);
  70.  
  71.         // keyword-location
  72.         $urlBuilder = new JobUrlBuilder;
  73.         $urlBuilder->setParameters('engineer-paris');
  74.  
  75.         $this->assertEquals(['engineer'], $urlBuilder->keywords);
  76.         $this->assertEmpty($urlBuilder->employmentTypes);
  77.         $this->assertEquals(['paris'], $urlBuilder->locations);
  78.  
  79.         // keywords-locations
  80.         $urlBuilder = new JobUrlBuilder;
  81.         $urlBuilder->setParameters('engineer~c++~full_time-usa~paris');
  82.  
  83.         $this->assertEquals(['engineer', 'c++', 'full_time'], $urlBuilder->keywords);
  84.         $this->assertEmpty($urlBuilder->employmentTypes);
  85.         $this->assertEquals(['usa', 'paris'], $urlBuilder->locations);
  86.     }
  87.  
  88.     /** @test */
  89.     function it_parses_three_parameters()
  90.     {
  91.         // keyword-employmentType-location
  92.         $urlBuilder = new JobUrlBuilder;
  93.         $urlBuilder->setParameters('engineer-full_time-toronto');
  94.  
  95.         $this->assertEquals(['engineer'], $urlBuilder->keywords);
  96.         $this->assertEquals(['full_time'], $urlBuilder->employmentTypes);
  97.         $this->assertEquals(['toronto'], $urlBuilder->locations);
  98.  
  99.         // keywords-employmentTypes-locations
  100.         $urlBuilder = new JobUrlBuilder;
  101.         $urlBuilder->setParameters('engineer~pokemon~sapphire~freelance-full_time~part_time-usa~paris~toronto');
  102.  
  103.         $this->assertEquals(['engineer', 'pokemon', 'sapphire', 'freelance'], $urlBuilder->keywords);
  104.         $this->assertEquals(['full_time', 'part_time'], $urlBuilder->employmentTypes);
  105.         $this->assertEquals(['usa', 'paris', 'toronto'], $urlBuilder->locations);
  106.     }
  107. }
Advertisement
Add Comment
Please, Sign In to add comment