/** * @expectedException InvalidArgumentException * @expectedExceptionMessage Invalid extendee, ProtobufTest\Protos\Extension\Animal is expected but ProtobufTest\Protos\Extension\Cat given */ public function testInvalidArgumentExceptionExtendee() { $animal = new Cat(); $extensions = new ExtensionFieldMap(Animal::CLASS); $extension = new ExtensionField(Cat::CLASS, 'animal', 200, function () { }, function () { }, function () { }); $extensions->put($extension, $animal); }