"""Tests for MemberUniversity model."""
from __future__ import annotations

import pytest

from apps.core.authentication.models import Institution
from apps.rims.operations.models import MemberUniversity


@pytest.fixture
def member_institution(db):
    return Institution.objects.create(name="Makerere University", country="Uganda", is_member=True)


@pytest.mark.django_db
def test_member_university_creation(member_institution):
    mu = MemberUniversity.objects.create(
        institution=member_institution,
        membership_number="RUF-001",
        focal_person_name="Dr. Okello",
        focal_person_email="okello@mak.ac.ug",
    )
    assert mu.membership_status == MemberUniversity.MembershipStatus.ACTIVE
    assert str(mu) == "Makerere University (Active member)"


@pytest.mark.django_db
def test_member_university_one_to_one(member_institution):
    MemberUniversity.objects.create(institution=member_institution, membership_number="RUF-001")
    with pytest.raises(Exception):
        MemberUniversity.objects.create(institution=member_institution, membership_number="RUF-002")
