|
| 1 | +<?php |
| 2 | + |
| 3 | +namespace React\Tests\Dns\Query; |
| 4 | + |
| 5 | +use React\Tests\Dns\TestCase; |
| 6 | +use React\Dns\Query\HostsFileExecutor; |
| 7 | +use React\Dns\Query\Query; |
| 8 | +use React\Dns\Model\Message; |
| 9 | + |
| 10 | +class HostsFileExecutorTest extends TestCase |
| 11 | +{ |
| 12 | + private $hosts; |
| 13 | + private $fallback; |
| 14 | + private $executor; |
| 15 | + |
| 16 | + public function setUp() |
| 17 | + { |
| 18 | + $this->hosts = $this->getMockBuilder('React\Dns\Config\HostsFile')->disableOriginalConstructor()->getMock(); |
| 19 | + $this->fallback = $this->getMockBuilder('React\Dns\Query\ExecutorInterface')->getMock(); |
| 20 | + $this->executor = new HostsFileExecutor($this->hosts, $this->fallback); |
| 21 | + } |
| 22 | + |
| 23 | + public function testDoesNotTryToGetIpsForMxQuery() |
| 24 | + { |
| 25 | + $this->hosts->expects($this->never())->method('getIpsForHost'); |
| 26 | + $this->fallback->expects($this->once())->method('query'); |
| 27 | + |
| 28 | + $this->executor->query('8.8.8.8', new Query('google.com', Message::TYPE_MX, Message::CLASS_IN, 0)); |
| 29 | + } |
| 30 | + |
| 31 | + public function testFallsBackIfNoIpsWereFound() |
| 32 | + { |
| 33 | + $this->hosts->expects($this->once())->method('getIpsForHost')->willReturn(array()); |
| 34 | + $this->fallback->expects($this->once())->method('query'); |
| 35 | + |
| 36 | + $this->executor->query('8.8.8.8', new Query('google.com', Message::TYPE_A, Message::CLASS_IN, 0)); |
| 37 | + } |
| 38 | + |
| 39 | + public function testReturnsResponseMessageIfIpsWereFound() |
| 40 | + { |
| 41 | + $this->hosts->expects($this->once())->method('getIpsForHost')->willReturn(array('127.0.0.1')); |
| 42 | + $this->fallback->expects($this->never())->method('query'); |
| 43 | + |
| 44 | + $ret = $this->executor->query('8.8.8.8', new Query('google.com', Message::TYPE_A, Message::CLASS_IN, 0)); |
| 45 | + } |
| 46 | +} |
0 commit comments