package de.thpeetz.kontor.comics;

import de.thpeetz.kontor.comics.data.Artist;
import de.thpeetz.kontor.comics.data.Comic;
import de.thpeetz.kontor.comics.data.Publisher;
import de.thpeetz.kontor.comics.data.Worktype;
import de.thpeetz.kontor.comics.services.ComicService;

public class TestConstants {
    public static final String ARTIST_NAME = "Lastname, Firstname";
    public static final String COMIC_TITLE = "TestComic";
    public static final String WORKTYPE_INKER = "Inker";
    public static final String ISSUE_ISSUENUMBER = "Issuenumber";
    public static final String PUBLISHER_NAME = "Publisher";
    public static final String SOJOURN_TPB_COMIC_TITLE = "Sojourn";
    public static final String SOJOURN_TPB_NAME = "The Dragons Tale";
    public static final String STORYARC_NAME = "StoryArc";
    public static final String TRADEPAPERBACK_NAME = "TradePaperback";
    public static final String VOLUME_NAME = "Volume";
    public static final String WORKTYPE_NAME = "Worktype";
    public static final int ARTIST_COUNT = 5;
    public static final int BATTLE_POPE_ISSUE_COUNT = 12;
    public static final int COMIC_COUNT = 169;
    public static final int COMICWORK_COUNT = 18;
    public static final int ISSUE_COUNT = 750;
    public static final int MARVEL_COMIC_COUNT = 50;
    public static final int PUBLISHER_COUNT = 18;
    public static final int SOJOURN_TPB_COUNT = 4;
    public static final int SOJOURN_TPB_START = 7;
    public static final int SOJOURN_TPB_END = 12;
    public static final int STORYARC_COUNT = 3;
    public static final int TRADEPAPERBACK_COUNT = 40;
    public static final int VOLUME_COUNT = 0;
    public static final int WORKTYPE_COUNT = 3;

    public static Comic getComicWithStoryArcs(ComicService service) {
        return service.findComicByTitle("Emma Frost");
    }

    public static Comic getComicWithTradePaperbacks(ComicService service) {
        return service.findComicByTitle(SOJOURN_TPB_COMIC_TITLE);
    }

    public static Comic getComicWithIssues(ComicService service) {
        return service.findComicByTitle("Battle Pope");
    }

    public static Comic getComicWithoutReferences(ComicService service) {
        return service.findComicByTitle("Gen13");
    }

    public static Artist getArtistWithoutReferences(ComicService service) {
        return service.findArtistByName("Marz, Ron");
    }

    public static Worktype getWorktypeWithoutReferences(ComicService service) {
        return service.findWorktypeByName(WORKTYPE_INKER);
    }

    public static Publisher getPublisherForComicTests(ComicService service) {
        return service.findPublisherByName("Marvel");
    }

    public static Publisher getAnotherPublisherForComicTests(ComicService service) {
        return service.findPublisherByName("DC");
    }
}
