Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- use Acme\Services\JobUrlBuilder;
- class JobUrlBuilderTest extends TestCase
- {
- /** @test */
- function it_trims_first_hypen()
- {
- $withHyphen = new JobUrlBuilder;
- $withHyphen->setParameters('-helloworld');
- $withoutHyphen = new JobUrlBuilder;
- $withoutHyphen->setParameters('helloworld');
- $this->assertEquals($withHyphen, $withoutHyphen);
- }
- /** @test */
- function it_parses_empty_parameters()
- {
- $urlBuilder = new JobUrlBuilder;
- $urlBuilder->setParameters('');
- $this->assertEmpty($urlBuilder->keywords);
- $this->assertEmpty($urlBuilder->employmentTypes);
- $this->assertTrue($urlBuilder->hasDefaultLocation());
- }
- /** @test */
- function it_parses_one_parameter()
- {
- // location
- $urlBuilder = new JobUrlBuilder;
- $urlBuilder->setParameters('toronto');
- $this->assertEmpty($urlBuilder->keywords);
- $this->assertEmpty($urlBuilder->employmentTypes);
- $this->assertEquals(['toronto'], $urlBuilder->locations);
- // locations
- $urlBuilder = new JobUrlBuilder;
- $urlBuilder->setParameters('toronto~paris');
- $this->assertEmpty($urlBuilder->keywords);
- $this->assertEmpty($urlBuilder->employmentTypes);
- $this->assertEquals(['toronto', 'paris'], $urlBuilder->locations);
- }
- /** @test */
- function it_parses_two_parameters()
- {
- // employmentType-location
- $urlBuilder = new JobUrlBuilder;
- $urlBuilder->setAllEmploymentTypes(['full_time']);
- $urlBuilder->setParameters('full_time-toronto');
- $this->assertEmpty($urlBuilder->keywords);
- $this->assertEquals(['full_time'], $urlBuilder->employmentTypes);
- $this->assertEquals(['toronto'], $urlBuilder->locations);
- // employmentTypes-locations
- $urlBuilder = new JobUrlBuilder;
- $urlBuilder->setAllEmploymentTypes(['full_time', 'part_time', 'temps partiel', 'freelance']);
- $urlBuilder->setParameters('full_time~part_time~temps partiel-toronto~paris');
- $this->assertEmpty($urlBuilder->keywords);
- $this->assertEquals(['full_time', 'part_time', 'temps partiel'], $urlBuilder->employmentTypes);
- $this->assertEquals(['toronto', 'paris'], $urlBuilder->locations);
- // keyword-location
- $urlBuilder = new JobUrlBuilder;
- $urlBuilder->setParameters('engineer-paris');
- $this->assertEquals(['engineer'], $urlBuilder->keywords);
- $this->assertEmpty($urlBuilder->employmentTypes);
- $this->assertEquals(['paris'], $urlBuilder->locations);
- // keywords-locations
- $urlBuilder = new JobUrlBuilder;
- $urlBuilder->setParameters('engineer~c++~full_time-usa~paris');
- $this->assertEquals(['engineer', 'c++', 'full_time'], $urlBuilder->keywords);
- $this->assertEmpty($urlBuilder->employmentTypes);
- $this->assertEquals(['usa', 'paris'], $urlBuilder->locations);
- }
- /** @test */
- function it_parses_three_parameters()
- {
- // keyword-employmentType-location
- $urlBuilder = new JobUrlBuilder;
- $urlBuilder->setParameters('engineer-full_time-toronto');
- $this->assertEquals(['engineer'], $urlBuilder->keywords);
- $this->assertEquals(['full_time'], $urlBuilder->employmentTypes);
- $this->assertEquals(['toronto'], $urlBuilder->locations);
- // keywords-employmentTypes-locations
- $urlBuilder = new JobUrlBuilder;
- $urlBuilder->setParameters('engineer~pokemon~sapphire~freelance-full_time~part_time-usa~paris~toronto');
- $this->assertEquals(['engineer', 'pokemon', 'sapphire', 'freelance'], $urlBuilder->keywords);
- $this->assertEquals(['full_time', 'part_time'], $urlBuilder->employmentTypes);
- $this->assertEquals(['usa', 'paris', 'toronto'], $urlBuilder->locations);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment