import sys
import unittest

from loesung import Lager


class Tests(unittest.TestCase):
    def test_ablauf(self):
        l = Lager()
        l.einlagern("kabel", 10)
        l.entnehmen("kabel", 4)
        self.assertEqual(l.bestand("kabel"), 6)
        self.assertEqual(l.bestand("unbekannt"), 0)

    def test_unterbestand(self):
        l = Lager()
        l.einlagern("kabel", 2)
        with self.assertRaises(ValueError):
            l.entnehmen("kabel", 3)
        with self.assertRaises(ValueError):
            l.entnehmen("gibtsnicht", 1)

    def test_menge_positiv(self):
        l = Lager()
        with self.assertRaises(ValueError):
            l.einlagern("kabel", 0)


if __name__ == "__main__":
    r = unittest.main(exit=False).result
    sys.exit(0 if r.wasSuccessful() else 1)
