52 lines
2.3 KiB
Python
52 lines
2.3 KiB
Python
import pytest
|
|
from src.db.repositories.repository_factory import RepositoryFactory, DatabaseType
|
|
from src.db.repositories.firestore_team_repository import FirestoreTeamRepository
|
|
from src.db.repositories.firestore_user_repository import FirestoreUserRepository
|
|
from src.db.repositories.firestore_api_key_repository import FirestoreApiKeyRepository
|
|
from src.db.repositories.firestore_image_repository import FirestoreImageRepository
|
|
|
|
|
|
class TestRepositoryFactory:
|
|
"""Test cases for RepositoryFactory"""
|
|
|
|
@pytest.fixture
|
|
def factory(self):
|
|
"""Create a RepositoryFactory instance for testing"""
|
|
return RepositoryFactory()
|
|
|
|
def test_init(self, factory):
|
|
"""Test factory initialization"""
|
|
assert DatabaseType.FIRESTORE in factory.team_repositories
|
|
assert DatabaseType.FIRESTORE in factory.user_repositories
|
|
assert DatabaseType.FIRESTORE in factory.api_key_repositories
|
|
assert DatabaseType.FIRESTORE in factory.image_repositories
|
|
|
|
def test_get_team_repository(self, factory):
|
|
"""Test getting team repository"""
|
|
repository = factory.get_team_repository()
|
|
assert isinstance(repository, FirestoreTeamRepository)
|
|
|
|
def test_get_user_repository(self, factory):
|
|
"""Test getting user repository"""
|
|
repository = factory.get_user_repository()
|
|
assert isinstance(repository, FirestoreUserRepository)
|
|
|
|
def test_get_api_key_repository(self, factory):
|
|
"""Test getting API key repository"""
|
|
repository = factory.get_api_key_repository()
|
|
assert isinstance(repository, FirestoreApiKeyRepository)
|
|
|
|
def test_get_image_repository(self, factory):
|
|
"""Test getting image repository"""
|
|
repository = factory.get_image_repository()
|
|
assert isinstance(repository, FirestoreImageRepository)
|
|
|
|
def test_database_type_enum(self):
|
|
"""Test DatabaseType enum"""
|
|
assert DatabaseType.FIRESTORE == "firestore"
|
|
assert len(DatabaseType) == 1 # Only Firestore should be available
|
|
|
|
def test_singleton_factory(self):
|
|
"""Test that the factory is properly imported as singleton"""
|
|
from src.db.repositories.repository_factory import repository_factory
|
|
assert isinstance(repository_factory, RepositoryFactory) |