OAuthTokenFixture.php 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. <?php
  2. /**
  3. * Refer to LICENSE.txt distributed with the Temando Shipping module for notice of license
  4. */
  5. namespace Temando\Shipping\Test\Integration\Fixture;
  6. use Magento\Integration\Model\Oauth\Token;
  7. use Magento\TestFramework\Helper\Bootstrap;
  8. use Magento\User\Model\User as AdminUser;
  9. /**
  10. * OAuthTokenFixture
  11. *
  12. * @package Temando\Shipping\Test
  13. * @author Christoph Aßmann <christoph.assmann@netresearch.de>
  14. * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
  15. * @link http://www.temando.com/
  16. */
  17. final class OAuthTokenFixture
  18. {
  19. private static $adminNameWithToken = 'with.token';
  20. private static $adminNameWithNoToken = 'with.no.token';
  21. public function createOAuthToken()
  22. {
  23. /** @var AdminUser $adminWithToken */
  24. $adminWithToken = Bootstrap::getObjectManager()->create(AdminUser::class, ['data' => [
  25. 'username' => self::$adminNameWithToken,
  26. 'password' => 'bar0bar',
  27. 'firstname' => 'Foo',
  28. 'lastname' => 'Bar',
  29. 'email' => 'foo@example.com',
  30. ]]);
  31. $adminWithToken->setDataChanges(true);
  32. $adminWithToken->save();
  33. /** @var AdminUser $adminWithNoToken */
  34. $adminWithNoToken = Bootstrap::getObjectManager()->create(AdminUser::class, ['data' => [
  35. 'username' => self::$adminNameWithNoToken,
  36. 'password' => 'baz8baz',
  37. 'firstname' => 'Fox',
  38. 'lastname' => 'Baz',
  39. 'email' => 'fox@example.com',
  40. ]]);
  41. $adminWithNoToken->setDataChanges(true);
  42. $adminWithNoToken->save();
  43. /** @var Token $token */
  44. $token = Bootstrap::getObjectManager()->create(Token::class);
  45. $token->createAdminToken($adminWithToken->getId());
  46. }
  47. /**
  48. * Rollback data. Note:
  49. * - with db isolation enabled, the entities do no longer exist and must not be cleaned up
  50. * - with db isolation disabled, the entities do still exist and must be cleaned up
  51. */
  52. public function rollbackOAuthToken()
  53. {
  54. /** @var AdminUser $adminWithToken */
  55. $adminWithToken = Bootstrap::getObjectManager()->create(AdminUser::class);
  56. $adminWithToken->loadByUsername(self::$adminNameWithToken);
  57. if ($adminWithToken->getId()) {
  58. $adminWithToken->delete();
  59. }
  60. /** @var AdminUser $adminWithNoToken */
  61. $adminWithNoToken = Bootstrap::getObjectManager()->create(AdminUser::class);
  62. $adminWithNoToken->loadByUsername(self::$adminNameWithNoToken);
  63. if ($adminWithNoToken->getId()) {
  64. $adminWithNoToken->delete();
  65. }
  66. }
  67. // ---------- GETTERS FOR ASSERTIONS / LOADING FIXTURE ENTITIES --------- //
  68. /**
  69. * @return string
  70. */
  71. public static function getAdminNameWithToken()
  72. {
  73. return self::$adminNameWithToken;
  74. }
  75. /**
  76. * @return string
  77. */
  78. public static function getAdminNameWithNoToken()
  79. {
  80. return self::$adminNameWithNoToken;
  81. }
  82. // ------------------------- STATIC ENTRYPOINTS ------------------------- //
  83. public static function createOAuthTokenFixture()
  84. {
  85. /** @var OAuthTokenFixture $self */
  86. $self = Bootstrap::getObjectManager()->create(static::class);
  87. $self->createOAuthToken();
  88. }
  89. public static function createOAuthTokenFixtureRollback()
  90. {
  91. /** @var OAuthTokenFixture $self */
  92. $self = Bootstrap::getObjectManager()->create(static::class);
  93. $self->rollbackOAuthToken();
  94. }
  95. }