public function testIfParamatersMatcherWillMatch() { $matcher = new ParametersMatcher(); $matcher->setPlugins(new MatcherConfig(['addendum' => new Addendum(), 'reflection' => new ReflectionClass($this)])); $string = "('Maslosoft\\AddendumTest\\Models\\ModelWithLabels', true)"; $value = []; $matcher->matches($string, $value); $this->assertSame('Maslosoft\\AddendumTest\\Models\\ModelWithLabels', $value['value'][0]); $this->assertSame(true, $value['value'][1]); }
public function testIfMixedDefinitionParametersWillMatch() { $matcher = new ParametersMatcher(); $matcher->setPlugins(new MatcherConfig(['addendum' => new Addendum(), 'reflection' => new ReflectionClass($this)])); // Named values $namedMatch = ['(foo = 2, bar = 3)' => ['foo' => 2, 'bar' => 3], '(foo = 2, 3)' => ['foo' => 2, 0 => 3]]; foreach ($namedMatch as $match => $value) { $msg = sprintf("Should match `%s` with named values of `%s`: `%s`", $match, implode('`, `', array_keys($value)), var_export($value, true)); $matched = null; $this->assertTrue((bool) $matcher->matches($match, $matched), $msg); $this->assertSame($value, $matched['value'], $msg); } }