12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- <?php
- namespace React\Tests\Dns\Resolver;
- use React\Tests\Dns\TestCase;
- use React\Dns\Resolver\Resolver;
- use React\Dns\Model\Message;
- use React\Dns\Model\Record;
- class ResolveAliasesTest extends TestCase
- {
- /**
- * @dataProvider provideAliasedAnswers
- */
- public function testResolveAliases(array $expectedAnswers, array $answers, $name)
- {
- $message = new Message();
- foreach ($answers as $answer) {
- $message->answers[] = $answer;
- }
- $executor = $this->createExecutorMock();
- $executor->expects($this->once())->method('query')->willReturn(\React\Promise\resolve($message));
- $resolver = new Resolver($executor);
- $answers = $resolver->resolveAll($name, Message::TYPE_A);
- $answers->then($this->expectCallableOnceWith($expectedAnswers), null);
- }
- public function provideAliasedAnswers()
- {
- return array(
- array(
- array('178.79.169.131'),
- array(
- new Record('igor.io', Message::TYPE_A, Message::CLASS_IN, 3600, '178.79.169.131'),
- ),
- 'igor.io',
- ),
- array(
- array('178.79.169.131', '178.79.169.132', '178.79.169.133'),
- array(
- new Record('igor.io', Message::TYPE_A, Message::CLASS_IN, 3600, '178.79.169.131'),
- new Record('igor.io', Message::TYPE_A, Message::CLASS_IN, 3600, '178.79.169.132'),
- new Record('igor.io', Message::TYPE_A, Message::CLASS_IN, 3600, '178.79.169.133'),
- ),
- 'igor.io',
- ),
- array(
- array('178.79.169.131'),
- array(
- new Record('igor.io', Message::TYPE_A, Message::CLASS_IN, 3600, '178.79.169.131'),
- new Record('foo.igor.io', Message::TYPE_A, Message::CLASS_IN, 3600, '178.79.169.131'),
- new Record('bar.igor.io', Message::TYPE_A, Message::CLASS_IN, 3600, '178.79.169.131'),
- ),
- 'igor.io',
- ),
- array(
- array('178.79.169.131'),
- array(
- new Record('igor.io', Message::TYPE_CNAME, Message::CLASS_IN, 3600, 'foo.igor.io'),
- new Record('foo.igor.io', Message::TYPE_A, Message::CLASS_IN, 3600, '178.79.169.131'),
- ),
- 'igor.io',
- ),
- array(
- array('178.79.169.131'),
- array(
- new Record('igor.io', Message::TYPE_CNAME, Message::CLASS_IN, 3600, 'foo.igor.io'),
- new Record('foo.igor.io', Message::TYPE_CNAME, Message::CLASS_IN, 3600, 'bar.igor.io'),
- new Record('bar.igor.io', Message::TYPE_A, Message::CLASS_IN, 3600, '178.79.169.131'),
- ),
- 'igor.io',
- ),
- array(
- array('178.79.169.131', '178.79.169.132', '178.79.169.133'),
- array(
- new Record('igor.io', Message::TYPE_CNAME, Message::CLASS_IN, 3600, 'foo.igor.io'),
- new Record('foo.igor.io', Message::TYPE_CNAME, Message::CLASS_IN, 3600, 'bar.igor.io'),
- new Record('bar.igor.io', Message::TYPE_CNAME, Message::CLASS_IN, 3600, 'baz.igor.io'),
- new Record('bar.igor.io', Message::TYPE_CNAME, Message::CLASS_IN, 3600, 'qux.igor.io'),
- new Record('baz.igor.io', Message::TYPE_A, Message::CLASS_IN, 3600, '178.79.169.131'),
- new Record('baz.igor.io', Message::TYPE_A, Message::CLASS_IN, 3600, '178.79.169.132'),
- new Record('qux.igor.io', Message::TYPE_A, Message::CLASS_IN, 3600, '178.79.169.133'),
- ),
- 'igor.io',
- ),
- );
- }
- private function createExecutorMock()
- {
- return $this->getMockBuilder('React\Dns\Query\ExecutorInterface')->getMock();
- }
- }
|