mirror of
https://github.com/imarkoff/Marble-shell-theme.git
synced 2025-09-16 16:28:39 -07:00
155 lines
5.6 KiB
Python
155 lines
5.6 KiB
Python
from unittest import TestCase
|
|
from unittest.mock import Mock
|
|
|
|
from scripts.types.installation_color import InstallationMode
|
|
from scripts.utils.global_theme.gdm_builder import GDMThemeBuilder
|
|
|
|
|
|
class GDMBuilderTestCase(TestCase):
|
|
def setUp(self):
|
|
self.colors_provider = Mock()
|
|
self.builder = GDMThemeBuilder(colors_provider=self.colors_provider)
|
|
|
|
def test_with_mode_sets_correct_mode(self):
|
|
self.builder._mode = None
|
|
mode: InstallationMode = "dark"
|
|
|
|
builder = self.builder.with_mode(mode)
|
|
|
|
self.assertEqual(builder._mode, mode)
|
|
|
|
def test_with_filled_sets_correct_filled_state(self):
|
|
self.builder._is_filled = False
|
|
is_filled = True
|
|
|
|
builder = self.builder.with_filled(is_filled)
|
|
|
|
self.assertEqual(builder._is_filled, is_filled)
|
|
|
|
def test_with_logger_factory_sets_specified_logger_factory(self):
|
|
logger_factory = Mock()
|
|
builder = self.builder.with_logger_factory(logger_factory)
|
|
self.assertEqual(builder._logger_factory, logger_factory)
|
|
|
|
def test_with_gresource_sets_specified_gresource(self):
|
|
gresource = Mock()
|
|
builder = self.builder.with_gresource(gresource)
|
|
self.assertEqual(builder._gresource, gresource)
|
|
|
|
def test_with_ubuntu_gdm_alternatives_updater_sets_specified_updater(self):
|
|
alternatives_updater = Mock()
|
|
builder = self.builder.with_ubuntu_gdm_alternatives_updater(alternatives_updater)
|
|
self.assertEqual(builder._ubuntu_gdm_alternatives_updater, alternatives_updater)
|
|
|
|
def test_with_preparer_sets_specified_preparer(self):
|
|
preparer = Mock()
|
|
builder = self.builder.with_preparer(preparer)
|
|
self.assertEqual(builder._preparer, preparer)
|
|
|
|
def test_with_installer_sets_specified_installer(self):
|
|
installer = Mock()
|
|
builder = self.builder.with_installer(installer)
|
|
self.assertEqual(builder._installer, installer)
|
|
|
|
def test_with_remover_sets_specified_remover(self):
|
|
remover = Mock()
|
|
builder = self.builder.with_remover(remover)
|
|
self.assertEqual(builder._remover, remover)
|
|
|
|
def test_resolve_logger_factory_initializes_logger_factory(self):
|
|
self.builder._logger_factory = None
|
|
|
|
self.builder._resolve_logger_factory()
|
|
|
|
self.assertIsNotNone(self.builder._logger_factory)
|
|
|
|
def test_resolve_gresource_initializes_gresource(self):
|
|
self.builder._logger_factory = Mock()
|
|
self.builder._gresource = None
|
|
|
|
self.builder._resolve_gresource()
|
|
|
|
self.assertIsNotNone(self.builder._gresource)
|
|
|
|
def test_builder_supports_chaining(self):
|
|
theme = self.builder.with_mode("dark").with_filled(True).build()
|
|
|
|
self.assertIsNotNone(theme)
|
|
|
|
def test_resolve_ubuntu_gdm_alternatives_updater_initializes_gresource(self):
|
|
self.builder._logger_factory = Mock()
|
|
self.builder._gresource = Mock()
|
|
self.builder._ubuntu_gdm_alternatives_updater = None
|
|
self.builder._resolve_ubuntu_gdm_alternatives_updater()
|
|
self.assertIsNotNone(self.builder._ubuntu_gdm_alternatives_updater)
|
|
|
|
def test_resolve_preparer_initializes_preparer(self):
|
|
self.builder._logger_factory = Mock()
|
|
self.builder._gresource = Mock()
|
|
self.builder._ubuntu_gdm_alternatives_updater = Mock()
|
|
self.builder._preparer = None
|
|
|
|
self.builder._resolve_preparer()
|
|
|
|
self.assertIsNotNone(self.builder._preparer)
|
|
|
|
def test_resolve_installer_initializes_installer(self):
|
|
self.builder._gresource = Mock()
|
|
self.builder._ubuntu_gdm_alternatives_updater = Mock()
|
|
self.builder._installer = None
|
|
|
|
self.builder._resolve_installer()
|
|
|
|
self.assertIsNotNone(self.builder._installer)
|
|
|
|
def test_resolve_remover_initializes_remover(self):
|
|
self.builder._gresource = Mock()
|
|
self.builder._ubuntu_gdm_alternatives_updater = Mock()
|
|
self.builder._remover = None
|
|
|
|
self.builder._resolve_remover()
|
|
|
|
self.assertIsNotNone(self.builder._remover)
|
|
|
|
def test_build_resolves_dependencies(self):
|
|
self.builder._resolve_logger_factory = Mock()
|
|
self.builder._resolve_gresource = Mock()
|
|
self.builder._resolve_ubuntu_gdm_alternatives_updater = Mock()
|
|
self.builder._resolve_preparer = Mock()
|
|
self.builder._resolve_installer = Mock()
|
|
self.builder._resolve_remover = Mock()
|
|
|
|
self.builder.build()
|
|
|
|
self.builder._resolve_logger_factory.assert_called_once()
|
|
self.builder._resolve_gresource.assert_called_once()
|
|
self.builder._resolve_ubuntu_gdm_alternatives_updater.assert_called_once()
|
|
self.builder._resolve_preparer.assert_called_once()
|
|
self.builder._resolve_installer.assert_called_once()
|
|
self.builder._resolve_remover.assert_called_once()
|
|
|
|
def test_build_correctly_builds_gdm_theme(self):
|
|
self.builder._preparer = Mock()
|
|
self.builder._installer = Mock()
|
|
self.builder._remover = Mock()
|
|
|
|
result = self.builder.build()
|
|
|
|
self.assertEqual(result.preparer, self.builder._preparer)
|
|
self.assertEqual(result.installer, self.builder._installer)
|
|
self.assertEqual(result.remover, self.builder._remover)
|
|
|
|
def test_build_with_explicit_dependencies_works_correctly(self):
|
|
preparer = Mock()
|
|
installer = Mock()
|
|
remover = Mock()
|
|
builder = (self.builder
|
|
.with_preparer(preparer)
|
|
.with_installer(installer)
|
|
.with_remover(remover))
|
|
|
|
result = builder.build()
|
|
|
|
self.assertEqual(result.preparer, preparer)
|
|
self.assertEqual(result.installer, installer)
|
|
self.assertEqual(result.remover, remover) |