#!/usr/bin/python
# -*- coding: utf-8 -*-
import unittest
import ofd
import config


class TestOFDYa(unittest.TestCase):

    """ E2E unittest OFD-interactions """
    OFD = None

    @classmethod
    def setUpClass(cls):
        """ Setup """
        config.debug = False
        cls.OFD = ofd.OFDProvider(True).detect(
            "t=20170305T005100&s=140.00&fn=8710000100161943&i=8018&fp=2398195357&n=1",
            "0000069245023747")

    def test_search(self):
        self.assertIsNotNone(self.OFD)

    def test_items_parsing(self):
        self.assertEqual(self.OFD.get_items(), [('Хлеб Ржаной  пол. рез. 0,415 кг (Каравай', '-28.40'), ('ФО Картофель, кг                       (17.9 * 1.132)', '-20.26'), ('ФО Огурцы Эстафета, кг                 (161.9 * 0.18)', '-29.14'), ('Яйцо фас. С0 10шт                     ', '-62.20')])

    def test_items_count(self):
        self.assertEqual(len(self.OFD.get_items()), 4)

    def test_first_item(self):
        item_name = self.OFD.get_items()[0][0]
        self.assertEqual(item_name, "Хлеб Ржаной  пол. рез. 0,415 кг (Каравай")

    def test_receipt_final_sum(self):
        self.assertEqual(self.OFD.raw_sum, '140.00')

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