aboutsummaryrefslogtreecommitdiffstats
path: root/tests/lib/AppFramework/Http/RequestIdTest.php
diff options
context:
space:
mode:
authorJoas Schilling <coding@schilljs.com>2022-02-18 10:21:00 +0100
committerJoas Schilling <coding@schilljs.com>2022-02-23 11:01:58 +0100
commitcc6653e45c86e8019846274b04154c96e34632cf (patch)
tree509213f7947344a95053676945721b3439d894d3 /tests/lib/AppFramework/Http/RequestIdTest.php
parent1c138d3ae28287a5a5854ef5142ee66ae88f801c (diff)
downloadnextcloud-server-cc6653e45c86e8019846274b04154c96e34632cf.tar.gz
nextcloud-server-cc6653e45c86e8019846274b04154c96e34632cf.zip
Adjust and add unit tests
Signed-off-by: Joas Schilling <coding@schilljs.com>
Diffstat (limited to 'tests/lib/AppFramework/Http/RequestIdTest.php')
-rw-r--r--tests/lib/AppFramework/Http/RequestIdTest.php76
1 files changed, 76 insertions, 0 deletions
diff --git a/tests/lib/AppFramework/Http/RequestIdTest.php b/tests/lib/AppFramework/Http/RequestIdTest.php
new file mode 100644
index 00000000000..9f9afed4b7f
--- /dev/null
+++ b/tests/lib/AppFramework/Http/RequestIdTest.php
@@ -0,0 +1,76 @@
+<?php
+
+declare(strict_types=1);
+/**
+ * @copyright Copyright (c) 2022 Joas Schilling <coding@schilljs.com>
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+namespace Test\AppFramework\Http;
+
+use OC\AppFramework\Http\RequestId;
+use OCP\Security\ISecureRandom;
+use PHPUnit\Framework\MockObject\MockObject;
+
+/**
+ * Class RequestIdTest
+ *
+ * @package OC\AppFramework\Http
+ */
+class RequestIdTest extends \Test\TestCase {
+ /** @var ISecureRandom|MockObject */
+ protected $secureRandom;
+
+ protected function setUp(): void {
+ parent::setUp();
+
+ $this->secureRandom = $this->createMock(ISecureRandom::class);
+ }
+
+ public function testGetIdWithModUnique(): void {
+ $requestId = new RequestId(
+ 'GeneratedUniqueIdByModUnique',
+ $this->secureRandom
+ );
+
+ $this->secureRandom->expects($this->never())
+ ->method('generate');
+
+ $this->assertSame('GeneratedUniqueIdByModUnique', $requestId->getId());
+ $this->assertSame('GeneratedUniqueIdByModUnique', $requestId->getId());
+ }
+
+ public function testGetIdWithoutModUnique(): void {
+ $requestId = new RequestId(
+ '',
+ $this->secureRandom
+ );
+
+ $this->secureRandom->expects($this->once())
+ ->method('generate')
+ ->with('20')
+ ->willReturnOnConsecutiveCalls(
+ 'GeneratedByNextcloudItself1',
+ 'GeneratedByNextcloudItself2',
+ 'GeneratedByNextcloudItself3'
+ );
+
+ $this->assertSame('GeneratedByNextcloudItself1', $requestId->getId());
+ $this->assertSame('GeneratedByNextcloudItself1', $requestId->getId());
+ }
+}