public void KppService_ShouldCreateValidXml_WhenParsingKpp() { // arrange var args = DefaultArgs(); var schemas = SchemaLoader.LoadDirectory("Resources"); // act KppService.Run(args, null); // assert Action verify = () => XmlUtils.ValidateXmlFile(args.OutputPath, schemas); verify.Should().NotThrow(); }
public void KppService_ShouldSetMsgHeadContent_WhenParsingKpp() { // arrange var args = DefaultArgs(); // act KppService.Run(args, null); // assert var msgHead = XmlUtils.DeserializeFromFile <MsgHead>(args.OutputPath); msgHead.MsgInfo.Type.Should().BeEquivalentTo(new CS { V = "NPR_KPP", DN = "KPP melding" }); msgHead.MsgInfo.GenDate.Should().BeSameDateAs(DateTime.Today); msgHead.MsgInfo.Sender.Should().BeEquivalentTo(new Sender { Organisation = new Organisation { OrganisationName = args.OrganizationName, Ident = new[] { new Ident { Id = args.OrganizationHerId, TypeId = new CV { V = "HER", DN = "HER-Id", S = "9051" } } } } }); msgHead.MsgInfo.Receiver.Should().BeEquivalentTo(new Receiver { Organisation = new Organisation { OrganisationName = "Helsedirektoratet", Ident = new[] { new Ident { Id = args.HDirHerId, TypeId = new CV { V = "HER", DN = "HER-Id", S = "9051" } } } } }); Guid.TryParse(msgHead.MsgInfo.MsgId, out _).Should().BeTrue(); var refDoc = msgHead.Items.First().As <Document>().RefDoc; refDoc.Should().NotBeNull(); refDoc.MsgType.Should().BeEquivalentTo(new CS { V = "XML", DN = "XML-instans" }); refDoc.Item?.As <RefDocContent>()?.Melding.Should().NotBeNull(); }
public void KppService_ShouldSetKppMessageContent_WhenParsingKpp() { // arrange var args = DefaultArgs(); var expectedMelding = XmlUtils.DeserializeFromFile <Melding>("Resources/Expectations/TestMelding.xml"); var expectations = expectedMelding.Institusjon; // act KppService.Run(args, null); // assert var file = XmlUtils.DeserializeFromFile <MsgHead>(args.OutputPath); var melding = file.Items.First().As <Document>().RefDoc.Item.As <RefDocContent>().Melding; melding.Institusjon.Should().BeEquivalentTo(expectations); }
public void KppService_ShouldSetMetadata_WhenParsingKpp() { // arrange var args = DefaultArgs(); // act KppService.Run(args, null); // assert var file = XmlUtils.DeserializeFromFile <MsgHead>(args.OutputPath); var melding = file.Items.First().As <Document>().RefDoc.Item.As <RefDocContent>().Melding; melding.versjonUt.Should().Be(args.ProgramVersion); melding.fraDatoPeriode.Should().Be(args.FraDato); melding.tilDatoPeriode.Should().Be(args.TilDato); melding.leverandor.Should().Be(args.Leverandor); melding.navnEPJ.Should().Be(args.NavnEpj); melding.versjonEPJ.Should().Be(args.VersjonEpj); }
private DoWorkEventHandler OnDoWork(Args args) { return((o, e) => { _worker.ReportProgress(ProgressBar.Minimum); try { KppService.Run(args, _worker.ReportProgress); } catch (Exception ex) { _worker.ReportProgress(ProgressBar.Value, "Noe gikk galt :("); var message = $"Noe gikk galt under opprettelse av meldingen.\n\nFeilmelding: {ex.Message}\n\n{ex.GetType()}\n\nVersjon: {args.ProgramVersion}"; MessageBox.Show(message, @"Noe gikk galt", MessageBoxButtons.OK, MessageBoxIcon.Error); } finally { _worker.ReportProgress(ProgressBar.Maximum); } }); }
private static int Main(string[] args) { Directory.SetCurrentDirectory(AppDomain.CurrentDomain.BaseDirectory); var verbose = false; var showHelp = args.Length == 0; var dryRun = false; var printVersion = false; var kppArgs = new Args { ProgramVersion = Version() }; var p = new OptionSet { { "Program-argumenter" }, { "h|help", "Vis hjelp", x => showHelp = true }, { "v|verbose", "Skriv status underveis", x => verbose = true }, { "d|dry-run", "Test konfigurasjon uten å kjøre programmet.", x => dryRun = true }, { "version", "Skriv programmets version", x => printVersion = true }, { "Input" }, { "episoder=", "Filsti til csv-fil med episoder", x => kppArgs.EpisodePath = x }, { "tjenester=", "Filsti til csv-fil med tjenester", x => kppArgs.TjenestePath = x }, { "fradato=", "Dato for periodens start. Format: yyyy-MM-dd", x => kppArgs.FraDato = ParseDate(x) }, { "tildato=", "Dato for periodens slutt. Format: yyyy-MM-dd", x => kppArgs.TilDato = ParseDate(x) }, { "org-herid=", "Avsenders HerId (fra Adresseregisteret)", x => kppArgs.OrganizationHerId = x }, { "org-navn=", "Avsenders navn", x => kppArgs.OrganizationName = x }, { "leverandor=", "Navn på leverandør av EPJ", x => kppArgs.Leverandor = x }, { "epj-navn=", "Navn på EPJ", x => kppArgs.NavnEpj = x }, { "epj-versjon=", "Versjon av EPJ", x => kppArgs.VersjonEpj = x }, { "hdir-herid=", "Helsedirektoratets HerId.", x => kppArgs.HDirHerId = x }, { "Output" }, { "o|output=", "Filsti hvor resultatet lagres", x => kppArgs.OutputPath = x } }; Console.WriteLine(); var list = p.Parse(args); if (list.Count > 0) { Console.WriteLine($"Ukjente variable: {string.Join(", ", list)}\n"); p.WriteOptionDescriptions(Console.Out); return(1); } if (showHelp) { p.WriteOptionDescriptions(Console.Out); return(0); } if (printVersion) { Console.WriteLine(Version()); return(0); } if (dryRun) { Console.WriteLine("# Tolket input:"); Console.WriteLine(kppArgs.ToString()); Console.WriteLine(); var message = !KppService.IsValid(kppArgs, out var em) ? $"# Fant følgende feil i input:\n{em}" : "# Input er gyldig"; Console.WriteLine(message); return(0); } if (!KppService.IsValid(kppArgs, out var errorMessage)) { Console.WriteLine($"Feil input:\n{errorMessage}"); return(1); } try { KppService.Run(kppArgs, (i, s) => Log(s, verbose)); } catch (Exception ex) { var message = $"Noe gikk galt under opprettelse av meldingen.\n\nFeilmelding: {ex.Message}\n\n{ex.GetType()}\n\nVersjon: {kppArgs.ProgramVersion}"; Console.WriteLine(message); return(1); } return(0); }