diff --git a/test.sh b/test.sh new file mode 100755 index 0000000..90b73db --- /dev/null +++ b/test.sh @@ -0,0 +1,4 @@ +#!/bin/sh + +# Execute unittests of python library +python3 -m unittest discover -s tests -p "*_test.py" diff --git a/tests/device_builder_test.py b/tests/device_builder_test.py new file mode 100644 index 0000000..705596d --- /dev/null +++ b/tests/device_builder_test.py @@ -0,0 +1,124 @@ +"""Unittest for device builder.""" + +import unittest + +from custom_components.bluetti_bt.bluetti_bt_lib.utils.device_builder import build_device +from custom_components.bluetti_bt.bluetti_bt_lib.devices.ac60 import AC60 +from custom_components.bluetti_bt.bluetti_bt_lib.devices.ac180 import AC180 +from custom_components.bluetti_bt.bluetti_bt_lib.devices.ac180p import AC180P +from custom_components.bluetti_bt.bluetti_bt_lib.devices.ac200m import AC200M +from custom_components.bluetti_bt.bluetti_bt_lib.devices.ac300 import AC300 +from custom_components.bluetti_bt.bluetti_bt_lib.devices.ac500 import AC500 +from custom_components.bluetti_bt.bluetti_bt_lib.devices.eb3a import EB3A +from custom_components.bluetti_bt.bluetti_bt_lib.devices.ep500 import EP500 +from custom_components.bluetti_bt.bluetti_bt_lib.devices.ep500p import EP500P +from custom_components.bluetti_bt.bluetti_bt_lib.devices.ep600 import EP600 +from custom_components.bluetti_bt.bluetti_bt_lib.devices.ep760 import EP760 +from custom_components.bluetti_bt.bluetti_bt_lib.devices.ep800 import EP800 + + +class TestDeviceBuilder(unittest.TestCase): + def test_build_Unknow(self): + bt_addr = "aa:bb:cc:dd:ee:ff" + bt_name = "PBOX56786746478" + with self.assertRaises(TypeError): + build_device(bt_addr, bt_name) + + def test_build_ac60(self): + bt_addr = "aa:bb:cc:dd:ee:ff" + bt_name = "AC6056786746478" + built = build_device(bt_addr, bt_name) + + self.assertIsInstance(built, AC60) + self.assertEqual(built.address, bt_addr) + + def test_build_ac180(self): + bt_addr = "aa:bb:cc:dd:ee:ff" + bt_name = "AC18056786746478" + built = build_device(bt_addr, bt_name) + + self.assertIsInstance(built, AC180) + self.assertEqual(built.address, bt_addr) + + def test_build_ac180p(self): + bt_addr = "aa:bb:cc:dd:ee:ff" + bt_name = "AC180P56786746478" + built = build_device(bt_addr, bt_name) + + self.assertIsInstance(built, AC180P) + self.assertEqual(built.address, bt_addr) + + def test_build_ac200m(self): + bt_addr = "aa:bb:cc:dd:ee:ff" + bt_name = "AC200M56786746478" + built = build_device(bt_addr, bt_name) + + self.assertIsInstance(built, AC200M) + self.assertEqual(built.address, bt_addr) + + def test_build_ac300(self): + bt_addr = "aa:bb:cc:dd:ee:ff" + bt_name = "AC30056786746478" + built = build_device(bt_addr, bt_name) + + self.assertIsInstance(built, AC300) + self.assertEqual(built.address, bt_addr) + + def test_build_ac500(self): + bt_addr = "aa:bb:cc:dd:ee:ff" + bt_name = "AC50056786746478" + built = build_device(bt_addr, bt_name) + + self.assertIsInstance(built, AC500) + self.assertEqual(built.address, bt_addr) + + def test_build_eb3a(self): + bt_addr = "aa:bb:cc:dd:ee:ff" + bt_name = "EB3A56786746478" + built = build_device(bt_addr, bt_name) + + self.assertIsInstance(built, EB3A) + self.assertEqual(built.address, bt_addr) + + def test_build_ep500(self): + bt_addr = "aa:bb:cc:dd:ee:ff" + bt_name = "EP50056786746478" + built = build_device(bt_addr, bt_name) + + self.assertIsInstance(built, EP500) + self.assertEqual(built.address, bt_addr) + + def test_build_ep500p(self): + bt_addr = "aa:bb:cc:dd:ee:ff" + bt_name = "EP500P56786746478" + built = build_device(bt_addr, bt_name) + + self.assertIsInstance(built, EP500P) + self.assertEqual(built.address, bt_addr) + + def test_build_EP600(self): + bt_addr = "aa:bb:cc:dd:ee:ff" + bt_name = "EP60056786746478" + built = build_device(bt_addr, bt_name) + + self.assertIsInstance(built, EP600) + self.assertEqual(built.address, bt_addr) + + def test_build_EP760(self): + bt_addr = "aa:bb:cc:dd:ee:ff" + bt_name = "EP76056786746478" + built = build_device(bt_addr, bt_name) + + self.assertIsInstance(built, EP760) + self.assertEqual(built.address, bt_addr) + + def test_build_EP800(self): + bt_addr = "aa:bb:cc:dd:ee:ff" + bt_name = "EP80056786746478" + built = build_device(bt_addr, bt_name) + + self.assertIsInstance(built, EP800) + self.assertEqual(built.address, bt_addr) + +if __name__ == '__main__': + unittest.main()