using Elwig.Documents;
using Elwig.Helpers;
using Elwig.Models.Dtos;

namespace Tests.DocumentTests {
    [TestFixture]
    public class DeliveryJournalTest {

        [Test]
        public async Task Test_01_AllDeliveries2020() {
            using var ctx = new AppDbContext();
            var data = await DeliveryJournalData.FromQuery(ctx.Deliveries.Where(d => d.Year == 2020).SelectMany(d => d.Parts), ["Saison 2020"]);
            using var doc = new DeliveryJournal("Saison 2020", data);
            var text = await Utils.GeneratePdfText(doc, true);
            Assert.Multiple(() => {
                Assert.That(text, Contains.Substring("Lieferjournal"));
                Assert.That(text, Contains.Substring("Saison 2020"));
                Assert.That(text, Contains.Substring("""
                    20201001X001       1      01.10.2020 09:03  101 MUSTERMANN Max               Grüner Veltliner      73   15,0     3 219
                    20201001X002       1      01.10.2020 09:35  102 WEINBAUER Wernhardt          Grüner Veltliner      86   17,5     2 987
                    20201001X002       2      01.10.2020 09:35  102 WEINBAUER Wernhardt          Grüner Veltliner      87   17,7     1 873
                    20201001X003       1      01.10.2020 10:24  101 MUSTERMANN Max               Grüner Veltliner      75   15,4     2 561
                    20201001X003       2      01.10.2020 10:24  101 MUSTERMANN Max               Grüner Veltliner      87   17,6     3 129
                    20201001X003       3      01.10.2020 10:24  101 MUSTERMANN Max               Grüner Veltliner      79   16,1     1 280
                    20201001X004       1      01.10.2020 11:13  102 WEINBAUER Wernhardt          Grüner Veltliner      82   16,7     4 002
                    20201001X004       2      01.10.2020 11:13  102 WEINBAUER Wernhardt          Grüner Veltliner      75   15,3       481
                    20201001X005       1      01.10.2020 12:45  101 MUSTERMANN Max               Welschriesling        84   17,0     3 192
                    20201001X005       2      01.10.2020 12:45  101 MUSTERMANN Max               Welschriesling        84   17,1     2 190
                    20201001X006       1      01.10.2020 13:18  102 WEINBAUER Wernhardt          Grüner Veltliner      74   15,2     1 732
                    20201002X001       1      02.10.2020 09:13  103 MUSTERBAUER Matthäus         Grüner Veltliner      80   16,3     3 198
                    20201002X001       2      02.10.2020 09:13  103 MUSTERBAUER Matthäus         Grüner Veltliner      75   15,4     2 134
                    20201002X002       1      02.10.2020 09:28  103 MUSTERBAUER Matthäus         Grüner Veltliner      78   16,0     2 901
                    20201002X002       2      02.10.2020 09:28  103 MUSTERBAUER Matthäus         Grüner Veltliner      85   17,3     3 321
                    20201002X003       1      02.10.2020 10:11  103 MUSTERBAUER Matthäus         Welschriesling        85   17,2     3 998
                    20201003X001       1      03.10.2020 14:13  104 WINZER Waltraud              Zweigelt              73   15,0     1 212
                    20201003X001       2      03.10.2020 14:13  104 WINZER Waltraud              Zweigelt              74   15,2     2 471
                    20201003X001       3      03.10.2020 14:13  104 WINZER Waltraud              Zweigelt              77   15,7       842
                    20201003X002       1      03.10.2020 14:39  104 WINZER Waltraud              Zweigelt              84   17,0     3 578
                    20201003X002       2      03.10.2020 14:39  104 WINZER Waltraud              Zweigelt              85   17,2     3 862
                    20201003X003       1      03.10.2020 15:15  104 WINZER Waltraud              Blauer Portugieser    89   18,0     2 410
                    20201003X003       2      03.10.2020 15:15  104 WINZER Waltraud              Blauer Portugieser    89   18,1     2 313
                    Gesamt:                   (Teil-)Lieferungen: 12 (23)                                              82   16,6    58 886
                    """));
            });
        }
    }
}