SubjectTest.php 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. <?php
  2. namespace fphammerle\yii2\auth\clientcert\tests;
  3. use \fphammerle\helpers\ArrayHelper;
  4. use \fphammerle\yii2\auth\clientcert\Subject;
  5. use \fphammerle\yii2\auth\clientcert\migrations;
  6. class SubjectTest extends TestCase
  7. {
  8. protected function setUp()
  9. {
  10. $this->mockApplication();
  11. (new migrations\CreateSubjectTable)->up();
  12. }
  13. public function testCreateModel()
  14. {
  15. (new Subject('CN=Alice,C=AT'))->save();
  16. (new Subject('CN=Alice,O=Office,C=AT'))->save();
  17. (new Subject('CN=Bob,C=AT'))->save();
  18. $subjects = ArrayHelper::map(
  19. Subject::find()->all(),
  20. function($s) { return $s->getAttributes(); }
  21. );
  22. $this->assertEquals(3, sizeof($subjects));
  23. ArrayHelper::map(
  24. [['id' => 1, 'distinguished_name' => 'CN=Alice,C=AT'],
  25. ['id' => 2, 'distinguished_name' => 'CN=Alice,O=Office,C=AT'],
  26. ['id' => 3, 'distinguished_name' => 'CN=Bob,C=AT']],
  27. function($a) use ($subjects) {
  28. $this->assertContains($a, $subjects);
  29. }
  30. );
  31. }
  32. public function testDNUnique()
  33. {
  34. $this->assertTrue((new Subject('CN=Alice,C=AT'))->save());
  35. $this->assertTrue((new Subject('CN=Bob,C=AT'))->save());
  36. $dup = new Subject('CN=Alice,C=AT');
  37. $this->assertFalse($dup->save());
  38. $this->assertEquals(1, sizeof($dup->getErrors()));
  39. $this->assertEquals(1, sizeof($dup->getErrors('distinguished_name')));
  40. }
  41. }