Http::response($this->groupsResponse, 200), ]); $groups = $this->login()->groups(); $this->assertEquals([ ['id' => 100, 'name' => 'Group', 'parent_id' => null], ], $groups->toArray()); Http::assertSent(function ($request) { return 'https://nami.dpsg.de/ica/rest/nami/gruppierungen/filtered-for-navigation/gruppierung/node/root' == $request->url(); }); Http::assertSentCount(1); } public function testHasGroupAccess(): void { Http::fake([ 'https://nami.dpsg.de/ica/rest/nami/gruppierungen/filtered-for-navigation/gruppierung/node/root' => Http::response($this->groupsResponse, 200), ]); $api = $this->login(); $this->assertTrue($api->hasGroup(100)); $this->assertFalse($api->hasGroup(10101)); Http::assertSentCount(2); } public function testGetSubgroupsForAGroup(): void { Http::fake([ 'https://nami.dpsg.de/ica/rest/nami/gruppierungen/filtered-for-navigation/gruppierung/node/root' => Http::response($this->groupsResponse, 200), 'https://nami.dpsg.de/ica/rest/nami/gruppierungen/filtered-for-navigation/gruppierung/node/100' => Http::response($this->subgroupsResponse, 200), ]); $subgroups = $this->login()->group(100)->subgroups(); $this->assertEquals([ ['id' => 101300, 'parent_id' => 100, 'name' => 'Siebengebirge'], ['id' => 100900, 'parent_id' => 100, 'name' => 'Sieg'], ['id' => 100900, 'parent_id' => 100, 'name' => 'Sieg'], ['id' => 101000, 'parent_id' => 100, 'name' => 'Voreifel'], ], $subgroups->toArray()); $subgroups->each(function ($group) { $this->assertInstanceOf(Group::class, $group); }); Http::assertSent(function ($request) { return 'https://nami.dpsg.de/ica/rest/nami/gruppierungen/filtered-for-navigation/gruppierung/node/root' == $request->url(); }); Http::assertSent(function ($request) { return 'https://nami.dpsg.de/ica/rest/nami/gruppierungen/filtered-for-navigation/gruppierung/node/100' == $request->url(); }); Http::assertSentCount(2); } }