public void LoadTemplate4P1WithIndustryVorlageTagOk() { string fn = @"Daten\testTemplateInvoiceIndustrySample.xml"; var invoice = InvoiceFactory.LoadTemplate(fn); Assert.IsNotNull(invoice); Assert.AreEqual(InvoiceSubtypes.ValidationRuleSet.Industries, invoice.InvoiceSubtype.VariantOption); }
public void TaxItemTest(string inputFile, string outputFile, Models.EbIVersion ebIVersion) { var invoice = InvoiceFactory.LoadTemplate(inputFile); invoice.PrintDump(); EbInterfaceResult result = invoice.Save(outputFile, ebIVersion); Assert.That(result.ResultType == ResultType.IsValid); var inputXml = XDocument.Load(inputFile); var savedXml = XDocument.Load(outputFile); var inResult = inputXml.Descendants() .Where(p1 => p1.Descendants().Count() == 0) .Select(p => new NodeList { NodePath = p.GetPath(), Value = p.Value }).Distinct().OrderBy(n => n.NodePath).ToList(); var outResult = savedXml.Descendants().Where(p1 => p1.Descendants().Count() == 0).Select(p => new NodeList { NodePath = p.GetPath(), Value = p.Value }).Distinct().OrderBy(n => n.NodePath).ToList(); Console.WriteLine("Nodes not in Output -----------------------"); var notInOut = inResult.Where(p => !outResult.Any(p2 => p2.NodePath == p.NodePath)).ToList(); PrintDiff(notInOut); Console.WriteLine("Nodes not in Input -----------------------"); var notInIn = outResult.Where(p => !inResult.Any(p2 => p2.NodePath == p.NodePath)).ToList(); PrintDiff(notInIn); Console.WriteLine("Value different -----------------------"); var valDif = inResult.Where(p => outResult.Any(p2 => p2.NodePath == p.NodePath && p2.Value != p.Value)); }
public void SaveTemplateAsIndustryOk() { string fn = @"Daten\Test-ebInterfaceRechn-2014-500-2014-03-19.xml"; var invoice = InvoiceFactory.LoadTemplate(fn); invoice.InvoiceSubtype = InvoiceSubtypes.GetSubtype(InvoiceSubtypes.ValidationRuleSet.Industries); invoice.SaveTemplate(@"Daten\testTemplateInvoiceIndustry.xml"); Assert.IsNotNull(invoice); }
public void LoadTemplateTestOk(string rechnungFn) { string fn = rechnungFn;// @"Daten\Test-ebInterfaceRechn-2014-500-2014-03-19.xml"; var invoice = InvoiceFactory.LoadTemplate(fn); Assert.IsNotNull(invoice); Console.WriteLine($"{invoice.Version.ToString()}:\t{rechnungFn}"); invoice.PrintDump(); }
public void LoadTemplateTestNoGeneratingSystem() { string fn = @"Daten\DotNetApiCreatedInvoice.xml"; var invoice = InvoiceFactory.LoadTemplate(fn); // invoice.Save(@"Daten\testInvoice.xml"); Assert.AreEqual(invoice.InvoiceSubtype.VariantOption, InvoiceSubtypes.ValidationRuleSet.Invalid); }
public void GetItemLoadRabattTestOk() { _common.Invoice = InvoiceFactory.LoadTemplate(Common.InvTest); var det = DetailsListConverter.Load(_common.Invoice.Details.ItemList, _common.UContainer, false); var detList = DetailsListConverter.ConvertToItemList(det, "Z01"); var det2 = DetailsListConverter.Load(detList, _common.UContainer, false); Assert.AreEqual(det[0].Rabatt, det2[0].Rabatt); }
public void LoadTest() { _common.Invoice = InvoiceFactory.LoadTemplate(Common.InvTest); var det = DetailsListConverter.Load(_common.Invoice.Details.ItemList, _common.UContainer, false); Assert.IsNotNull(det); Assert.AreEqual((int)4, det.Count); Assert.AreEqual("DAY", det[0].Einheit); Assert.AreEqual("LS", det[2].Einheit); }
public void SaveTemplateOk(string fnSource) { string outDir = Path.GetDirectoryName(fnSource); string saveFn = Path.Combine(outDir, Path.GetFileNameWithoutExtension(fnSource) + "-template.xml"); File.Delete(saveFn); var invoice = InvoiceFactory.LoadTemplate(fnSource); invoice.PrintDump(); Assert.IsNotNull(invoice); //Console.WriteLine(invoice.Dump()); invoice.SaveTemplate(saveFn); }
public void TotalsAndTaxTest(string inputFn) { XDocument xInv = XDocument.Load(inputFn); var attrs = xInv.Root.Attributes(). Where(p => p.IsNamespaceDeclaration == true). FirstOrDefault(x => x.Name.LocalName == "eb"); var invoice = InvoiceFactory.LoadTemplate(inputFn); Console.WriteLine($"{attrs.Value}: {inputFn}"); var totals = from a in invoice.Details.ItemList[0].ListLineItem group a by 1 into g select new { netto = g.Sum(x => x.LineItemAmount), ustGesamt = g.Sum(x => x.TaxItem.TaxPercent.Value * x.LineItemAmount / 100).FixedFraction(2) }; totals.PrintDump(); var tax = invoice.Details.ItemList[0].ListLineItem .GroupBy(s => new { Prozent = s.TaxItem.TaxPercent.Value, Code = s.TaxItem.TaxPercent.TaxCategoryCode }) .Select(p => new TaxItemType { TaxPercent = new TaxPercentType() { TaxCategoryCode = p.Key.Code, Value = p.Key.Prozent }, TaxableAmount = p.Sum(x => x.LineItemAmount), TaxAmount = (p.Sum(x => x.LineItemAmount) * p.Key.Prozent / 100), }); tax.PrintDump(); var totale = totals.FirstOrDefault(); Assert.AreEqual(totale.ustGesamt, invoice.TaxAmountTotal, "USt Gesamt"); Assert.AreEqual(totale.ustGesamt + totale.netto, invoice.TotalGrossAmount, "Gesamt Betrag"); Assert.AreEqual(tax.Count(), invoice.Tax.TaxItem.Count, "TaxItem Count"); Assert.Multiple(() => { var taxLIst = tax.ToList(); for (int i = 0; i < taxLIst.Count; i++) { Assert.AreEqual(taxLIst[i].TaxableAmount, invoice.Tax.TaxItem[i].TaxableAmount, "TaxableAmount"); Assert.AreEqual(taxLIst[i].TaxAmount, invoice.Tax.TaxItem[i].TaxAmount, "Amount"); Assert.AreEqual(taxLIst[i].TaxPercent.TaxCategoryCode, invoice.Tax.TaxItem[i].TaxPercent.TaxCategoryCode, "Percent"); Assert.AreEqual(taxLIst[i].TaxPercent.Value, invoice.Tax.TaxItem[i].TaxPercent.Value, "Value"); } }); }
public void MapV4P1ToVmTest() { string fn = @"Daten\Test-ebInterfaceRechn-2014-500-2014-03-19.xml"; var invoice = InvoiceFactory.LoadTemplate(fn); // var invVm = DocumentViewModel.MapV4P1ToVm(invoice as ebIModels.Schema.ebInterface4p1.InvoiceType); // var inv4p1 = MappingService.MapVMToV4p1(invVm); //Assert.AreEqual(new DateTime(2014, 04, 19), invoice.PaymentConditions.DueDate); Assert.AreEqual(CountryCodeType.AT.ToString(), invoice.Biller.Address.Country.CountryCode); Assert.AreEqual("Österreich", invoice.Biller.Address.Country.Value); invoice.SaveTemplate(@"Daten\ConvertedInvoice.xml"); Assert.IsNotNull(invoice); }
public void SaveInvoiceTest(string inputFile, string outputFile, Models.EbIVersion ebIVersion, string expectedAttr) { var invoice = InvoiceFactory.LoadTemplate(inputFile); //invoice.PrintDump(); EbInterfaceResult result = invoice.Save(outputFile, ebIVersion); result.PrintDump(); Assert.That(result.ResultType == ResultType.IsValid, $"Validation Error: {outputFile} "); XDocument xInv = XDocument.Load(outputFile); var attrs = xInv.Root.Attributes().Where(p => p.IsNamespaceDeclaration == true).FirstOrDefault(x => x.Name.LocalName == "eb"); Assert.IsNotNull(attrs); Assert.AreEqual(expectedAttr, attrs.Value); }
private void UpdateDatesInTestTemplates() { var dirList = Directory.GetFiles(DataFolder, "*.xml"); foreach (string templFileName in dirList) { IInvoiceModel inv = InvoiceFactory.LoadTemplate(templFileName); DateTime oldInvDate = inv.InvoiceDate; // Save Invoicedate inv.InvoiceDate = DateTime.Today; int days = inv.InvoiceDate.Days(oldInvDate); if (inv.Delivery != null) { if (inv.Delivery.Item != null) { if (inv.Delivery.Item is DateTime deliveryDate) { inv.Delivery.Item = deliveryDate.AddDays(days); } if (inv.Delivery.Item is PeriodType period) { if (period.FromDate != DateTime.MinValue) { period.FromDate = ((DateTime)period.FromDate).AddDays(days); } if (period.ToDate != DateTime.MinValue) { period.ToDate = ((DateTime)period.ToDate).AddDays(days); } inv.Delivery.Item = period; } } } if (inv.PaymentConditions != null) { inv.PaymentConditions.DueDate = inv.PaymentConditions.DueDate.AddDays(days); } if (inv.PaymentConditions.Discount != null) { foreach (var item2 in inv.PaymentConditions.Discount) { item2.PaymentDate = item2.PaymentDate.AddDays(days); } } inv.SaveTemplate(templFileName); } }
public void CalculateTotalsTest() { string testInv = @"C:\GitHub\ebinterface-word-plugin\eRechnungWordPlugIn\UnitTests\ebIViewModelsTests\Daten\Test Vorlage 2014-500-2014-03-19.XML"; InvVm.LoadTemplateCommand.Execute(testInv); var controllInvoice = InvoiceFactory.LoadTemplate(testInv); Assert.AreEqual(1, controllInvoice.Details.ItemList.Count, "Count Details.ItemList"); Assert.AreEqual(controllInvoice.Details.ItemList[0].ListLineItem.Count, InvVm.DetailsView.Count, "Details Count"); var totals = from a in controllInvoice.Details.ItemList[0].ListLineItem group a by 1 into g select new { netto = g.Sum(x => x.LineItemAmount), ustGesamt = g.Sum(x => x.TaxItem.TaxPercent.Value * x.LineItemAmount / 100) }; totals.PrintDump(); var tax = controllInvoice.Details.ItemList[0].ListLineItem.GroupBy(s => new { s.TaxItem.TaxPercent.Value, s.TaxItem.TaxPercent.TaxCategoryCode }) .Select(p => new { Percent = p.Key.Value, Code = p.Key.TaxCategoryCode, taxableAmount = p.Sum(x => x.LineItemAmount), taxAmount = p.Sum(x => x.LineItemAmount) * p.Key.Value / 100, }); tax.PrintDump(); Assert.Multiple(() => { for (int i = 0; i < InvVm.DetailsView.Count; i++) { var vmDetail = InvVm.DetailsView[i]; vmDetail.UomEntries = new List <UnitOfMeasureEntries>(); // um den Object Dump klein zu halten vmDetail.UoMList = new System.ComponentModel.BindingList <UnitOfMeasureViewModel>(); // um den Object Dump klein zu halten vmDetail.VatList = new System.ComponentModel.BindingList <VatDefaultValue>(); var cDetail = controllInvoice.Details.ItemList[0].ListLineItem[i]; Console.WriteLine($"in Template Pos {cDetail.PositionNumber} ****************************************"); // cDetail.PrintDump(); Console.WriteLine($"Zeile {i} in ViewModel, Pos {cDetail.PositionNumber} ****************************************"); // vmDetail.PrintDump(); Assert.AreEqual(cDetail.ArticleNumber[0].Value, vmDetail.ArtikelNr, $"Pos {cDetail.PositionNumber}Artikelnr"); Assert.AreEqual(cDetail.LineItemAmount, vmDetail.NettoBetragZeile, $"Pos {cDetail.PositionNumber}, LineItemAmount"); Assert.AreEqual(cDetail.TaxItem.TaxAmount, vmDetail.MwStBetragZeile, $"Pos {cDetail.PositionNumber}, TaxAmount"); Assert.AreEqual(cDetail.TaxItem.TaxableAmount, vmDetail.NettoBetragZeile, $"Pos {cDetail.PositionNumber}, TaxableAmount"); Assert.AreEqual(cDetail.TaxItem.TaxPercent.Value, vmDetail.VatItem.MwStSatz, $"Pos {cDetail.PositionNumber}, TaxPercent.Value"); } }); Assert.AreEqual(controllInvoice.Tax.TaxItem.Count, InvVm.VatView.VatViewList.Count, "Tax.TaxItem.Count"); Assert.Multiple(() => { for (int i = 0; i < InvVm.VatView.VatViewList.Count; i++) { var vmVat = InvVm.VatView.VatViewList[i]; var cTaxItem = controllInvoice.Tax.TaxItem[i]; Assert.AreEqual(cTaxItem.TaxPercent.TaxCategoryCode, vmVat.TaxCode, "TaxPercent.TaxCategoryCode"); Assert.AreEqual(cTaxItem.TaxPercent.Value, vmVat.VatPercent, "TaxPercent.Value"); Assert.AreEqual(cTaxItem.TaxableAmount, vmVat.VatBaseAmount, "TaxableAmount"); Assert.AreEqual(cTaxItem.TaxAmount, vmVat.VatAmount, "TaxAmount"); } }); //Console.WriteLine("VAT ***********************************"); //InvVm.VatView.VatViewList.PrintDump(); //controllInvoice.Tax.TaxItem.PrintDump(); Assert.Multiple(() => { Assert.AreEqual(controllInvoice.TotalGrossAmount, InvVm.VmInvTotalAmountDecimal, nameof(controllInvoice.TotalGrossAmount)); Assert.AreEqual(controllInvoice.NetAmount, InvVm.VmInvTotalNetAmount.ToDecimal(), nameof(controllInvoice.NetAmount)); Assert.AreEqual(controllInvoice.TaxAmountTotal, InvVm.VmInvTaxAmount.ToDecimal(), nameof(controllInvoice.TaxAmountTotal)); }); }
public void LoadTemplate4P1WithVorlageTagOk() { string fn = @"Daten\testTemplateInvoiceTest.xml"; var invoice = InvoiceFactory.LoadTemplate(fn); Assert.IsNotNull(invoice); }
public void Setup(string fn) { Invoice = InvoiceFactory.LoadTemplate(InvTemplate); }
public Common(string fn) { UContainer = ThisDocument.Register4Unity(); UpdateDatesInTestTemplates(); Invoice = InvoiceFactory.LoadTemplate(fn); }