import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertThrows;

import org.junit.jupiter.api.Test;

class MoneyTest {

    @Test
    void parsesSolesAndCents() {
        assertEquals(new Money(1250, "PEN"), Money.parse("12.50"));
        assertEquals(new Money(700, "PEN"), Money.parse("7"));
    }

    @Test
    void rejectsTextThatIsNotANumber() {
        assertThrows(NumberFormatException.class, () -> Money.parse("12a"));
        assertThrows(NumberFormatException.class, () -> Money.parse("4,90"));
        assertThrows(NumberFormatException.class, () -> Money.parse("1.5"));
    }

    @Test
    void rejectsNegativeAmount() {
        IllegalArgumentException e =
                assertThrows(IllegalArgumentException.class, () -> new Money(-1, "PEN"));
        assertEquals("monto negativo: -1", e.getMessage());
    }
}
