import java.io.IOException;
import java.io.StringReader;
import java.util.List;

public final class ProvaImportazioneControllata {
    private ProvaImportazioneControllata() {
    }

    private static void rifiutato(String dati, String messaggio) {
        try {
            ImportazioneControllata.leggi(new StringReader(dati));
            throw new AssertionError("Input accettato: " + messaggio);
        } catch (IOException previsto) {
            if (!previsto.getMessage().equals(messaggio)) {
                throw new AssertionError("Errore diverso", previsto);
            }
        }
    }

    public static void main(String[] args) throws IOException {
        List<String> validi = ImportazioneControllata.leggi(
                new StringReader("  Java   moderno  \n\nReti\n"));
        if (!validi.equals(List.of("Java moderno", "Reti"))) {
            throw new AssertionError("Titoli inattesi: " + validi);
        }
        rifiutato("x".repeat(81), "Riga troppo lunga");
        rifiutato("x\n".repeat(101), "Troppi titoli");
        System.out.println("Input valido e due limiti verificati");
    }
}
