import pytest
from rq_controller.common.io.loader import BaseDataLoader
from pathlib import Path

@pytest.fixture
def base_data_loader():
    return BaseDataLoader(
        porjection_geometry_suffix="geometry_suffix",
        projection_suffix="projection_suffix",
        region_of_intrest_suffix="roi_suffix",
        volume_suffix="volume_suffix"
    )

def test_initialization(base_data_loader: BaseDataLoader):
    assert base_data_loader.porjection_geometry_suffix == "geometry_suffix"
    assert base_data_loader.projection_suffix == "projection_suffix"
    assert base_data_loader.region_of_intrest_suffix == "roi_suffix"
    assert base_data_loader.volume_suffix == "volume_suffix"

def test_load_projection_geometry_not_implemented(base_data_loader: BaseDataLoader):
    with pytest.raises(NotImplementedError):
        base_data_loader.load_projection_geometry(Path("/fake/path"))

def test_load_projection_not_implemented(base_data_loader: BaseDataLoader):
    with pytest.raises(NotImplementedError):
        base_data_loader.load_projection(Path("/fake/path"))

def test_load_region_of_intrest_not_implemented(base_data_loader: BaseDataLoader):
    with pytest.raises(NotImplementedError):
        base_data_loader.load_region_of_intrest(Path("/fake/path"))

def test_load_volume_not_implemented(base_data_loader: BaseDataLoader):
    with pytest.raises(NotImplementedError):
        base_data_loader.load_volume(Path("/fake/path"))