#!/usr/bin/env python
# -*-coding:utf-8 -*-
"""
  ████
██    ██   Datature
  ██  ██   Powering Breakthrough AI
    ██

@File    :   test_file_signature.py
@Author  :   Raighne.Weng
@Contact :   developers@datature.io
@License :   Apache License 2.0
@Desc    :   Datature Utils Test Cases
"""
# pylint: disable=W0703,W0012,W0212

import unittest

from datature.nexus.utils import file_signature


class TestFileSignature(unittest.TestCase):
    """Datature File Signature Test Cases."""

    def test_jpeg_file(self):
        """Test jpg files."""

        file_mine = file_signature.get_file_mime_by_signature(
            b"\xff\xd8\xff\xe0\x00\x10JFIF\x00\x01\x01\x01\x01,\x01,\x00\x00\xff\xe2\x0cXICC_PROFILE\x00\x01\x01\x00\x00\x0cHLino\x02\x10\x00\x00mntrRGB XYZ \x07\xce\x00\x02\x00\t\x00\x06\x001\x00\x00acspMSFT\x00\x00\x00\x00IEC sRGB\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\xf6\xd6\x00\x01\x00\x00\x00\x00\xd3-HP  \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11cprt\x00\x00\x01P\x00\x00\x003desc\x00\x00\x01\x84\x00\x00\x00lwtpt\x00\x00\x01\xf0\x00\x00\x00\x14bkpt\x00\x00\x02\x04\x00\x00\x00\x14rXYZ\x00\x00\x02\x18\x00\x00\x00\x14gXYZ\x00\x00\x02,\x00\x00\x00\x14bXYZ\x00\x00\x02@\x00\x00\x00\x14dmnd\x00\x00\x02T\x00\x00\x00pdmdd\x00\x00\x02\xc4\x00\x00\x00\x88vued\x00\x00\x03L\x00\x00\x00\x86view\x00\x00\x03\xd4\x00\x00\x00$lumi\x00\x00\x03\xf8\x00\x00\x00\x14meas\x00\x00\x04\x0c\x00\x00\x00$tech\x00\x00\x040\x00\x00\x00\x0crTRC\x00\x00\x04<\x00\x00\x08\x0cgTRC\x00\x00\x04<\x00\x00\x08\x0cbTRC\x00\x00\x04<\x00\x00\x08\x0ctext\x00\x00\x00\x00Copyright (c) 1998"
        )

        assert file_mine == "image/jpeg"

    def test_not_supported_file(self):
        """Test not supported files."""

        file_mine = file_signature.get_file_mime_by_signature(
            b"%PDF-1.4\n%\xd3\xeb\xe9\xe1\n1 0 obj\n<</Creator (Mozilla/5.0 \\(X11; Linux x86_64\\) AppleWebKit/537.36 \\(KHTML, like Gecko\\) HeadlessChrome/117.0.0.0 Safari/537.36)\n/Producer (Skia/PDF m117)\n/CreationDate (D:20231003074453+00'00')\n/ModDate (D:20231003074453+00'00')>>\nendobj\n3 0 obj\n<</ca 1\n/BM /Normal>>\nendobj\n6 0 obj\n<</Filter /FlateDecode\n/Length 707>> stream\nx\x9c\x95U\xdbj\x1b1\x10}\xdf\xaf\xd0s\xa1\x8af4\xd2\xcc@\x08\xd4\xce\x85>\x04\xdab\xe8\x07\xf4\x12(\xa4\x90\xf4\xff\xa1g\xd7\xb2w\xad\x8d\x8bk\xc3\x12\xef\xc9"
        )

        assert file_mine is None
