From 305f4b34def3f71388adf1eecb0a59743b494576 Mon Sep 17 00:00:00 2001 From: Sven Heidemann Date: Fri, 25 Dec 2020 14:54:03 +0100 Subject: [PATCH] Added service provider Test --- src/tests/cases/service/__init__.py | 0 src/tests/cases/service/provider_test.py | 78 ++++++++++++++++++++++++ src/tests/tester.py | 5 +- 3 files changed, 82 insertions(+), 1 deletion(-) create mode 100644 src/tests/cases/service/__init__.py create mode 100644 src/tests/cases/service/provider_test.py diff --git a/src/tests/cases/service/__init__.py b/src/tests/cases/service/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/src/tests/cases/service/provider_test.py b/src/tests/cases/service/provider_test.py new file mode 100644 index 00000000..b158a483 --- /dev/null +++ b/src/tests/cases/service/provider_test.py @@ -0,0 +1,78 @@ +import unittest + +from sh_edraft.console import Console +from sh_edraft.database.context import DatabaseContext +from sh_edraft.hosting import ApplicationHost +from sh_edraft.logging import Logger +from sh_edraft.logging.base import LoggerBase + + +class ProviderTest(unittest.TestCase): + + def setUp(self): + Console.disable() + self._app_host = ApplicationHost() + self._configuration = self._app_host.configuration + self._services = self._app_host.services + + self._configuration.add_argument_variables() + self._configuration.add_json_file(f'appsettings.json') + self._configuration.add_json_file(f'appsettings.{self._configuration.environment.environment_name}.json') + self._configuration.add_json_file(f'appsettings.{self._configuration.environment.host_name}.json', optional=True) + + def test_get_db_context(self): + self._services.add_db_context(DatabaseContext) + db: DatabaseContext = self._services.get_db_context() + + self.assertIsNotNone(db) + + def test_get_service_singleton(self): + self._services.add_singleton(LoggerBase, Logger) + logger = self._services.get_service(LoggerBase) + + self.assertIsNotNone(logger) + + def test_get_service_scoped(self): + self._services.add_scoped(LoggerBase, Logger) + logger = self._services.get_service(LoggerBase) + + self.assertIsNotNone(logger) + + def test_get_service_transient(self): + self._services.add_transient(LoggerBase, Logger) + logger = self._services.get_service(LoggerBase) + + self.assertIsNotNone(logger) + + def test_remove_service_singleton(self): + self._services.add_singleton(LoggerBase, Logger) + logger = self._services.get_service(LoggerBase) + + self.assertIsNotNone(logger) + + self._services.remove_service(LoggerBase) + logger = self._services.get_service(LoggerBase) + + self.assertIsNone(logger) + + def test_remove_service_scoped(self): + self._services.add_scoped(LoggerBase, Logger) + logger = self._services.get_service(LoggerBase) + + self.assertIsNotNone(logger) + + self._services.remove_service(LoggerBase) + logger = self._services.get_service(LoggerBase) + + self.assertIsNone(logger) + + def test_remove_service_transient(self): + self._services.add_transient(LoggerBase, Logger) + logger = self._services.get_service(LoggerBase) + + self.assertIsNotNone(logger) + + self._services.remove_service(LoggerBase) + logger = self._services.get_service(LoggerBase) + + self.assertIsNone(logger) diff --git a/src/tests/tester.py b/src/tests/tester.py index 8f8ab5c0..98c1c68b 100644 --- a/src/tests/tester.py +++ b/src/tests/tester.py @@ -1,5 +1,7 @@ import unittest +from typing import Type +from tests.cases.service.provider_test import ProviderTest from tests.cases.time.time_format_settings import TimeFormatSettingsTest from tests.cases.utils.credential_manager import CredentialManagerTest @@ -8,7 +10,7 @@ class Tester: def __init__(self): self._suite = unittest.TestSuite() - self._cases = [] + self._cases: list[Type[unittest.TestCase]] = [] def _build_cases(self): for case in self._cases: @@ -17,6 +19,7 @@ class Tester: self._suite.addTest(case(function)) def create(self): + self._cases.append(ProviderTest) self._cases.append(CredentialManagerTest) self._cases.append(TimeFormatSettingsTest)