import unittest
import json
import CweCheckerParser

class TestCweCheckerParser(unittest.TestCase):

    def setUp(self):
        self.parser = CweCheckerParser.Parser('RESULT_PATH')

    def test_parser(self):
        input_data = json.loads("""{
        "binary": "test/artificial_samples/build/cwe_190_x86_gcc.out",
        "time": 1564552342.0,
        "warnings": [
        {
        "name": "CWE190",
        "version": "0.1",
        "addresses": [ "0x6BC:32u" ],
        "symbols": [ "malloc" ],
        "other": [],
        "description":
        "(Integer Overflow or Wraparound) Potential overflow due to multiplication at 0x6BC:32u (malloc)"
        }]}""")
        expected_res = 'CWE190'

        res = self.parser._parse_cwe_warnings(input_data)

        self.assertEqual(len(res), 1)
        self.assertEqual(res[0].name, expected_res)