Skip to content

Commit

Permalink
Merge pull request #3 from aurmil/master
Browse files Browse the repository at this point in the history
placeholder resolver preserves types
  • Loading branch information
simensen committed Dec 3, 2021
2 parents 500cf7a + d07fb5d commit d0161b4
Show file tree
Hide file tree
Showing 2 changed files with 38 additions and 0 deletions.
4 changes: 4 additions & 0 deletions src/Dflydev/PlaceholderResolver/RegexPlaceholderResolver.php
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,10 @@ public function __construct(DataSourceInterface $dataSource, $placeholderPrefix
*/
public function resolvePlaceholder($placeholder)
{
if (!is_string($placeholder)) {
return $placeholder;
}

if ($this->getCache()->exists($placeholder)) {
return $this->getCache()->get($placeholder);
}
Expand Down
34 changes: 34 additions & 0 deletions tests/Dflydev/PlaceholderResolver/RegexPlaceholderResolverTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -98,4 +98,38 @@ public function resolvePlaceholderPrefixAndSuffixProvider()
array('(<)', '(>)'),
);
}

public function testResolvePlaceholderReturnType()
{
$dataSource = $this->getMock('Dflydev\PlaceholderResolver\DataSource\DataSourceInterface');
$dataSource
->expects($this->any())
->method('exists')
->will($this->returnValueMap(array(
array('true', false, true),
array('int', false, true),
array('composite', false, true),
)))
;
$dataSource
->expects($this->any())
->method('get')
->will($this->returnValueMap(array(
array('true', false, true),
array('int', false, 2015),
array('composite', false, '${int}'),
)))
;

$placeholderResolver = new RegexPlaceholderResolver($dataSource);

$this->assertSame(true, $placeholderResolver->resolvePlaceholder(true));
$this->assertSame(false, $placeholderResolver->resolvePlaceholder(false));
$this->assertSame(2015, $placeholderResolver->resolvePlaceholder(2015));
$this->assertSame(2015.0914, $placeholderResolver->resolvePlaceholder(2015.0914));
$this->assertSame('2015', $placeholderResolver->resolvePlaceholder('2015'));
$this->assertSame('2015', $placeholderResolver->resolvePlaceholder('${int}'));
$this->assertSame('1', $placeholderResolver->resolvePlaceholder('${true}'));
$this->assertSame('2015', $placeholderResolver->resolvePlaceholder('${composite}'));
}
}

0 comments on commit d0161b4

Please sign in to comment.