TestCase.php 2.0 KB

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