package no.valg.valgnatt.database.hibernate;

import org.junit.Test;

import static org.junit.Assert.assertEquals;

public class BydelIdTest {

    private static final Integer BYDELNR = 12;
    private static final String KOMMNR = "03";
    private static final BydelId BYDEL_ID = BydelId.builder().bydelnr(BYDELNR).kommnr(KOMMNR).build();


    @Test
    public void id_gittBydelsId() {
        assertEquals("03-12", BYDEL_ID.id());
    }

    @Test
    public void equals_gittTilsvarendeObjekt() {
        BydelId other = BydelId.builder().bydelnr(BYDELNR).kommnr(KOMMNR).build();
        assertEquals(BYDEL_ID, other);
    }

    @Test
    public void hashCode_gittBydelsId() {
        assertEquals(45893163, BYDEL_ID.hashCode());
    }

    @Test
    public void compareTo_gittSammeKommuneneummerOgSammeBydelsnummer() {
        BydelId other = BydelId.builder().bydelnr(BYDELNR).kommnr(KOMMNR).build();
        assertEquals(0, BYDEL_ID.compareTo(other));

    }

    @Test
    public void compareTo_gittLavereKommunenummerOgSammeBydelsnummer() {
        BydelId other = BydelId.builder().bydelnr(BYDELNR).kommnr("02").build();
        assertEquals(1, BYDEL_ID.compareTo(other));

    }

    @Test
    public void compareTo_gittHøyereKommunenummerOgSammeBydelsnummer() {
        BydelId other = BydelId.builder().bydelnr(BYDELNR).kommnr("04").build();
        assertEquals(-1, BYDEL_ID.compareTo(other));

    }

    @Test
    public void toString_gittBydelsId() {
        assertEquals("03-12", BYDEL_ID.toString());
    }
}
