TestCase.php 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. <?php
  2. namespace fphammerle\yii2\auth\clientcert\tests;
  3. use \fphammerle\yii2\auth\clientcert;
  4. abstract class TestCase extends \PHPUnit_Framework_TestCase
  5. {
  6. public function mockApplication($app_config = [])
  7. {
  8. $app_config_default = [
  9. 'id' => 'yii2-client-cert-auth-test',
  10. 'basePath' => __DIR__,
  11. // 'vendorPath' => dirname(__DIR__) . '/vendor',
  12. 'components' => [
  13. 'db' => [
  14. 'class' => '\yii\db\Connection',
  15. 'dsn' => 'sqlite::memory:',
  16. ],
  17. 'user' => [
  18. 'identityClass' => models\User::className(),
  19. ],
  20. ],
  21. ];
  22. $app = new \yii\web\Application(
  23. array_replace_recursive($app_config_default, $app_config)
  24. );
  25. if(!isset($app_config['components']['db'])
  26. || !is_object($app_config['components']['db'])) {
  27. $this->assertEquals([], $app->db->getSchema()->getTableNames());
  28. ob_start();
  29. (new clientcert\tests\migrations\CreateUserTable)->up();
  30. ob_end_clean();
  31. }
  32. return $app;
  33. }
  34. public function createUser($username)
  35. {
  36. $u = new models\User;
  37. $u->username = $username;
  38. $this->assertTrue($u->save());
  39. return $u;
  40. }
  41. public function createSubject($user, $dn)
  42. {
  43. $subj = new clientcert\Subject;
  44. $subj->identity = $user;
  45. $subj->distinguished_name = $dn;
  46. $this->assertTrue($subj->save());
  47. return $subj;
  48. }
  49. public function createSubjectTable()
  50. {
  51. ob_start();
  52. (new clientcert\migrations\m170716_175707_create_identity_cert_subject_table)->up();
  53. ob_end_clean();
  54. }
  55. public function getIdentity()
  56. {
  57. return \Yii::$app->user->getIdentity();
  58. }
  59. }