Added service provider Test

This commit is contained in:
Sven Heidemann 2020-12-25 14:54:03 +01:00
parent 5db2a3f669
commit 305f4b34de
3 changed files with 82 additions and 1 deletions

View File

View File

@ -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)

View File

@ -1,5 +1,7 @@
import unittest 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.time.time_format_settings import TimeFormatSettingsTest
from tests.cases.utils.credential_manager import CredentialManagerTest from tests.cases.utils.credential_manager import CredentialManagerTest
@ -8,7 +10,7 @@ class Tester:
def __init__(self): def __init__(self):
self._suite = unittest.TestSuite() self._suite = unittest.TestSuite()
self._cases = [] self._cases: list[Type[unittest.TestCase]] = []
def _build_cases(self): def _build_cases(self):
for case in self._cases: for case in self._cases:
@ -17,6 +19,7 @@ class Tester:
self._suite.addTest(case(function)) self._suite.addTest(case(function))
def create(self): def create(self):
self._cases.append(ProviderTest)
self._cases.append(CredentialManagerTest) self._cases.append(CredentialManagerTest)
self._cases.append(TimeFormatSettingsTest) self._cases.append(TimeFormatSettingsTest)