package no.valg.valgnatt.database.hibernate;

import no.valg.valgnatt.database.domene.ValgType;
import no.valg.valgnatt.database.domene.ValgTypeAar;
import org.junit.Test;

import static org.junit.Assert.assertEquals;

public class ValgdistriktIdTest {

    private static final ValgType VALG_TYPE = ValgType.KO;
    private static final int VALGAAR = 2019;
    private static final String NR = "0001";
    private static final ValgdistriktId VALGDISTRIKT_ID = ValgdistriktId.builder().valgtype(VALG_TYPE.name()).valgaar(VALGAAR).nr(NR).build();

    @Test
    public void id_gittValgdistriktId() {
        assertEquals("KO-2019-0001", VALGDISTRIKT_ID.id());
    }

    @Test
    public void toString_gittValgdistriktId() {
        assertEquals("KO-2019-0001", VALGDISTRIKT_ID.toString());
    }

    @Test
    public void id1() {
        ValgTypeAar valgTypeAar = new ValgTypeAar(VALG_TYPE, VALGAAR);
        assertEquals("KO-2019-0001", ValgdistriktId.id(valgTypeAar, NR));
    }

    @Test
    public void equals_gittTilsvarendeObjekt() {
        ValgdistriktId other = ValgdistriktId.builder().valgtype(VALG_TYPE.name()).valgaar(VALGAAR).nr(NR).build();
        assertEquals(VALGDISTRIKT_ID, other);
    }

    @Test
    public void hashCode_gittValgdistriktId() {
        assertEquals(402904927, VALGDISTRIKT_ID.hashCode());
    }
}
