ILIAS  release_9 Revision v9.13-25-g2c18ec4c24f
WithdrawProcessTest.php
Go to the documentation of this file.
1 <?php
2 
19 declare(strict_types=1);
20 
22 
35 
36 require_once __DIR__ . '/../../ContainerMock.php';
37 
38 class WithdrawProcessTest extends TestCase
39 {
40  use ContainerMock;
41 
42  public function testConstruct(): void
43  {
44  $this->assertInstanceOf(WithdrawProcess::class, new WithdrawProcess(
45  $this->mock(User::class),
46  $this->mock(UI::class),
47  $this->mock(Routing::class),
48  $this->mock(Settings::class),
49  $this->fail(...),
50  $this->mock(Provide::class),
51  $this->fail(...)
52  ));
53  }
54 
55  public function testShowValidatePasswordMessage(): void
56  {
57  $instance = new WithdrawProcess(
58  $this->mock(User::class),
59  $this->mock(UI::class),
60  $this->mock(Routing::class),
61  $this->mock(Settings::class),
62  fn() => 'internal',
63  $this->mock(Provide::class),
64  $this->fail(...)
65  );
66 
67  $array = $instance->showValidatePasswordMessage();
68  $this->assertSame(2, count($array));
69  $this->assertInstanceOf(Component::class, $array[0]);
70  $this->assertInstanceOf(Component::class, $array[1]);
71  }
72 
73  public function testIsOnGoing(): void
74  {
75  $instance = new WithdrawProcess(
76  $this->mockTree(User::class, ['withdrawalRequested' => ['value' => true]]),
77  $this->mock(UI::class),
78  $this->mock(Routing::class),
79  $this->mock(Settings::class),
80  $this->fail(...),
81  $this->mock(Provide::class),
82  $this->fail(...)
83  );
84 
85  $this->assertTrue($instance->isOnGoing());
86  }
87 
88  public function testWithdrawalRequested(): void
89  {
90  $setting = $this->mock(Setting::class);
91  $setting->expects(self::once())->method('update')->with(true);
92 
93  $instance = new WithdrawProcess(
94  $this->mockTree(User::class, ['cannotAgree' => false, 'neverAgreed' => false, 'withdrawalRequested' => $setting]),
95  $this->mock(UI::class),
96  $this->mock(Routing::class),
97  $this->mock(Settings::class),
98  $this->fail(...),
99  $this->mock(Provide::class),
100  $this->fail(...)
101  );
102 
103  $instance->withdrawalRequested();
104  }
105 
107  {
108  $instance = new WithdrawProcess(
109  $this->mockTree(User::class, ['cannotAgree' => true, 'neverAgreed' => false]),
110  $this->mock(UI::class),
111  $this->mock(Routing::class),
112  $this->mock(Settings::class),
113  $this->fail(...),
114  $this->mock(Provide::class),
115  $this->fail(...)
116  );
117 
118  $instance->withdrawalRequested();
119  $this->assertTrue(true);
120  }
121 
122  public function testWithdrawalFinished(): void
123  {
124  $main_template = $this->mock(ilGlobalTemplateInterface::class);
125  $main_template->expects(self::once())->method('setOnScreenMessage');
126 
127  $instance = new WithdrawProcess(
128  $this->mock(User::class),
129  $this->mockTree(UI::class, ['mainTemplate' => $main_template]),
130  $this->mock(Routing::class),
131  $this->mock(Settings::class),
132  fn() => null,
133  $this->mock(Provide::class),
134  $this->fail(...)
135  );
136 
137  $instance->withdrawalFinished();
138  }
139 
140  public function testShowWithdraw(): void
141  {
142  $instance = new WithdrawProcess(
143  $this->mock(User::class),
144  $this->mock(UI::class),
145  $this->mock(Routing::class),
146  $this->mock(Settings::class),
147  $this->fail(...),
148  $this->mock(Provide::class),
149  $this->fail(...)
150  );
151 
152  $this->assertInstanceOf(PageFragment::class, $instance->showWithdraw('foo', ''));
153  }
154 }
ilSetting $setting
Definition: class.ilias.php:54