namespace Shaarli\Api\Controllers;
+use PHPUnit\Framework\TestCase;
use Shaarli\Config\ConfigManager;
use Slim\Container;
use Slim\Http\Environment;
use Slim\Http\Request;
use Slim\Http\Response;
+use Slim\Router;
/**
* Class PostLinkTest
*
* @package Shaarli\Api\Controllers
*/
-class PostLinkTest extends \PHPUnit_Framework_TestCase
+class PostLinkTest extends TestCase
{
/**
* @var string datastore to test write operations
*/
protected static $testDatastore = 'sandbox/datastore.php';
+ /**
+ * @var string datastore to test write operations
+ */
+ protected static $testHistory = 'sandbox/history.php';
+
/**
* @var ConfigManager instance
*/
*/
protected $refDB = null;
+ /**
+ * @var \History instance.
+ */
+ protected $history;
+
/**
* @var Container instance.
*/
$this->refDB = new \ReferenceLinkDB();
$this->refDB->write(self::$testDatastore);
+ $refHistory = new \ReferenceHistory();
+ $refHistory->write(self::$testHistory);
+ $this->history = new \History(self::$testHistory);
+
$this->container = new Container();
$this->container['conf'] = $this->conf;
$this->container['db'] = new \LinkDB(self::$testDatastore, true, false);
+ $this->container['history'] = new \History(self::$testHistory);
$this->controller = new Links($this->container);
- $mock = $this->getMock('\Slim\Router', ['relativePathFor']);
+ $mock = $this->createMock(Router::class);
$mock->expects($this->any())
->method('relativePathFor')
->willReturn('api/v1/links/1');
public function tearDown()
{
@unlink(self::$testDatastore);
+ @unlink(self::$testHistory);
}
/**
$this->assertEquals(false, $data['private']);
$this->assertTrue(new \DateTime('5 seconds ago') < \DateTime::createFromFormat(\DateTime::ATOM, $data['created']));
$this->assertEquals('', $data['updated']);
+
+ $historyEntry = $this->history->getHistory()[0];
+ $this->assertEquals(\History::CREATED, $historyEntry['event']);
+ $this->assertTrue(
+ (new \DateTime())->add(\DateInterval::createFromDateString('-5 seconds')) < $historyEntry['datetime']
+ );
+ $this->assertEquals(43, $historyEntry['id']);
}
/**