TokensTableTest.php 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. <?php
  2. namespace Tools\Test\Model\Table;
  3. use Cake\ORM\TableRegistry;
  4. use Tools\Model\Table\TokensTable;
  5. use Tools\TestSuite\TestCase;
  6. class TokensTableTest extends TestCase {
  7. /**
  8. * @var \Tools\Model\Table\TokensTable;
  9. */
  10. public $Tokens;
  11. /**
  12. * @var array
  13. */
  14. public $fixtures = ['plugin.Tools.Tokens'];
  15. public function setUp() {
  16. parent::setUp();
  17. $this->Tokens = TableRegistry::get('Tools.Tokens');
  18. }
  19. public function testTokenInstance() {
  20. $this->assertInstanceOf('Tools\Model\Table\TokensTable', $this->Tokens);
  21. }
  22. public function testGenerateKey() {
  23. $key = $this->Tokens->generateKey(4);
  24. //pr($key);
  25. $this->assertTrue(!empty($key) && strlen($key) === 4);
  26. }
  27. public function testNewKeySpendKey() {
  28. $key = $this->Tokens->newKey('test', null, null, 'xyz');
  29. $this->assertTrue(!empty($key));
  30. $res = $this->Tokens->useKey('test', $key);
  31. //pr($res);
  32. $this->assertTrue(!empty($res));
  33. $res = $this->Tokens->useKey('test', $key);
  34. //pr($res);
  35. $this->assertTrue(!empty($res) && !empty($res['used']));
  36. $res = $this->Tokens->useKey('test', $key . 'x');
  37. $this->assertFalse($res);
  38. $res = $this->Tokens->useKey('testx', $key);
  39. $this->assertFalse($res);
  40. }
  41. public function testGarbageCollector() {
  42. $data = [
  43. 'created' => date(FORMAT_DB_DATETIME, time() - 3 * MONTH),
  44. 'type' => 'y',
  45. 'key' => 'x'
  46. ];
  47. $entity = $this->Tokens->newEntity($data, ['validate' => false]);
  48. $this->Tokens->save($entity);
  49. $count = $this->Tokens->find('count');
  50. $this->Tokens->garbageCollector();
  51. $count2 = $this->Tokens->find('count');
  52. $this->assertTrue($count > $count2);
  53. }
  54. }