| 
7 | 7 | use ConsumeTrait;  | 
8 | 8 | use InvalidArgumentException;  | 
9 | 9 | use PHPUnit\Framework\TestCase;  | 
 | 10 | +use RequireVersionTrait;  | 
10 | 11 | 
 
  | 
11 | 12 | /**  | 
12 | 13 |  * @covers \RdKafka\TopicConf  | 
 | 
16 | 17 |  */  | 
17 | 18 | class TopicConfTest extends TestCase  | 
18 | 19 | {  | 
 | 20 | +    use RequireVersionTrait;  | 
19 | 21 |     use ConsumeTrait;  | 
20 | 22 | 
 
  | 
21 | 23 |     public function testDump(): void  | 
@@ -119,6 +121,17 @@ public function testSetPartitionerWithUnknownId(): void  | 
119 | 121 |         $conf->setPartitioner(9999);  | 
120 | 122 |     }  | 
121 | 123 | 
 
  | 
 | 124 | +    public function testSetPartitionerWithUnsupportedTypeShouldFail(): void  | 
 | 125 | +    {  | 
 | 126 | +        $this->requiresLibrdkafkaVersion('<', '1.4.0');  | 
 | 127 | + | 
 | 128 | +        $conf = new TopicConf();  | 
 | 129 | + | 
 | 130 | +        $this->expectException(\RuntimeException::class);  | 
 | 131 | +        $this->expectExceptionMessageMatches('/rd_kafka_msg_partitioner_fnv1a_random/');  | 
 | 132 | +        $conf->setPartitioner(RD_KAFKA_MSG_PARTITIONER_FNV1A);  | 
 | 133 | +    }  | 
 | 134 | + | 
122 | 135 |     /**  | 
123 | 136 |      * @group ffiOnly  | 
124 | 137 |      */  | 
@@ -170,7 +183,11 @@ public function testSetPartitionerCbWithCallback(): void  | 
170 | 183 |         $topicConf = new TopicConf();  | 
171 | 184 |         $topicConf->setOpaque($expectedTopicOpaque);  | 
172 | 185 |         $topicConf->setPartitionerCb(  | 
173 |  | -            function (?string $key, int $partitionCount, ?object $topic_opaque = null, ?object $message_opaque = null) use (&$callbackTopicOpaque, &$callbackMessageOpaque) {  | 
 | 186 | +            function (?string $key, int $partitionCount, ?object $topic_opaque = null, ?object $message_opaque = null) use (  | 
 | 187 | +                &  | 
 | 188 | +                $callbackTopicOpaque,  | 
 | 189 | +                &$callbackMessageOpaque  | 
 | 190 | +            ) {  | 
174 | 191 |                 $callbackTopicOpaque = $topic_opaque;  | 
175 | 192 |                 $callbackMessageOpaque = $message_opaque;  | 
176 | 193 |                 // force partition 2  | 
 | 
0 commit comments