Code Coverage |
||||||||||
Lines |
Functions and Methods |
Classes and Traits |
||||||||
| Total | |
100.00% |
23 / 23 |
|
100.00% |
1 / 1 |
CRAP | |
100.00% |
1 / 1 |
| MockFactory | |
100.00% |
23 / 23 |
|
100.00% |
1 / 1 |
2 | |
100.00% |
1 / 1 |
| __construct | n/a |
0 / 0 |
n/a |
0 / 0 |
1 | |||||
| createMockAiClient | |
100.00% |
23 / 23 |
|
100.00% |
1 / 1 |
1 | |||
| 1 | <?php |
| 2 | namespace Apie\IntegrationTests\Applications; |
| 3 | |
| 4 | use Apie\AiInstructor\AiClient; |
| 5 | use Symfony\Component\HttpClient\MockHttpClient; |
| 6 | use Symfony\Component\HttpClient\Response\MockResponse; |
| 7 | |
| 8 | final class MockFactory |
| 9 | { |
| 10 | /** |
| 11 | * @codeCoverageIgnore |
| 12 | */ |
| 13 | private function __construct() |
| 14 | { |
| 15 | } |
| 16 | |
| 17 | public static function createMockAiClient(): AiClient |
| 18 | { |
| 19 | $responseFactory = function () { |
| 20 | return new MockResponse(json_encode([ |
| 21 | "model" => "test-model", |
| 22 | "created_at" => "2025-04-19T14:03:51.5655428Z", |
| 23 | "message" => [ |
| 24 | "role" => "assistant", |
| 25 | "content" => '"CZ"', |
| 26 | ], |
| 27 | "done_reason" => "stop", |
| 28 | "done" => true, |
| 29 | "total_duration" => 2320197200, |
| 30 | "load_duration" => 18822000, |
| 31 | "prompt_eval_count" => 69, |
| 32 | "prompt_eval_duration" => 1945480500, |
| 33 | "eval_count" => 5, |
| 34 | "eval_duration" => 341499600, |
| 35 | ])); |
| 36 | }; |
| 37 | return AiClient::create( |
| 38 | new MockHttpClient($responseFactory), |
| 39 | 'http://llm:5432/test', |
| 40 | 'secret' |
| 41 | ); |
| 42 | } |
| 43 | } |