|
4 | 4 |
|
5 | 5 | use Mockery; |
6 | 6 | use PhpMcp\Server\Configuration; |
7 | | -use PhpMcp\Server\Model\Capabilities; // Import the Capabilities model |
| 7 | +use PhpMcp\Server\Model\Capabilities; |
8 | 8 | use Psr\Container\ContainerInterface; |
9 | 9 | use Psr\Log\LoggerInterface; |
10 | 10 | use Psr\SimpleCache\CacheInterface; |
|
17 | 17 | $this->loop = Mockery::mock(LoopInterface::class); |
18 | 18 | $this->cache = Mockery::mock(CacheInterface::class); |
19 | 19 | $this->container = Mockery::mock(ContainerInterface::class); |
20 | | - // Create a default Capabilities object for testing |
21 | 20 | $this->capabilities = Capabilities::forServer(); |
22 | 21 | }); |
23 | 22 |
|
|
27 | 26 |
|
28 | 27 | it('constructs configuration object with all properties', function () { |
29 | 28 | $ttl = 1800; |
30 | | - // Pass the capabilities object to the constructor |
| 29 | + $paginationLimit = 100; |
31 | 30 | $config = new Configuration( |
32 | 31 | serverName: $this->name, |
33 | 32 | serverVersion: $this->version, |
34 | | - capabilities: $this->capabilities, // Pass capabilities |
| 33 | + capabilities: $this->capabilities, |
35 | 34 | logger: $this->logger, |
36 | 35 | loop: $this->loop, |
37 | 36 | cache: $this->cache, |
38 | 37 | container: $this->container, |
39 | | - definitionCacheTtl: $ttl |
| 38 | + definitionCacheTtl: $ttl, |
| 39 | + paginationLimit: $paginationLimit |
40 | 40 | ); |
41 | 41 |
|
42 | 42 | expect($config->serverName)->toBe($this->name); |
43 | 43 | expect($config->serverVersion)->toBe($this->version); |
44 | | - expect($config->capabilities)->toBe($this->capabilities); // Assert capabilities |
| 44 | + expect($config->capabilities)->toBe($this->capabilities); |
45 | 45 | expect($config->logger)->toBe($this->logger); |
46 | 46 | expect($config->loop)->toBe($this->loop); |
47 | 47 | expect($config->cache)->toBe($this->cache); |
48 | 48 | expect($config->container)->toBe($this->container); |
49 | 49 | expect($config->definitionCacheTtl)->toBe($ttl); |
| 50 | + expect($config->paginationLimit)->toBe($paginationLimit); |
50 | 51 | }); |
51 | 52 |
|
52 | 53 | it('constructs configuration object with default TTL', function () { |
53 | | - // Pass capabilities object |
54 | 54 | $config = new Configuration( |
55 | 55 | serverName: $this->name, |
56 | 56 | serverVersion: $this->version, |
57 | | - capabilities: $this->capabilities, // Pass capabilities |
| 57 | + capabilities: $this->capabilities, |
58 | 58 | logger: $this->logger, |
59 | 59 | loop: $this->loop, |
60 | 60 | cache: $this->cache, |
61 | 61 | container: $this->container |
62 | | - // No TTL provided |
63 | 62 | ); |
64 | 63 |
|
65 | 64 | expect($config->definitionCacheTtl)->toBe(3600); // Default value |
66 | 65 | }); |
67 | 66 |
|
| 67 | +it('constructs configuration object with default pagination limit', function () { |
| 68 | + $config = new Configuration( |
| 69 | + serverName: $this->name, |
| 70 | + serverVersion: $this->version, |
| 71 | + capabilities: $this->capabilities, |
| 72 | + logger: $this->logger, |
| 73 | + loop: $this->loop, |
| 74 | + cache: $this->cache, |
| 75 | + container: $this->container |
| 76 | + ); |
| 77 | + |
| 78 | + expect($config->paginationLimit)->toBe(50); // Default value |
| 79 | +}); |
| 80 | + |
68 | 81 | it('constructs configuration object with null cache', function () { |
69 | | - // Pass capabilities object |
70 | 82 | $config = new Configuration( |
71 | 83 | serverName: $this->name, |
72 | 84 | serverVersion: $this->version, |
73 | | - capabilities: $this->capabilities, // Pass capabilities |
| 85 | + capabilities: $this->capabilities, |
74 | 86 | logger: $this->logger, |
75 | 87 | loop: $this->loop, |
76 | | - cache: null, // Explicitly null cache |
| 88 | + cache: null, |
77 | 89 | container: $this->container |
78 | 90 | ); |
79 | 91 |
|
80 | 92 | expect($config->cache)->toBeNull(); |
81 | 93 | }); |
82 | 94 |
|
83 | 95 | it('constructs configuration object with specific capabilities', function () { |
84 | | - // Create specific capabilities |
85 | 96 | $customCaps = Capabilities::forServer( |
86 | 97 | resourcesSubscribe: true, |
87 | 98 | loggingEnabled: true, |
|
91 | 102 | $config = new Configuration( |
92 | 103 | serverName: $this->name, |
93 | 104 | serverVersion: $this->version, |
94 | | - capabilities: $customCaps, // Pass custom capabilities |
| 105 | + capabilities: $customCaps, |
95 | 106 | logger: $this->logger, |
96 | 107 | loop: $this->loop, |
97 | 108 | cache: null, |
|
0 commit comments