Odyssey
UserTest.php
1 <?php
2 
3 use PHPUnit\Framework\MockObject\MockObject;
4 use PHPUnit\Framework\TestCase;
5 require_once('User.php');
6 
7 /**
8  * Class UserTest.
9  *
10  * @covers \User
11  */
12 class UserTest extends TestCase {
13  /**
14  * @var User $user An instance of "User" to test.
15  */
16  private $user;
17 
18  /**
19  * {@inheritdoc}
20  */
21  protected function setUp() {
22  parent::setUp();
23 
24  $this->userRepo = $this
25  ->getMockBuilder(UserRepo::class)
26  ->setMethods(['Read'])
27  ->getMock();
28 
29  $this->creditUnion = 'CRUISECU';
30  $this->user_name = 'Methuselah';
31 
32  $this->userData = [
33  "confidence" => 'HIGH',
34  'cuuser_group_id' => 31,
35  'email' => 'homer@homecu.net',
36  'failedremain' => 10,
37  'flog' => '2013/09/16 12:34:56',
38  'forcechange' => 'N',
39  'fremain' => 3,
40  'llog' => '2016/07/08 11:29:56',
41  'mfaquest' => '{"answers":{"54":"Boise","64":"Boise","65":"Boise"},"challenge":0}',
42  'msg_tx' => 2,
43  'passwd' => '$1$oGmqS9ff$4uVft0kWxIcXeJYYKtVZ70',
44  'pchange' => '2019-06-11T12:34:56.123456Z',
45  'primary_account' => 'admin',
46  'savecqid' => 0,
47  'user_id' => 19,
48  'user_name' => 'Methuselah',
49  'userflags' => 18
50  ];
51 
52  $this->userRepo
53  ->expects(static::any())
54  ->method('Read')
55  ->with($this->user_name)
56  ->willReturn($this->userData);
57  }
58 
59  /**
60  * @covers \User::__construct
61  */
62  public function testConstruct() {
63  $user = new User($this->user_name, $this->creditUnion, $this->userRepo);
64  static::assertInstanceOf('User', $user);
65  static::assertEquals($user->data['user_name'], $this->user_name);
66  static::assertEquals($user->data['confidence'], 'HIGH');
67  static::assertEquals($user->data['passwd'], '$1$oGmqS9ff$4uVft0kWxIcXeJYYKtVZ70');
68  }
69 
70  /**
71  * @covers \User::DecodeMFAJson
72  */
73  public function testDecodeMFAJson() {
74  $user = new User($this->user_name, $this->creditUnion, $this->userRepo);
75  static::assertTrue(is_array($user->data['mfaquest']));
76  static::assertArrayHasKey('mfacount', $user->data['mfaquest']);
77  static::assertEquals(3, $user->data['mfaquest']['mfacount']);
78  static::assertArrayHasKey('answers', $user->data['mfaquest']);
79  static::assertNull($user->data['mfaquest']['authcode']);
80  }
81 
82 }
Definition: User.php:7
testConstruct()
Definition: UserTest.php:62
testDecodeMFAJson()
Definition: UserTest.php:73