#!/usr/bin/env python3
"""Unit tests."""

import unittest

from bind9_records import Record

class TestAddress(unittest.TestCase):
    """Test address records."""

    maxDiff = None

    def test_a_record_parse(self) -> None:
        tests = [
            'test\tA\t127.0.0.1',
            'test\tAAAA\t::1',
        ]

        for test in tests:
            r = Record(test)
            self.assertEqual(str(r), test)

    def test_caa_record_parse(self) -> None:
        tests = [
            'test\tCAA\t0 iodef ";"',
            'test\tCAA\t1 iodef example.com.',
        ]

        for test in tests:
            r = Record(test)
            self.assertEqual(str(r), test)

    def test_cname_record_parse(self) -> None:
        tests = [
            'test\tCNAME\texample.com.',
            'test\tCNAME\texample\\.dot.bar.',
        ]

        for test in tests:
            r = Record(test)
            self.assertEqual(str(r), test)

    def test_mx_record_parse(self) -> None:
        tests = [
            'test\tMX\t0 example.com.',
            'test\tMX\t0 example\\.dot.bar.',
            'test\tMX\t100 .',
        ]

        for test in tests:
            r = Record(test)
            self.assertEqual(str(r), test)

    def test_srv_record_parse(self) -> None:
        tests = [
            'test\tSRV\t0 0 443 example.com.',
            'test\tSRV\t0 0 8443 example\\.dot.bar.',
        ]

        for test in tests:
            r = Record(test)
            self.assertEqual(str(r), test)


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