/** * @param array $parameters wenn ein String wird nur der Name des Parameters gecheckt */ public function assertMethodParameters(GMethod $m, array $parameters) { $this->lastGet = $methodParameters = $m->getParameters(); $debugParameters = array_map(function ($p) { return $p->getName(); }, $m->getParameters()); foreach ($parameters as $key => $parameter) { if (is_string($parameter)) { $this->test->assertArrayHasKey($key, $methodParameters, $this->msg("MethodParameter %d existiert nicht in '%s'. Parameter sind: [%s]", $key, $m->getName(), implode(", ", $debugParameters))); $this->test->assertEquals($methodParameters[$key]->getName(), $parameter, $this->msg("MethodParameter %d hat nicht den Namen %s in '%s'. Parameter sind: [%s]", $key, $parameter, $m->getName(), implode(", ", $debugParameters))); } else { throw new \Psc\Code\NotImplementedException('Parameter können bis jetzt nur strings sein'); } } return $this; }