"""mb_convert_encoding((string) $x, ...) reproduz utf8_decode/utf8_encode do PHP 7.4."""
import subprocess
import unittest

SCRIPT = "/var/www/html/accia-php83/tools/migracao-php83/php/utf8.php"


def _rodar(container: str, modo: str) -> str:
    return subprocess.run(["docker", "exec", container, "php", SCRIPT, modo], capture_output=True, text=True).stdout.strip()


class Utf8Test(unittest.TestCase):
    def test_novo_74_igual_antigo_74(self):
        self.assertEqual(_rodar("php74_val", "novo"), _rodar("php74_val", "antigo"))

    def test_novo_83_igual_antigo_74(self):
        self.assertEqual(_rodar("php83_apache", "novo"), _rodar("php74_val", "antigo"))


if __name__ == "__main__":
    unittest.main()
