1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
|
<?php
namespace Wikimedia\Tests\Message;
use MediaWiki\Json\JsonCodec;
use Wikimedia\Tests\SerializationTestTrait;
trait MessageSerializationTestTrait {
use SerializationTestTrait;
/**
* Overrides SerializationTestTrait::getSerializedDataPath
* @return string
*/
public static function getSerializedDataPath(): string {
return __DIR__ . '/../../../../data/MessageValue';
}
/**
* Overrides SerializationTestTrait::getTestInstancesAndAssertions
* @return array
*/
public static function getTestInstancesAndAssertions(): array {
$className = self::getClassToTest();
return array_map( static function ( $test ) use ( $className ) {
[ $args, $expected ] = $test;
$obj = new $className( ...$args );
return [
'instance' => $obj,
'assertions' => static function ( $testCase, $obj ) use ( $expected ) {
$testCase->assertSame( $expected, $obj->dump() );
},
];
}, self::provideConstruct() );
}
/**
* Overrides SerializationTestTrait::getSupportedSerializationFormats
* @return array
*/
public static function getSupportedSerializationFormats(): array {
$jsonCodec = new JsonCodec();
return [ [
'ext' => 'json',
'serializer' => static function ( $obj ) use ( $jsonCodec ) {
return $jsonCodec->serialize( $obj );
},
'deserializer' => static function ( $data ) use ( $jsonCodec ) {
return $jsonCodec->deserialize( $data );
},
] ];
}
}
|