ILIAS  release_8 Revision v8.19
All Data Structures Namespaces Files Functions Variables Modules Pages
ilBuddySystemRelationStateInitiatorShouldOnlyBeAbleToCancelRequestRuleTest.php
Go to the documentation of this file.
1 <?php
2 
19 declare(strict_types=1);
20 
22 
24 {
25  public function testConstruct(): void
26  {
27  $relation = $this->mock(ilBuddySystemRelation::class);
28  $this->assertInstanceOf(
29  Cancel::class,
30  new Cancel($relation)
31  );
32  }
33 
34  public function testMatches(): void
35  {
36  $relation = $this->mock(ilBuddySystemRelation::class);
37  $relation->expects(self::once())->method('isRequested')->willReturn(true);
38  $relation->expects(self::once())->method('isOwnedByActor')->willReturn(true);
39  $instance = new Cancel($relation);
40 
41  $this->assertTrue($instance->matches());
42  }
43 
44  public function testMatchesRequested(): void
45  {
46  $relation = $this->mock(ilBuddySystemRelation::class);
47  $relation->expects(self::once())->method('isRequested')->willReturn(false);
48  $relation->expects(self::never())->method('isOwnedByActor');
49  $instance = new Cancel($relation);
50 
51  $this->assertFalse($instance->matches());
52  }
53 
54  public function testMatchesOwned(): void
55  {
56  $relation = $this->mock(ilBuddySystemRelation::class);
57  $relation->expects(self::once())->method('isRequested')->willReturn(true);
58  $relation->expects(self::once())->method('isOwnedByActor')->willReturn(false);
59  $instance = new Cancel($relation);
60 
61  $this->assertFalse($instance->matches());
62  }
63 
64  public function testInvokeFalse(): void
65  {
66  $relation = $this->mock(ilBuddySystemRelation::class);
67  $state = $this->mock(ilBuddySystemRelationState::class);
68 
69  $instance = new Cancel($relation);
70 
71  $this->assertFalse($instance($state));
72  }
73 
74  public function testInvoke(): void
75  {
76  $relation = $this->mock(ilBuddySystemRelation::class);
77  $state = $this->mock(ilBuddySystemUnlinkedRelationState::class);
78 
79  $instance = new Cancel($relation);
80 
81  $this->assertTrue($instance($state));
82  }
83 
84  private function mock(string $className)
85  {
86  return $this->getMockBuilder($className)->disableOriginalConstructor()->getMock();
87  }
88 }