/** * @dataProvider formatProvider * * @covers ShortCode\Reversible::convert * @covers ShortCode\Reversible::revert * * @param $format * @param $formatName */ public function testRevertGeneratedCode($format, $formatName) { $sizes = ['xs', 's', 'm', 'l', 'xl', 'xxl']; $codes = []; $inputs = ['xs' => 6, 's' => 87, 'm' => 389, 'l' => 4387652, 'xl' => 912791662310, 'xxl' => PHP_INT_MAX]; foreach ($sizes as $val) { $codes[$val] = Reversible::convert($inputs[$val], $format); } foreach ($sizes as $val) { $message = "Trying with {$inputs[$val]} using {$formatName}"; $this->assertEquals($inputs[$val], Reversible::revert($codes[$val], $format), $message); } }
/** * @dataProvider formatProvider * * @covers ShortCode\Reversible::convert * @covers ShortCode\Reversible::revert * * @param $format * @param $formatName */ public function testGeneratedCodeWithMinLength($format, $formatName) { $sizes = ['xs', 's', 'm', 'l', 'xl']; $lengths = [4, 8]; $codes = []; $inputs = array_combine($sizes, [6, 87, 389, 4387652, 912791662310]); // Skipping PHP_INT_MAX as it will throw InputIsTooLarge Exception foreach ($sizes as $val) { foreach ($lengths as $length) { $codes[$length][$val] = Reversible::convert($inputs[$val], $format, $length); // echo "$length character $formatName for {$inputs[$val]} : {$codes[$length][$val]}" . PHP_EOL; $this->assertGreaterThanOrEqual($length, strlen($codes[$length][$val])); } } foreach ($sizes as $val) { foreach ($lengths as $length) { $message = "Trying with {$inputs[$val]} using {$formatName} with minimum {$length} char"; $revertedVal = Reversible::revert($codes[$length][$val], $format, $length); $this->assertEquals($inputs[$val], $revertedVal, $message); } } }