package music;

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

import org.junit.jupiter.api.Test;

class ArrayPlaylistTest {

    @Test
    void growsWhenFull() {
        ArrayPlaylist list = new ArrayPlaylist();
        Song first = new Song("Uno", "X", 60);
        list.add(first);
        list.add(new Song("Dos", "X", 60));
        list.add(new Song("Tres", "X", 60));

        assertEquals(3, list.size());
        assertEquals(4, list.capacity());
        assertSame(first, list.get(0));
    }

    @Test
    void getBeyondSizeIsRejectedEvenIfThereIsRoom() {
        ArrayPlaylist list = new ArrayPlaylist();
        list.add(new Song("Uno", "X", 60));

        // capacity es 2, pero la posición 1 no está en uso
        assertThrows(IllegalArgumentException.class, () -> list.get(1));
    }
}
