70 lines
2.1 KiB
Markdown
70 lines
2.1 KiB
Markdown
|
|
```php title="PHP"
|
||
|
|
<?php declare(strict_types=1);
|
||
|
|
|
||
|
|
use Kreuzberg\Kreuzberg;
|
||
|
|
use PHPUnit\Framework\TestCase;
|
||
|
|
|
||
|
|
class CustomPluginTest extends TestCase {
|
||
|
|
private object $plugin;
|
||
|
|
private object $mockResult;
|
||
|
|
private object $mockConfig;
|
||
|
|
|
||
|
|
protected function setUp(): void {
|
||
|
|
// Create mock extraction result
|
||
|
|
$this->mockResult = (object)[
|
||
|
|
'content' => 'Test content with some words',
|
||
|
|
'mime_type' => 'text/plain',
|
||
|
|
'metadata' => [],
|
||
|
|
'tables' => [],
|
||
|
|
'detected_languages' => ['eng'],
|
||
|
|
'chunks' => null,
|
||
|
|
'images' => null,
|
||
|
|
];
|
||
|
|
|
||
|
|
// Create mock extraction config
|
||
|
|
$this->mockConfig = (object)[];
|
||
|
|
|
||
|
|
// Initialize plugin
|
||
|
|
$this->plugin = new WordCountProcessor();
|
||
|
|
$this->plugin->initialize();
|
||
|
|
}
|
||
|
|
|
||
|
|
protected function tearDown(): void {
|
||
|
|
$this->plugin->shutdown();
|
||
|
|
}
|
||
|
|
|
||
|
|
public function testPluginInitialization(): void {
|
||
|
|
$this->assertNotNull($this->plugin);
|
||
|
|
$this->assertEqual($this->plugin->name(), "word-count");
|
||
|
|
}
|
||
|
|
|
||
|
|
public function testPluginProcessing(): void {
|
||
|
|
// Test that plugin processes results
|
||
|
|
$this->plugin->process($this->mockResult, $this->mockConfig);
|
||
|
|
|
||
|
|
$this->assertArrayHasKey('word_count', $this->mockResult->metadata);
|
||
|
|
$this->assertGreaterThan(0, $this->mockResult->metadata['word_count']);
|
||
|
|
}
|
||
|
|
|
||
|
|
public function testShouldProcess(): void {
|
||
|
|
// Test shouldProcess logic
|
||
|
|
$this->assertTrue($this->plugin->shouldProcess($this->mockResult, $this->mockConfig));
|
||
|
|
|
||
|
|
// Empty content should not process
|
||
|
|
$emptyResult = (object)['content' => ''];
|
||
|
|
$this->assertFalse($this->plugin->shouldProcess($emptyResult, $this->mockConfig));
|
||
|
|
}
|
||
|
|
|
||
|
|
public function testProcessingStage(): void {
|
||
|
|
$stage = $this->plugin->processingStage();
|
||
|
|
$this->assertEqual($stage, "Early");
|
||
|
|
}
|
||
|
|
|
||
|
|
public function testPriority(): void {
|
||
|
|
$priority = $this->plugin->priority();
|
||
|
|
$this->assertGreaterThanOrEqual(0, $priority);
|
||
|
|
$this->assertLessThanOrEqual(255, $priority);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
```
|