private static async Task <Kvittering> HentKvitteringOgBekreftAsync(SikkerDigitalPostKlient sdpKlient, string testBeskrivelse, Forsendelse forsendelse) { const int hentKvitteringMaksAntallGanger = 10; var hentKvitteringPåNytt = true; var prøvdPåNytt = 0; Kvittering kvittering = null; while (hentKvitteringPåNytt && (prøvdPåNytt++ <= hentKvitteringMaksAntallGanger)) { Thread.Sleep(500); var kvitteringsforespørsel = new Kvitteringsforespørsel(forsendelse.Prioritet, forsendelse.MpcId); kvittering = await sdpKlient.HentKvitteringAsync(kvitteringsforespørsel); if (kvittering is TomKøKvittering) { continue; } hentKvitteringPåNytt = false; await sdpKlient.BekreftAsync((Forretningskvittering)kvittering); var konversasjonsId = HentKonversasjonsIdFraKvittering(kvittering); if (konversasjonsId != forsendelse.KonversasjonsId) { throw new FieldAccessException( $"Fikk ikke til å hente kvittering for test '{testBeskrivelse}' -- det ble hentet feil kvittering eller ingen kvittering. Var du for rask å hente, " + "eller har noe skjedd galt med hvilken kø du henter fra?"); } } return(kvittering); }
public void SendDigitaltPåVegneAvIntegrasjon() { //Arrange const string testDepartementetAvsenderOrgnummer = "987656789"; const string postenDatabehandlerOrgnummer = "984661185"; var avsender = new Avsender(testDepartementetAvsenderOrgnummer); var databehandler = new Databehandler(postenDatabehandlerOrgnummer, DomeneUtility.GetAvsenderSertifikat()); var forsendelse = new Forsendelse(avsender, DomeneUtility.GetDigitalPostInfoEnkel(), DomeneUtility.GetDokumentpakkeUtenVedlegg(), Prioritet.Normal, Guid.NewGuid().ToString()); var klientKonfig = new Klientkonfigurasjon { MeldingsformidlerUrl = new Uri(Settings.Default.UrlMeldingsformidler), LoggXmlTilFil = true }; //Act var sdpKlient = new SikkerDigitalPostKlient(databehandler, klientKonfig); var transportkvittering = sdpKlient.Send(forsendelse, true); //Assert Assert.IsNotNull(transportkvittering); var kvittering = HentKvitteringOgBekreft(sdpKlient, "Send digital paa vegne av", forsendelse); Assert.IsTrue(kvittering is Leveringskvittering, "Klarte ikke hente kvittering eller feilet kvittering"); }
private static async void HentKvitteringer(SikkerDigitalPostKlient sikkerDigitalPostKlient) { Log.Debug(""); Log.Debug(@" > Starter å hente kvitteringer ..."); Thread.Sleep(3000); while (true) { var kvitteringsForespørsel = new Kvitteringsforespørsel(Prioritet.Prioritert, MpcId); Log.Debug($" > Henter kvittering på kø '{kvitteringsForespørsel.Mpc}'..."); var kvittering = await sikkerDigitalPostKlient.HentKvitteringAsync(kvitteringsForespørsel).ConfigureAwait(false); if (kvittering is TomKøKvittering) { Console.WriteLine($" - Kø '{kvitteringsForespørsel.Mpc}' er tom. Venter og prover igjen. "); Thread.Sleep(3000); continue; } if (kvittering is TransportFeiletKvittering) { var feil = ((TransportFeiletKvittering) kvittering).Beskrivelse; WriteToConsoleWithColor( "En feil skjedde under transport. Forespørsel for kvittering ble ikke godtatt av Meldingsformidler: " + feil, true); break; } if (kvittering is Leveringskvittering) { WriteToConsoleWithColor(" - En leveringskvittering ble hentet!"); } if (kvittering is Åpningskvittering) { WriteToConsoleWithColor(" - Har du sett. Noen har åpnet et brev. Moro."); } if (kvittering is Returpostkvittering) WriteToConsoleWithColor(" - Du har fått en returpostkvittering for fysisk post."); if (kvittering is Mottakskvittering) WriteToConsoleWithColor(" - Kvittering på sending av fysisk post mottatt."); if (kvittering is Feilmelding) { var feil = (Feilmelding) kvittering; WriteToConsoleWithColor(" - En feilmelding ble hentet :" + feil.Detaljer, true); } Console.WriteLine(@" - Bekreftelse på mottatt kvittering sendes ..."); sikkerDigitalPostKlient.Bekreft((Forretningskvittering) kvittering); Console.WriteLine(@" - Kvittering sendt."); } }
private void SendDokumentpakke(SikkerDigitalPostKlient sikkerDigitalPostKlient, Forsendelse forsendelse) { var transportkvittering = sikkerDigitalPostKlient.Send(forsendelse); if (transportkvittering.GetType() == typeof(TransportFeiletKvittering)) { var feilmelding = ((TransportFeiletKvittering)transportkvittering).Beskrivelse; Assert.Fail(feilmelding); } }
public void Initializes_fields() { //Arrange var databehandler = new Databehandler(DomainUtility.Organisasjonsnummer(), DomainUtility.GetAvsenderCertificate()); var klientkonfigurasjon = new Klientkonfigurasjon(Miljø.FunksjoneltTestmiljø); //Act var sikkerDigitalPostKlient = new SikkerDigitalPostKlient(databehandler, klientkonfigurasjon); //Assert Assert.Equal(klientkonfigurasjon, sikkerDigitalPostKlient.Klientkonfigurasjon); Assert.Equal(databehandler, sikkerDigitalPostKlient.Databehandler); Assert.IsType <RequestHelper>(sikkerDigitalPostKlient.RequestHelper); }
private async Task <int> HentKvitteringOgBekreft(SikkerDigitalPostKlient sdpKlient, string testBeskrivelse, string mpcId, Forsendelse forsendelse) { var hentKvitteringPåNytt = true; var prøvdPåNytt = 0; while (hentKvitteringPåNytt && (prøvdPåNytt++ <= _hentKvitteringerMaksAntallGanger)) { Thread.Sleep(1000); var kvitteringsforespørsel = new Kvitteringsforespørsel(Prioritet.Prioritert, mpcId); var kvittering = await sdpKlient.HentKvitteringAsync(kvitteringsforespørsel); if (kvittering == null) { continue; } sdpKlient.Bekreft((Forretningskvittering)kvittering); hentKvitteringPåNytt = false; var konversasjonsId = Guid.Empty; if (kvittering is Feilmelding) { var feilmelding = (Feilmelding)kvittering; konversasjonsId = feilmelding.KonversasjonsId; Assert.Fail("Test '{0}' feilet. Feilmelding fra Meldingsformidler: {1}", testBeskrivelse, feilmelding.Detaljer); } if (kvittering is Leveringskvittering) { var leveringskvittering = (Leveringskvittering)kvittering; konversasjonsId = leveringskvittering.KonversasjonsId; } if (konversasjonsId.ToString() != forsendelse.KonversasjonsId.ToString()) { throw new FieldAccessException( string.Format( "Fikk ikke til å hente kvittering for test '{0}' -- det ble hentet feil kvittering eller ingen kvittering. Var du for rask å hente, " + "eller har noe skjedd galt med hvilken kø du henter fra?", testBeskrivelse)); } } return(prøvdPåNytt); }
public void Initializes_fields() { //Arrange var databehandler = new Databehandler(DomainUtility.PostenOrganisasjonsnummer()); var klientkonfigurasjon = new Klientkonfigurasjon(IntegrasjonsPunktLocalHostMiljø); //Act var serviceProvider = LoggingUtility.CreateServiceProviderAndSetUpLogging(); var sikkerDigitalPostKlient = new SikkerDigitalPostKlient(databehandler, klientkonfigurasjon, serviceProvider.GetService <ILoggerFactory>()); //Assert Assert.Equal(klientkonfigurasjon, sikkerDigitalPostKlient.Klientkonfigurasjon); Assert.Equal(databehandler, sikkerDigitalPostKlient.Databehandler); Assert.IsType <RequestHelper>(sikkerDigitalPostKlient.RequestHelper); }
private static async void SendPost(SikkerDigitalPostKlient sikkerDigitalPostKlient, Forsendelse forsendelse) { var transportkvittering = await sikkerDigitalPostKlient.SendAsync(forsendelse).ConfigureAwait(false); Log.Debug(@" > Post sendt. Status er ..."); if (transportkvittering.GetType() == typeof (TransportOkKvittering)) { WriteToConsoleWithColor(" > OK! En transportkvittering ble hentet og alt gikk fint."); } if (transportkvittering.GetType() == typeof (TransportFeiletKvittering)) { var feiletkvittering = (TransportFeiletKvittering) transportkvittering; WriteToConsoleWithColor( $" > {feiletkvittering.Alvorlighetsgrad}. Nå gikk det galt her. {feiletkvittering.Beskrivelse}", true); } }
public SmokeTestsHelper(Miljø miljø, bool loggHttp = false, bool brukProxy = false) { var config = new Klientkonfigurasjon(miljø); config.LoggForespørselOgRespons = loggHttp; if (brukProxy) { config.ProxyHost = "127.0.0.1"; config.ProxyPort = 8888; config.ProxyScheme = "http"; config.TimeoutIMillisekunder = 2000; } var serviceProvider = LoggingUtility.CreateServiceProviderAndSetUpLogging(); _klient = new SikkerDigitalPostKlient(new Databehandler(DomainUtility.PostenOrganisasjonsnummer()), config, serviceProvider.GetService <ILoggerFactory>()); }
private static async void SendPost(SikkerDigitalPostKlient _sikkerDigitalPostKlient, Forsendelse forsendelse) { Transportkvittering transportkvittering = await _sikkerDigitalPostKlient.SendAsync(forsendelse); Console.WriteLine(" > Post sendt. Status er ..."); if (transportkvittering.GetType() == typeof(TransportOkKvittering)) { WriteToConsoleWithColor(" > OK! En transportkvittering ble hentet og alt gikk fint."); } if (transportkvittering.GetType() == typeof(TransportFeiletKvittering)) { var feiletkvittering = (TransportFeiletKvittering)transportkvittering; WriteToConsoleWithColor(String.Format(" > {0}. Nå gikk det galt her. {1}", feiletkvittering.Alvorlighetsgrad, feiletkvittering.Beskrivelse), true); } }
public async Task Calls_all_dokumentpakke_prosessors() { //Arrange var klientkonfigurasjon = new Klientkonfigurasjon(Miljø.FunksjoneltTestmiljø) { Dokumentpakkeprosessorer = new List <IDokumentpakkeProsessor> { new SimpleDocumentBundleProcessor(), new SimpleDocumentBundleProcessor() } }; var sikkerDigitalPostKlient = new SikkerDigitalPostKlient(DomainUtility.GetDatabehandler(), klientkonfigurasjon); DomainUtility.GetSikkerDigitalPostKlientQaOffentlig(); var fakeHttpClientHandlerResponse = new FakeResponseHandler() { HttpContent = new StringContent(XmlResource.Response.GetTransportOk().OuterXml), }; sikkerDigitalPostKlient.RequestHelper.HttpClient = new HttpClient(fakeHttpClientHandlerResponse); //Act var forsendelse = DomainUtility.GetForsendelseSimple(); try { await sikkerDigitalPostKlient.SendAsync(forsendelse).ConfigureAwait(false); } catch (SecurityException) { /* * We do not care about the results. Just do sending. Nasty hack as we are unable to mock validation * in SikkerDigitalPostKlient, which results in invalid timestamp since response is out of date. */ } //Assert foreach (var dokumentpakkeProsessor in klientkonfigurasjon.Dokumentpakkeprosessorer.Cast <SimpleDocumentBundleProcessor>()) { Assert.True(dokumentpakkeProsessor.CouldReadBytesStream); } }
private static void SendPost(PostInfo postInfo) { /* * I dette eksemplet er det Posten som er den som produserer informasjon/brev/post som skal formidles (Avsender), * Posten som er databehandler, og det er Digipostkassen som skal motta meldingen. */ Log.Debug(@"--- STARTER Å SENDE POST ---"); /* * SETT OPP MOTTAKER OG INNSTILLINGER */ var avsender = new Avsender(new Organisasjonsnummer(Settings.Default.DifiOrgNummer)); var databehandler = new Databehandler( new Organisasjonsnummer(Settings.Default.DifiOrgNummer), Settings.Default.DifiSertifikatThumbprint); var forsendelse = GenererForsendelse(avsender, postInfo); var klientkonfigurasjon = SettOppKlientkonfigurasjon(); klientkonfigurasjon.AktiverLagringAvDokumentpakkeTilDisk(@"C:\Users\User\Downloads\"); var sikkerDigitalPostKlient = new SikkerDigitalPostKlient(databehandler, klientkonfigurasjon); /** * SEND POST OG MOTTA KVITTERINGER */ SendPost(sikkerDigitalPostKlient, forsendelse); Log.Debug(@"--- STARTER Å HENTE KVITTERINGER ---"); HentKvitteringer(sikkerDigitalPostKlient); Console.WriteLine(); Log.Debug(@"--- FERDIG Å SENDE POST OG MOTTA KVITTERINGER :) --- "); Console.ReadKey(); }
private static void SendPost() { /* * I dette eksemplet er det Posten som er den som produserer informasjon/brev/post som skal formidles (Avsender), * Posten som er teknisk avsender, og det er Digipostkassen som skal motta meldingen. */ Console.WriteLine("--- STARTER Å SENDE POST ---"); /* * SETT OPP MOTTAKER OG INNSTILLINGER */ PostkasseInnstillinger postkasseInnstillinger = PostkasseInnstillinger.GetPosten(); var postInfo = GenererPostInfo(postkasseInnstillinger, ErDigitalPostMottaker, ErNorskBrev); var avsender = new Avsender(postkasseInnstillinger.OrgNummerBehandlingsansvarlig); var databehandler = new Databehandler(postkasseInnstillinger.OrgNummerDatabehandler, "8702F5E55217EC88CF2CCBADAC290BB4312594AC"); avsender.Avsenderidentifikator = "digipost"; var forsendelse = GenererForsendelse(avsender, postInfo); var klientkonfigurasjon = SettOppKlientkonfigurasjon(); var sikkerDigitalPostKlient = new SikkerDigitalPostKlient(databehandler, klientkonfigurasjon); /** * SEND POST OG MOTTA KVITTERINGER */ SendPost(sikkerDigitalPostKlient, forsendelse); Console.WriteLine("--- STARTER Å HENTE KVITTERINGER ---"); HentKvitteringer(sikkerDigitalPostKlient); Console.WriteLine(); Console.WriteLine("--- FERDIG Å SENDE POST OG MOTTA KVITTERINGER :) --- "); Console.ReadKey(); }
private static void SendPost() { /* * I dette eksemplet er det Posten som er den som produserer informasjon/brev/post som skal formidles (Avsender), * Posten som er databehandler, og det er Digipostkassen som skal motta meldingen. */ Console.WriteLine(@"--- STARTER Å SENDE POST ---"); /* * SETT OPP MOTTAKER OG INNSTILLINGER */ var postInfo = GenererPostInfo(ErDigitalPostMottaker, ErNorskBrev); var avsender = new Avsender(Settings.Default.OrgnummerPosten); var databehandler = new Databehandler(Settings.Default.OrgnummerPosten, Settings.Default.DatabehandlerSertifikatThumbprint); avsender.Avsenderidentifikator = "digipost"; var forsendelse = GenererForsendelse(avsender, postInfo); var klientkonfigurasjon = SettOppKlientkonfigurasjon(); var sikkerDigitalPostKlient = new SikkerDigitalPostKlient(databehandler, klientkonfigurasjon); /** * SEND POST OG MOTTA KVITTERINGER */ SendPost(sikkerDigitalPostKlient, forsendelse); Console.WriteLine(@"--- STARTER Å HENTE KVITTERINGER ---"); HentKvitteringer(sikkerDigitalPostKlient); Console.WriteLine(); Console.WriteLine(@"--- FERDIG Å SENDE POST OG MOTTA KVITTERINGER :) --- "); Console.ReadKey(); }
public SmokeTestsHelper(Miljø miljø) { _klient = new SikkerDigitalPostKlient(new Databehandler(DomainUtility.Organisasjonsnummer(), DomainUtility.GetAvsenderCertificate()), new Klientkonfigurasjon(miljø)); }
private static async void HentKvitteringer(SikkerDigitalPostKlient _sikkerDigitalPostKlient) { Console.WriteLine(); Console.WriteLine(" > Starter å hente kvitteringer ..."); Thread.Sleep(3000); while (true) { var kvitteringsForespørsel = new Kvitteringsforespørsel(Prioritet.Prioritert, MpcId); Console.WriteLine(" > Henter kvittering på kø '{0}'...", kvitteringsForespørsel.Mpc); Kvittering kvittering = await _sikkerDigitalPostKlient.HentKvitteringAsync(kvitteringsForespørsel); if (kvittering == null) { Console.WriteLine(" - Kø '{0}' er tom. Stopper å hente meldinger. ", kvitteringsForespørsel.Mpc); break; } if (kvittering is TransportFeiletKvittering) { var feil = ((TransportFeiletKvittering)kvittering).Beskrivelse; WriteToConsoleWithColor( "En feil skjedde under transport. Forespørsel for kvittering ble ikke godtatt av Meldingsformidler: " + feil, isError: true); break; } if (kvittering is Leveringskvittering) { WriteToConsoleWithColor(" - En leveringskvittering ble hentet!"); } if (kvittering is Åpningskvittering) { WriteToConsoleWithColor(" - Har du sett. Noen har åpnet et brev. Moro."); } if (kvittering is Returpostkvittering) { WriteToConsoleWithColor(" - Du har fått en returpostkvittering for fysisk post."); } if (kvittering is Mottakskvittering) { WriteToConsoleWithColor(" - Kvittering på sending av fysisk post mottatt."); } if (kvittering is Feilmelding) { var feil = (Feilmelding)kvittering; WriteToConsoleWithColor(" - En feilmelding ble hentet :" + feil.Detaljer, true); } Console.WriteLine(" - Bekreftelse på mottatt kvittering sendes ..."); _sikkerDigitalPostKlient.Bekreft((Forretningskvittering)kvittering); Console.WriteLine(" - Kvittering sendt."); } }
public void NyKlientOgSend() { var klientKonfig = new Klientkonfigurasjon(Miljø.FunksjoneltTestmiljø); Databehandler databehandler = null; //Som initiert tidligere Forsendelse forsendelse = null; //Som initiert tidligere var sdpKlient = new SikkerDigitalPostKlient(databehandler, klientKonfig); var transportkvittering = sdpKlient.Send(forsendelse); if (transportkvittering is TransportOkKvittering) { //Når alt går fint } else if (transportkvittering is TransportFeiletKvittering) { var beskrivelse = ((TransportFeiletKvittering)transportkvittering).Beskrivelse; } //////////////////////////////////////// // Eksempel for henting av kvittering //////////////////////////////////////// var køId = "MpcId"; var kvitteringsForespørsel = new Kvitteringsforespørsel(Prioritet.Prioritert, køId); Console.WriteLine(" > Henter kvittering på kø '{0}'...", kvitteringsForespørsel.Mpc); Kvittering kvittering = sdpKlient.HentKvittering(kvitteringsForespørsel); if (kvittering == null) { Console.WriteLine(" - Kø '{0}' er tom. Stopper å hente meldinger. ", kvitteringsForespørsel.Mpc); } if (kvittering is TransportFeiletKvittering) { var feil = ((TransportFeiletKvittering)kvittering).Beskrivelse; Console.WriteLine("En feil skjedde under transport."); } if (kvittering is Leveringskvittering) { Console.WriteLine(" - En leveringskvittering ble hentet!"); } if (kvittering is Åpningskvittering) { Console.WriteLine(" - Har du sett. Noen har åpnet et brev. Moro."); } if (kvittering is Returpostkvittering) { Console.WriteLine(" - Du har fått en returpostkvittering for fysisk post."); } if (kvittering is Mottakskvittering) { Console.WriteLine(" - Kvittering på sending av fysisk post mottatt."); } if (kvittering is Feilmelding) { var feil = (Feilmelding)kvittering; Console.WriteLine(" - En feilmelding ble hentet :" + feil.Detaljer, true); } ////////////////////////////////////////// /// Bekreft ///////////////////////////////////////// sdpKlient.Bekreft((Forretningskvittering)kvittering); }
public void OpprettKlientOgSendPost() { var integrasjonsPunktLocalHostMiljø = new Miljø(new Uri("http://127.0.0.1:9093")); var klientKonfig = new Klientkonfigurasjon(integrasjonsPunktLocalHostMiljø); Databehandler databehandler = null; //Som initiert tidligere Forsendelse forsendelse = null; //Som initiert tidligere var sdpKlient = new SikkerDigitalPostKlient(databehandler, klientKonfig); var transportkvittering = sdpKlient.Send(forsendelse); if (transportkvittering is TransportOkKvittering) { //Når sending til integrasjonspunkt har gått fint. } else if (transportkvittering is TransportFeiletKvittering) { var beskrivelse = ((TransportFeiletKvittering)transportkvittering).Beskrivelse; } //Hent kvitteringer var kvitteringsForespørsel = new Kvitteringsforespørsel(); Console.WriteLine(" > Henter kvittering på kø..."); Kvittering kvittering = sdpKlient.HentKvittering(kvitteringsForespørsel); if (kvittering is TomKøKvittering) { Console.WriteLine(" - Kø er tom. Stopper å hente meldinger. "); } if (kvittering is TransportFeiletKvittering) { var feil = ((TransportFeiletKvittering)kvittering).Beskrivelse; Console.WriteLine("En feil skjedde under transport."); } if (kvittering is Leveringskvittering) { Console.WriteLine(" - En leveringskvittering ble hentet!"); } if (kvittering is Åpningskvittering) { Console.WriteLine(" - Noen har åpnet et brev."); } if (kvittering is Returpostkvittering) { Console.WriteLine(" - Du har fått en returpostkvittering for fysisk post."); } if (kvittering is Mottakskvittering) { Console.WriteLine(" - Kvittering på sending av fysisk post mottatt."); } if (kvittering is Feilmelding) { var feil = (Feilmelding)kvittering; Console.WriteLine(" - En feilmelding ble hentet :" + feil.Detaljer, true); } //Husk at det ikke er mulig å hente nye kvitteringer før du har bekreftet mottak av nåværende. sdpKlient.Bekreft((Forretningskvittering)kvittering); }
private Transportkvittering SendDokumentpakke(SikkerDigitalPostKlient sikkerDigitalPostKlient, Forsendelse forsendelse) { return(sikkerDigitalPostKlient.Send(forsendelse)); }
private async Task <Transportkvittering> SendDokumentpakkeAsync(SikkerDigitalPostKlient sikkerDigitalPostKlient, Forsendelse forsendelse) { return(await sikkerDigitalPostKlient.SendAsync(forsendelse)); }
public SmokeTestsHelper(Miljø miljø) { _klient = new SikkerDigitalPostKlient(new Databehandler(BringOrganisasjonsnummer, BringThumbprint), new Klientkonfigurasjon(miljø)); }