1 | <?php |
||
10 | class InMemoryUserRepository implements UserRepositoryInterface |
||
11 | { |
||
12 | /** @var User[] */ |
||
13 | private $users = []; |
||
14 | |||
15 | public function __construct() |
||
16 | { |
||
17 | $user = new User( |
||
18 | 'wouter', |
||
19 | 'test', |
||
20 | 'Wouter Sioen', |
||
21 | '[email protected]', |
||
22 | 1 |
||
23 | ); |
||
24 | |||
25 | $this->users[] = $user; |
||
26 | |||
27 | $passwordResetUser = new User( |
||
28 | 'reset', |
||
29 | 'reset', |
||
30 | 'reset', |
||
31 | '[email protected]', |
||
32 | 2, |
||
33 | PasswordResetToken::generate() |
||
34 | ); |
||
35 | |||
36 | $this->users[] = $passwordResetUser; |
||
37 | } |
||
38 | |||
39 | public function findByUsername($username) |
||
40 | { |
||
41 | foreach ($this->users as $user) { |
||
42 | if ($user->getUsername() === $username) { |
||
43 | return $user; |
||
44 | } |
||
45 | } |
||
46 | |||
47 | return null; |
||
48 | } |
||
49 | |||
50 | /** |
||
51 | * @param string $emailAddress |
||
52 | * |
||
53 | * @return UserInterface|null |
||
54 | */ |
||
55 | public function findByEmailAddress($emailAddress) |
||
56 | { |
||
57 | foreach ($this->users as $user) { |
||
58 | if ($user->getEmail() === $emailAddress) { |
||
59 | return $user; |
||
60 | } |
||
61 | } |
||
62 | |||
63 | return null; |
||
64 | } |
||
65 | |||
66 | public function find($id) |
||
67 | { |
||
68 | foreach ($this->users as $user) { |
||
69 | if ($user->getId() === $id) { |
||
70 | return $user; |
||
71 | } |
||
72 | } |
||
73 | |||
74 | return null; |
||
75 | } |
||
76 | |||
77 | public function supportsClass($class) |
||
78 | { |
||
79 | return $class === User::class; |
||
80 | } |
||
81 | |||
82 | public function findByPasswordResetToken(PasswordResetToken $token) |
||
83 | { |
||
84 | return $this->findByUsername('reset'); |
||
85 | } |
||
86 | |||
87 | public function add(UserInterface $user) |
||
91 | |||
92 | /** |
||
93 | * {@inheritdoc} |
||
94 | * |
||
95 | * This does nothing here since the objects get updated by reference when changing them in the tests |
||
96 | */ |
||
97 | public function save(UserInterface $user) |
||
100 | |||
101 | public function delete(UserInterface $user) |
||
102 | { |
||
103 | foreach ($this->users as $key => $row) { |
||
104 | if ($row->getUserName() === $user->getUserName()) { |
||
105 | unset($this->users[$key]); |
||
106 | break; |
||
110 | } |
||
111 |