| 
<?phpnamespace ParagonIE\CipherSweet\Tests\Transformation;
 
 use ParagonIE\CipherSweet\Contract\TransformationInterface;
 use PHPUnit\Framework\TestCase;
 
 /**
 * Class GenericTransfomationCase
 * @package ParagonIE\CipherSweet\Tests\Transformation
 */
 abstract class GenericTransfomationCase extends TestCase
 {
 /**
 * @return TransformationInterface
 */
 abstract protected function getTransformation();
 
 /**
 * @return array<int, array<int, string>>
 */
 abstract protected function getTestCases();
 
 public function testHappyPath()
 {
 $tf = $this->getTransformation();
 $testCases = $this->getTestCases();
 foreach ($testCases as $i => $testCase) {
 list ($input, $expected) = $testCase;
 $this->assertEquals(
 $expected,
 $tf($input)
 );
 }
 }
 }
 
 |