import unittest
from formats.rdf_format import is_valid


class TestRdfFormat(unittest.TestCase):
    def test_is_valid__valid_turtle(self):
        resource = {}
        with open("tests/data/ufo.ttl", "r") as file:
            self.assertTrue(is_valid(resource, file))
            self.assertIsNone(resource.get("error"))

    def test_is_valid__valid_xml(self):
        resource = {}
        with open("tests/data/rdf.xml", "r") as file:
            self.assertTrue(is_valid(resource, file))
            self.assertIsNone(resource.get("error"))

    def test_is_valid__valid_jsonld(self):
        resource = {}
        with open("tests/data/rdf.json", "r") as file:
            self.assertTrue(is_valid(resource, file))
            self.assertIsNone(resource.get("error"))

    def test_is_valid__invalid(self):
        resource = {}
        with open("tests/data/correct.json", "r") as file:
            self.assertFalse(is_valid(resource, file))
            self.assertIsNotNone(resource.get("error"))


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