public function it_should_know_its_distance(City $london, City $dublin, City $belfast) { $dublin->getName()->shouldBeCalled()->willReturn("Dublin"); $london->distanceTo("Dublin")->shouldBeCalled()->willReturn(15); $belfast->getName()->shouldBeCalled()->willReturn("Belfast"); $dublin->distanceTo("Belfast")->shouldBeCalled()->willReturn(25); $this->distance()->shouldBe(40); }
public function it_should_be_able_to_calculate_the_longest_possible_route(Permutations $calc, CitiesCollection $cities, City $london, City $belfast, City $dublin) { $london->beConstructedWith(["London", ["Dublin" => 464, "Belfast" => 518]]); $london->distanceTo("Belfast")->shouldBeCalled()->willReturn(518); $london->distanceTo("Dublin")->shouldBeCalled()->willReturn(464); $london->getName()->shouldBeCalled()->willReturn("London"); $belfast->beConstructedWith(["Belfast", ["Dublin" => 141, "London" => 518]]); $belfast->getName()->shouldBeCalled()->willReturn("Belfast"); $belfast->distanceTo("Dublin")->shouldBeCalled()->willReturn(141); $belfast->distanceTo("London")->shouldBeCalled()->willReturn(518); $dublin->beConstructedWith(["Dublin", ["London" => 464, "Belfast" => 141]]); $dublin->distanceTo("Belfast")->shouldBeCalled()->willReturn(141); $dublin->distanceTo("London")->shouldBeCalled()->willReturn(464); $dublin->getName()->shouldBeCalled()->willReturn("Dublin"); $keys = [0, 1, 2]; $cities->keys()->shouldBeCalled()->willReturn($keys); $cities->offsetGet(0)->shouldBeCalled()->willReturn($london); $cities->offsetGet(1)->shouldBeCalled()->willReturn($belfast); $cities->offsetGet(2)->shouldBeCalled()->willReturn($dublin); $calc->calculate($keys)->shouldBeCalled()->willReturn([[0, 1, 2], [0, 2, 1], [1, 2, 0], [1, 0, 2], [2, 1, 0], [2, 0, 1]]); $longestJourney = $this->calculateLongestRoute(); $longestJourney->shouldBeAnInstanceOf(SantaJourney::class); $longestJourney->distance()->shouldBe(982); }
public function it_should_know_its_distance(City $start, City $end) { $end->getName()->shouldBeCalled()->willReturn("London"); $start->distanceTo("London")->shouldBeCalled()->willReturn(10); $this->distance()->shouldBe(10); }