MCPcopy Create free account
hub / github.com/Rello/analytics / ActivityAccessTest

Class ActivityAccessTest

tests/Activity/ActivityAccessTest.php:29–106  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

27use Psr\Log\LoggerInterface;
28
29class ActivityAccessTest extends TestCase {
30 public function testActivityManagerSkipsRecipientsWithoutAnalyticsAccess(): void {
31 $event = new FakeActivityEvent();
32 $activityBackend = new RecordingActivityBackend($event);
33
34 $shareMapper = $this->createMock(ShareMapper::class);
35 $shareMapper->expects($this->once())
36 ->method('getSharedReceiver')
37 ->with(ShareService::SHARE_ITEM_TYPE_REPORT, 10)
38 ->willReturn([
39 ['uid_owner' => 'blocked'],
40 ['uid_owner' => 'allowed'],
41 ]);
42
43 $reportMapper = $this->createMock(ReportMapper::class);
44 $reportMapper->expects($this->once())
45 ->method('readOwn')
46 ->with(10)
47 ->willReturn(['name' => 'Revenue']);
48
49 $userManager = new FakeUserManager([
50 'author' => new FakeUser('author'),
51 'allowed' => new FakeUser('allowed'),
52 'blocked' => new FakeUser('blocked'),
53 ]);
54 $appManager = new FakeAppManager([
55 'author' => true,
56 'allowed' => true,
57 'blocked' => false,
58 ]);
59
60 $manager = new ActivityManager(
61 $activityBackend,
62 $shareMapper,
63 'author',
64 $reportMapper,
65 $this->createMock(DatasetMapper::class),
66 $this->createMock(LoggerInterface::class),
67 $this->createMock(PanoramaMapper::class),
68 $appManager,
69 $userManager
70 );
71
72 $manager->triggerEvent(10, ActivityManager::OBJECT_REPORT, ActivityManager::SUBJECT_REPORT_SHARE);
73
74 $this->assertSame(['allowed', 'author'], $activityBackend->publishedUsers);
75 }
76
77 public function testProviderHidesAnalyticsActivityForRestrictedUsers(): void {
78 $provider = $this->createProvider('blocked', ['blocked' => false]);
79
80 $this->expectException(UnknownActivityException::class);
81
82 $provider->parse('en', FakeActivityEvent::analyticsReportShare());
83 }
84
85 public function testProviderRendersAnalyticsActivityForAllowedUsers(): void {
86 $event = FakeActivityEvent::analyticsReportShare();

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected