/** * @test * @dataProvider provideVersionsAndValidities */ public function checksVersionValidity($version, $expected) { if (!$expected) { $this->setExpectedException('Xi\\Filelib\\InvalidVersionException'); } $plugin = new ArbitraryVersionPlugin('arbitrage', function () { return array('tussi', 'lussi'); }, function () { return array('x2', 'x5'); }, function () { return array('tussi' => 'nusnus'); }, function (Version $version) { $params = $version->getParams(); if (!isset($params['lussi'])) { return false; } return true; }, function () { return array(); }, function () { return 'image/jpeg'; }); $version = Version::get($version); $version2 = $plugin->ensureValidVersion($version); $this->assertNotSame($version, $version2); $this->assertInstanceOf('Xi\\Filelib\\Version', $version2); }