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

namespace Tests.UnitTests.DocumentTests {
    [TestFixture]
    public class DeliveryDepreciationListTest {

        [Test]
        public async Task Test_01_DepreciatedDeliveries2020() {
            using var ctx = new AppDbContext();
            var data = await DeliveryJournalData.FromQuery(ctx.Deliveries.Where(d => d.Year == 2020).SelectMany(d => d.Parts).Where(d => d.QualId == "WEI"), ["Saison 2020"]);
            using var doc = new DeliveryDepreciationList("Saison 2020", data);
            var text = await Utils.GeneratePdfText(doc, true);
            var table = Utils.ExtractTable(text);
            Assert.Multiple(() => {
                Assert.That(text, Contains.Substring("Abwertungsliste"));
                Assert.That(text, Contains.Substring("Saison 2020"));
                Assert.That(table, Is.EqualTo(new string[][] {
                    ["101, MUSTERMANN Max",             "Teil-Lfrg.:", "3",             "81", "16,5",  "6 970"],
                    ["20201001X003 1 01.10.2020 10:24", "Grüner Veltliner",             "75", "15,4",  "2 561"],
                    ["20201001X003 2 01.10.2020 10:24", "Grüner Veltliner", "Kabinett", "87", "17,6",  "3 129"],
                    ["20201001X003 3 01.10.2020 10:24", "Grüner Veltliner",             "79", "16,1",  "1 280"],
                    ["103, MUSTERBAUER Matthäus",       "Teil-Lfrg.:", "2",             "79", "16,2",  "6 099"],
                    ["20201002X001 1 02.10.2020 09:13", "Grüner Veltliner", "Bio",      "80", "16,3",  "3 198"],
                    ["20201002X002 1 02.10.2020 09:28", "Grüner Veltliner", "Bio",      "78", "16,0",  "2 901"],
                    ["Gesamt:",      "(Teil-)Lieferungen: 3 (5)",                       "80", "16,3", "13 069"],
                }));
            });
        }
    }
}
