Skip to content

Commit b7702b0

Browse files
committed
Test that the passed cache is used by the record cache
1 parent ded3232 commit b7702b0

1 file changed

Lines changed: 31 additions & 0 deletions

File tree

tests/Resolver/FactoryTest.php

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,23 @@ public function createCachedShouldCreateResolverWithCachedExecutor()
4242
$this->assertInstanceOf('React\Dns\Query\CachedExecutor', $this->getResolverPrivateMemberValue($resolver, 'executor'));
4343
}
4444

45+
/** @test */
46+
public function createCachedShouldCreateResolverWithCachedExecutorWithCustomCache()
47+
{
48+
$cache = $this->getMock('React\Cache\CacheInterface');
49+
$loop = $this->getMock('React\EventLoop\LoopInterface');
50+
51+
$factory = new Factory();
52+
$resolver = $factory->createCached('8.8.8.8:53', $loop, $cache);
53+
54+
$this->assertInstanceOf('React\Dns\Resolver\Resolver', $resolver);
55+
$executor = $this->getResolverPrivateMemberValue($resolver, 'executor');
56+
$this->assertInstanceOf('React\Dns\Query\CachedExecutor', $executor);
57+
$recordCache = $this->getCachedExecutorPrivateMemberValue($executor, 'cache');
58+
$this->assertInstanceOf('React\Cache\CacheInterface', $this->getRecordCachePrivateMemberValue($recordCache, 'cache'));
59+
$this->assertSame($cache, $this->getRecordCachePrivateMemberValue($recordCache, 'cache'));
60+
}
61+
4562
/**
4663
* @test
4764
* @dataProvider factoryShouldAddDefaultPortProvider
@@ -75,4 +92,18 @@ private function getResolverPrivateMemberValue($resolver, $field)
7592
$reflector->setAccessible(true);
7693
return $reflector->getValue($resolver);
7794
}
95+
96+
private function getCachedExecutorPrivateMemberValue($resolver, $field)
97+
{
98+
$reflector = new \ReflectionProperty('React\Dns\Query\CachedExecutor', $field);
99+
$reflector->setAccessible(true);
100+
return $reflector->getValue($resolver);
101+
}
102+
103+
private function getRecordCachePrivateMemberValue($resolver, $field)
104+
{
105+
$reflector = new \ReflectionProperty('React\Dns\Query\RecordCache', $field);
106+
$reflector->setAccessible(true);
107+
return $reflector->getValue($resolver);
108+
}
78109
}

0 commit comments

Comments
 (0)