ILIAS  release_9 Revision v9.13-25-g2c18ec4c24f
UserCountryTest.php
Go to the documentation of this file.
1 <?php
2 
19 declare(strict_types=1);
20 
22 
31 use ilObjUser;
32 
33 require_once __DIR__ . '/../ContainerMock.php';
34 
35 class UserCountryTest extends TestCase
36 {
37  use ContainerMock;
38 
39  public function testConstruct(): void
40  {
41  $this->assertInstanceOf(UserCountry::class, new UserCountry(
42  $this->mock(CriterionContent::class),
43  $this->mock(UserCountryDefinition::class),
44  $this->mock(UIFactory::class)
45  ));
46  }
47 
48  public function testAsComponent(): void
49  {
50  $legacy = $this->mock(Legacy::class);
51 
52  $instance = new UserCountry(
53  $this->mockTree(CriterionContent::class, ['arguments' => ['country' => 'foo']]),
54  $this->mock(UserCountryDefinition::class),
55  $this->mockTree(UIFactory::class, ['legacy' => $legacy])
56  );
57 
58  $this->assertSame($legacy, $instance->asComponent());
59  }
60 
61  public function testEval(): void
62  {
63  $instance = new UserCountry(
64  $this->mockTree(CriterionContent::class, ['arguments' => ['country' => 'foo']]),
65  $this->mock(UserCountryDefinition::class),
66  $this->mock(UIFactory::class)
67  );
68 
69  $this->assertTrue($instance->eval($this->mockTree(ilObjUser::class, ['getCountry' => 'foo'])));
70  }
71 
72  public function testDefinition(): void
73  {
74  $definition = $this->mock(UserCountryDefinition::class);
75  $instance = new UserCountry(
76  $this->mock(CriterionContent::class),
77  $definition,
78  $this->mock(UIFactory::class)
79  );
80 
81  $this->assertSame($definition, $instance->definition());
82  }
83 
84  public function testKnownToNeverMatchWith(): void
85  {
86  $instance = new UserCountry(
87  $this->mock(CriterionContent::class),
88  $this->mock(UserCountryDefinition::class),
89  $this->mock(UIFactory::class)
90  );
91 
92  $second = new UserCountry(
93  $this->mock(CriterionContent::class),
94  $this->mock(UserCountryDefinition::class),
95  $this->mock(UIFactory::class)
96  );
97 
98  $this->assertTrue($instance->knownToNeverMatchWith($second));
99  $this->assertFalse($instance->knownToNeverMatchWith($this->mock(Condition::class)));
100  }
101 }