getMethod($name); $method->setAccessible(true); return $method->invokeArgs($object, $params); } // // Tests // public function testDecodeArrayValue() { $model = new ExampleImportModel; $data = 'foo|bar'; $result = self::callProtectedMethod($model, 'decodeArrayValue', [$data]); $this->assertEquals(['foo', 'bar'], $result); $data = 'dps \| heals \| tank|paladin|berserker|gunner'; $result = self::callProtectedMethod($model, 'decodeArrayValue', [$data]); $this->assertEquals(['dps | heals | tank', 'paladin', 'berserker', 'gunner'], $result); $data = 'art direction-roman empire-sci\-fi'; $result = self::callProtectedMethod($model, 'decodeArrayValue', [$data, '-']); $this->assertEquals(['art direction', 'roman empire', 'sci-fi'], $result); } }