/// <param name="databehandler">
 /// Virksomhet (offentlig eller privat) som har en kontraktfestet avtale med Avsender med 
 /// formål å dekke hele eller deler av prosessen med å formidle en digital postmelding fra 
 /// Behandlingsansvarlig til Meldingsformidler. Det kan være flere databehandlere som har 
 /// ansvar for forskjellige steg i prosessen med å formidle en digital postmelding.
 /// </param>
 /// <param name="klientkonfigurasjon">Klientkonfigurasjon for klienten. Brukes for å sette parametere
 /// som proxy, timeout og URI til meldingsformidler. For å bruke standardkonfigurasjon, lag
 /// SikkerDigitalPostKlient uten Klientkonfigurasjon som parameter.</param>
 /// <remarks>
 /// Se <a href="http://begrep.difi.no/SikkerDigitalPost/forretningslag/Aktorer">oversikt over aktører</a>
 /// </remarks>
 public SikkerDigitalPostKlient(Databehandler databehandler, Klientkonfigurasjon klientkonfigurasjon)
 {
     _databehandler = databehandler;
     _klientkonfigurasjon = klientkonfigurasjon;
     Logging.Initialize(klientkonfigurasjon);
     FileUtility.BasePath = klientkonfigurasjon.StandardLoggSti;
 }
 private static Klientkonfigurasjon SettOppKlientkonfigurasjon()
 {
     var klientkonfigurasjon = new Klientkonfigurasjon(Miljø.FunksjoneltTestmiljø);
     //klientkonfigurasjon.LoggXmlTilFil = false;
     //klientkonfigurasjon.StandardLoggSti = @"Z:\aleksander sjafjell On My Mac\Development\Shared\sdp-data\Logg";
     return klientkonfigurasjon;
 }
Exemplo n.º 3
0
        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");
        }
            public void SendsBytesThroughDocumentBundleProcessors()
            {
                //Arrange
                var clientConfiguration = new Klientkonfigurasjon(Miljø.FunksjoneltTestmiljø)
                {
                    Dokumentpakkeprosessorer = new List <IDokumentpakkeProsessor>
                    {
                        new SimpleDocumentBundleProcessor(),
                        new SimpleDocumentBundleProcessor()
                    }
                };

                var forsendelse = DomainUtility.GetForsendelseSimple();
                var asiceAttachableProcessors = clientConfiguration.Dokumentpakkeprosessorer.Select(p => new AsiceAttachableProcessor(forsendelse, p));
                var asiceAttachables          = new IAsiceAttachable[] { DomainUtility.GetHoveddokumentSimple() };

                //Act
                var asiceArchive = new AsiceArchive(DomainUtility.GetMottakerCertificate(), new GuidUtility(), asiceAttachableProcessors, asiceAttachables);
                var bytes        = asiceArchive.Bytes;

                //Assert
                foreach (var simpleProcessor in clientConfiguration.Dokumentpakkeprosessorer.Cast <SimpleDocumentBundleProcessor>())
                {
                    Assert.True(simpleProcessor.StreamLength > 1000);
                    Assert.True(simpleProcessor.CouldReadBytesStream);
                    Assert.Equal(0, simpleProcessor.Initialposition);
                }
            }
Exemplo n.º 5
0
 /// <param name="databehandler">
 /// Teknisk avsender er den parten som har ansvarlig for den tekniske utførelsen av sendingen.
 /// Teknisk avsender er den aktøren som står for utførelsen av den tekniske sendingen.
 /// Hvis sendingen utføres av en databehandler vil dette være databehandleren.
 /// Hvis sendingen utføres av behandlingsansvarlige selv er dette den behandlingsansvarlige.
 /// </param>
 /// <param name="klientkonfigurasjon">Klientkonfigurasjon for klienten. Brukes for å sette parametere
 /// som proxy, timeout og URI til meldingsformidler. For å bruke standardkonfigurasjon, lag
 /// SikkerDigitalPostKlient uten Klientkonfigurasjon som parameter.</param>
 /// <remarks>
 /// Se <a href="http://begrep.difi.no/SikkerDigitalPost/forretningslag/Aktorer">oversikt over aktører</a>
 /// </remarks>
 public SikkerDigitalPostKlient(Databehandler databehandler, Klientkonfigurasjon klientkonfigurasjon)
 {
     _databehandler       = databehandler;
     _klientkonfigurasjon = klientkonfigurasjon;
     Logging.Initialize(klientkonfigurasjon);
     FileUtility.BasePath = klientkonfigurasjon.StandardLoggSti;
 }
Exemplo n.º 6
0
 /// <summary>
 ///     Settings for DigitalPostForsendelse
 /// </summary>
 public EnvelopeSettings(Forsendelse forsendelse, AsicEArkiv asicEArkiv, Databehandler databehandler, GuidUtility guidHandler, Klientkonfigurasjon konfigurasjon)
 {
     Forsendelse   = forsendelse;
     AsicEArkiv    = asicEArkiv;
     Databehandler = databehandler;
     GuidHandler   = guidHandler;
     Konfigurasjon = konfigurasjon;
 }
Exemplo n.º 7
0
 /// <summary>
 ///     Settings for DigitalPostForsendelse
 /// </summary>
 public EnvelopeSettings(Forsendelse forsendelse, DocumentBundle documentBundle, Databehandler databehandler, GuidUtility guidUtility, Klientkonfigurasjon konfigurasjon)
 {
     Forsendelse    = forsendelse;
     DocumentBundle = documentBundle;
     Databehandler  = databehandler;
     GuidUtility    = guidUtility;
     Konfigurasjon  = konfigurasjon;
 }
 /// <summary>
 /// Settings for DigitalPostForsendelse
 /// </summary>
 public EnvelopeSettings(Forsendelse forsendelse, AsicEArkiv asicEArkiv, Databehandler databehandler, GuidUtility guidHandler, Klientkonfigurasjon konfigurasjon)
 {
     Forsendelse = forsendelse;
     AsicEArkiv = asicEArkiv;
     Databehandler = databehandler;
     GuidHandler = guidHandler;
     Konfigurasjon = konfigurasjon;
 }
 private static void LeggTilLogging(Klientkonfigurasjon klientkonfigurasjon)
 {
     // Legger til logging til outputvinduet
     klientkonfigurasjon.Logger = (severity, konversasjonsId, metode, melding) =>
     {
         Debug.WriteLine("{0} - {1} [{2}]", DateTime.Now, melding, konversasjonsId.GetValueOrDefault());
     };
 }
Exemplo n.º 10
0
 internal RequestHelper(Klientkonfigurasjon klientkonfigurasjon, ILoggerFactory loggerFactory,
                        params DelegatingHandler[] additionalHandlers)
 {
     ClientConfiguration = klientkonfigurasjon;
     _loggerFactory      = loggerFactory;
     _logger             = loggerFactory.CreateLogger <RequestHelper>();
     HttpClient          = HttpClientWithHandlerChain(additionalHandlers);
 }
 /// <summary>
 ///     Settings for DigitalPostForsendelse
 /// </summary>
 public EnvelopeSettings(Forsendelse forsendelse, DocumentBundle documentBundle, Databehandler databehandler, GuidUtility guidUtility, Klientkonfigurasjon konfigurasjon)
 {
     Forsendelse = forsendelse;
     DocumentBundle = documentBundle;
     Databehandler = databehandler;
     GuidUtility = guidUtility;
     Konfigurasjon = konfigurasjon;
 }
        /// <param name="databehandler">
        ///     Virksomhet (offentlig eller privat) som har en kontraktfestet avtale med Avsender med
        ///     formål å dekke hele eller deler av prosessen med å formidle en digital postmelding fra
        ///     <see cref="Avsender" /> til Meldingsformidler.
        /// </param>
        /// <param name="klientkonfigurasjon">
        ///     Brukes for å sette parametere som proxy, timeout, logging av forespørsel/respons og selve dokumentpakken.
        /// </param>
        /// <remarks>
        ///     Se <a href="http://begrep.difi.no/SikkerDigitalPost/forretningslag/Aktorer">oversikt over aktører</a>
        /// </remarks>
        public SikkerDigitalPostKlient(Databehandler databehandler, Klientkonfigurasjon klientkonfigurasjon)
        {
            ValidateDatabehandlerCertificateAndThrowIfInvalid(databehandler, klientkonfigurasjon.Miljø);

            Databehandler = databehandler;
            Klientkonfigurasjon = klientkonfigurasjon;
            RequestHelper = new RequestHelper(klientkonfigurasjon);
        }
        /// <param name="databehandler">
        ///     Virksomhet (offentlig eller privat) som har en kontraktfestet avtale med Avsender med
        ///     formål å dekke hele eller deler av prosessen med å formidle en digital postmelding fra
        ///     <see cref="Avsender" /> til Meldingsformidler.
        /// </param>
        /// <param name="klientkonfigurasjon">
        ///     Brukes for å sette parametere som proxy, timeout, logging av forespørsel/respons og selve dokumentpakken.
        /// </param>
        /// <remarks>
        ///     Se <a href="http://begrep.difi.no/SikkerDigitalPost/forretningslag/Aktorer">oversikt over aktører</a>
        /// </remarks>
        public SikkerDigitalPostKlient(Databehandler databehandler, Klientkonfigurasjon klientkonfigurasjon)
        {
            ValidateDatabehandlerCertificateAndThrowIfInvalid(databehandler, klientkonfigurasjon.Miljø);

            Databehandler                   = databehandler;
            Klientkonfigurasjon             = klientkonfigurasjon;
            RequestHelper                   = new RequestHelper(klientkonfigurasjon);
            CertificateValidationProperties = new CertificateValidationProperties(klientkonfigurasjon.Miljø.GodkjenteKjedeSertifikater, Klientkonfigurasjon.MeldingsformidlerOrganisasjon);
        }
            public void Fails_if_invalid_certificate()
            {
                //Arrange
                var databehandler = new Databehandler(new Organisasjonsnummer("988015814"),  DomainUtility.GetAvsenderEnhetstesterSertifikat());
                var klientkonfigurasjon = new Klientkonfigurasjon(Miljø.FunksjoneltTestmiljø);

                //Act
                Assert.Throws<SecurityException>(()=> new SikkerDigitalPostKlient(databehandler, klientkonfigurasjon));
            }
            public void Fails_if_invalid_certificate()
            {
                //Arrange
                var databehandler       = new Databehandler(new Organisasjonsnummer("988015814"), DomainUtility.GetAvsenderEnhetstesterSertifikat());
                var klientkonfigurasjon = new Klientkonfigurasjon(Miljø.FunksjoneltTestmiljø);

                //Act
                Assert.Throws <SecurityException>(() => new SikkerDigitalPostKlient(databehandler, klientkonfigurasjon));
            }
Exemplo n.º 16
0
            public void NonExistingFolderShouldThrowException()
            {
                //Arrange
                var clientConfiguration = new Klientkonfigurasjon(Miljø.FunksjoneltTestmiljø);

                //Act
                Assert.Throws <DirectoryNotFoundException>(() =>
                                                           clientConfiguration.AktiverLagringAvDokumentpakkeTilDisk(@"c:\nonexistentfolder\theoddsofthisexistingis\extremelylow")
                                                           );
            }
        private static Klientkonfigurasjon SettOppKlientkonfigurasjon()
        {
            var klientkonfigurasjon = new Klientkonfigurasjon();

            LeggTilLogging(klientkonfigurasjon);
            klientkonfigurasjon.MeldingsformidlerUrl = new Uri("https://qaoffentlig.meldingsformidler.digipost.no/api/ebms");
            klientkonfigurasjon.LoggXmlTilFil        = false;
            klientkonfigurasjon.StandardLoggSti      = @"Z:\aleksander sjafjell On My Mac\Development\Shared\sdp-data\Logg";
            return(klientkonfigurasjon);
        }
            public void NonExistingFolderShouldThrowException()
            {
                //Arrange
                var clientConfiguration = new Klientkonfigurasjon(Miljø.FunksjoneltTestmiljø);

                //Act
                Assert.Throws<DirectoryNotFoundException>(() =>
                    clientConfiguration.AktiverLagringAvDokumentpakkeTilDisk(@"c:\nonexistentfolder\theoddsofthisexistingis\extremelylow")
                    );
            }
            public void AddsDocumentBundleToDiskProcessor()
            {
                //Arrange
                var clientConfiguration = new Klientkonfigurasjon(Miljø.FunksjoneltTestmiljø);

                //Act
                clientConfiguration.AktiverLagringAvDokumentpakkeTilDisk(Path.GetTempPath());

                //Assert
                Assert.True(clientConfiguration.Dokumentpakkeprosessorer.Any(p => p.GetType() == typeof (LagreDokumentpakkeTilDiskProsessor)));
            }
Exemplo n.º 20
0
            public void Initializes_fields()
            {
                //Arrange
                var clientConfiguration = new Klientkonfigurasjon(SikkerDigitalPostKlientTests.IntegrasjonsPunktLocalHostMiljø);

                //Act
                var requestHelper = new RequestHelper(clientConfiguration, new NullLoggerFactory());

                //Assert
                Assert.Equal(clientConfiguration, requestHelper.ClientConfiguration);
            }
Exemplo n.º 21
0
            public void AddsDocumentBundleToDiskProcessor()
            {
                //Arrange
                var clientConfiguration = new Klientkonfigurasjon(Miljø.FunksjoneltTestmiljø);

                //Act
                clientConfiguration.AktiverLagringAvDokumentpakkeTilDisk(Path.GetTempPath());

                //Assert
                Assert.True(clientConfiguration.Dokumentpakkeprosessorer.Any(p => p.GetType() == typeof(LagreDokumentpakkeTilDiskProsessor)));
            }
            public void Initializes_fields()
            {
                //Arrange
                var clientConfiguration = new Klientkonfigurasjon(Miljø.FunksjoneltTestmiljø);

                //Act
                var requestHelper = new RequestHelper(clientConfiguration);

                //Assert
                Assert.Equal(clientConfiguration, requestHelper.ClientConfiguration);
            }
Exemplo n.º 23
0
            public void Initializes_fields()
            {
                //Arrange
                var clientConfiguration = new Klientkonfigurasjon(Miljø.FunksjoneltTestmiljø);

                //Act
                var requestHelper = new RequestHelper(clientConfiguration);

                //Assert
                Assert.Equal(clientConfiguration, requestHelper.ClientConfiguration);
            }
Exemplo n.º 24
0
            public void ExistingFolderShouldNotThrowException()
            {
                //Arrange
                var clientConfiguration = new Klientkonfigurasjon(Miljø.FunksjoneltTestmiljø);
                var path = Path.GetTempPath();

                //Act
                clientConfiguration.AktiverLagringAvDokumentpakkeTilDisk(path);

                //Assert
                Assert.True(clientConfiguration.Dokumentpakkeprosessorer.Any(p => p.GetType() == typeof(LagreDokumentpakkeTilDiskProsessor)));
            }
            public void ExistingFolderShouldNotThrowException()
            {
                //Arrange
                var clientConfiguration = new Klientkonfigurasjon(Miljø.FunksjoneltTestmiljø);
                var path = Path.GetTempPath();

                //Act
                clientConfiguration.AktiverLagringAvDokumentpakkeTilDisk(path);

                //Assert
                Assert.True(clientConfiguration.Dokumentpakkeprosessorer.Any(p => p.GetType() == typeof (LagreDokumentpakkeTilDiskProsessor)));
            }
            public void ThrowsExceptionOnInvalidManifest()
            {
                //Arrange
                const string invalidFileNameNotFourCharacters = "T";
                var          asiceConfiguration       = new Klientkonfigurasjon(Miljø.FunksjoneltTestmiljø);
                var          dokumentpakkeUtenVedlegg = new Dokumentpakke(new Dokument("", new byte[3], "application/pdf", "nb", invalidFileNameNotFourCharacters));
                var          forsendelse = new Forsendelse(new Avsender(new Organisasjonsnummer("123456789")), DomainUtility.GetDigitalPostInfoSimple(), dokumentpakkeUtenVedlegg, Guid.NewGuid());

                //Act
                Assert.Throws <XmlValidationException>(() =>
                                                       AsiceGenerator.Create(forsendelse, new GuidUtility(), DomainUtility.GetAvsenderCertificate(), asiceConfiguration)
                                                       );
            }
Exemplo n.º 27
0
        /// <param name="databehandler">
        ///     Virksomhet (offentlig eller privat) som har en kontraktfestet avtale med Avsender med
        ///     formål å dekke hele eller deler av prosessen med å formidle en digital postmelding fra
        ///     <see cref="Avsender" /> til Meldingsformidler.
        /// </param>
        /// <param name="klientkonfigurasjon">
        ///     Brukes for å sette parametere som proxy, timeout, logging av forespørsel/respons og selve dokumentpakken.
        /// </param>
        /// <param name="loggerFactory">
        ///     Brukes for å sette loggeren.
        /// </param>
        /// <remarks>
        ///     Se <a href="http://begrep.difi.no/SikkerDigitalPost/forretningslag/Aktorer">oversikt over aktører</a>
        /// </remarks>
        public SikkerDigitalPostKlient(Databehandler databehandler, Klientkonfigurasjon klientkonfigurasjon,
                                       ILoggerFactory loggerFactory)
        {
            _logger        = loggerFactory.CreateLogger <SikkerDigitalPostKlient>();
            _loggerFactory = loggerFactory;

            //ValidateDatabehandlerCertificateAndThrowIfInvalid(databehandler, klientkonfigurasjon.Miljø);

            Databehandler       = databehandler;
            Klientkonfigurasjon = klientkonfigurasjon;
            RequestHelper       = new RequestHelper(klientkonfigurasjon, _loggerFactory);
            //CertificateValidationProperties = new CertificateValidationProperties(klientkonfigurasjon.Miljø.GodkjenteKjedeSertifikater, Klientkonfigurasjon.MeldingsformidlerOrganisasjon);
        }
            public void ThrowsExceptionOnInvalidManifest()
            {
                //Arrange
                const string invalidFileNameNotFourCharacters = "T";
                var asiceConfiguration = new Klientkonfigurasjon(Miljø.FunksjoneltTestmiljø);
                var dokumentpakkeUtenVedlegg = new Dokumentpakke(new Dokument("", new byte[3], "application/pdf", "nb", invalidFileNameNotFourCharacters));
                var forsendelse = new Forsendelse(new Avsender("123456789"), DomainUtility.GetDigitalPostInfoSimple(), dokumentpakkeUtenVedlegg, Guid.NewGuid());

                //Act
                Assert.Throws<XmlValidationException>(() =>
                    AsiceGenerator.Create(forsendelse, new GuidUtility(), DomainUtility.GetAvsenderCertificate(), asiceConfiguration)
                    );
            }
            public void Initializes_fields()
            {
                //Arrange
                var databehandler = new Databehandler(new Organisasjonsnummer("988015814"), 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);
            }
            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);
            }
            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);
            }
        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>());
        }
            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);
                }
            }
            public void InitializesProperties()
            {
                //Arrange
                var          environment = SikkerDigitalPostKlientTests.IntegrasjonsPunktLocalHostMiljø;
                const string organizationNumberPosten = "984661185";
                object       proxyhost             = null;
                const string proxyScheme           = "https";
                var          timeoutInMilliseconds = (int)TimeSpan.FromSeconds(30).TotalMilliseconds;
                const int    proxyPort             = 0;

                //Act
                var clientConfiguration = new Klientkonfigurasjon(environment);

                //Assert
                Assert.Equal(environment, clientConfiguration.Miljø);
                Assert.Equal(organizationNumberPosten, clientConfiguration.MeldingsformidlerOrganisasjon.Verdi);
                Assert.Equal(proxyhost, clientConfiguration.ProxyHost);
                Assert.Equal(proxyScheme, clientConfiguration.ProxyScheme);
                Assert.Equal(timeoutInMilliseconds, clientConfiguration.TimeoutIMillisekunder);
                Assert.Equal(proxyPort, clientConfiguration.ProxyPort);
                Assert.Equal(clientConfiguration.LoggForespørselOgRespons, false);
            }
            public void InitializesProperties()
            {
                //Arrange
                var environment = Miljø.FunksjoneltTestmiljø;
                const string organizationNumberPosten = "984661185";
                object proxyhost = null;
                const string proxyScheme = "https";
                var timeoutInMilliseconds = (int) TimeSpan.FromSeconds(30).TotalMilliseconds;
                const int proxyPort = 0;

                //Act
                var clientConfiguration = new Klientkonfigurasjon(environment);

                //Assert
                Assert.Equal(environment, clientConfiguration.Miljø);
                Assert.Equal(organizationNumberPosten, clientConfiguration.MeldingsformidlerOrganisasjon.Verdi);
                Assert.Equal(proxyhost, clientConfiguration.ProxyHost);
                Assert.Equal(proxyScheme, clientConfiguration.ProxyScheme);
                Assert.Equal(timeoutInMilliseconds, clientConfiguration.TimeoutIMillisekunder);
                Assert.Equal(proxyPort, clientConfiguration.ProxyPort);
                Assert.Equal(clientConfiguration.LoggForespørselOgRespons, false);
            }
            public void EnkelKonstruktørMedMiljø()
            {
                //Arrange
                var    miljø = Miljø.FunksjoneltTestmiljø;
                var    organisasjonsnummerPosten = "984661185";
                object proxyhost             = null;
                var    proxyScheme           = "https";
                var    timeoutIMillisekunder = (int)TimeSpan.FromSeconds(30).TotalMilliseconds;
                var    loggXmlTilFil         = false;
                var    proxyPort             = 0;

                //Act
                var klientkonfigurasjon = new Klientkonfigurasjon(miljø);

                //Assert
                Assert.AreEqual(miljø, klientkonfigurasjon.Miljø);
                Assert.AreEqual(organisasjonsnummerPosten, klientkonfigurasjon.MeldingsformidlerOrganisasjon.Verdi);
                Assert.AreEqual(proxyhost, klientkonfigurasjon.ProxyHost);
                Assert.AreEqual(proxyScheme, klientkonfigurasjon.ProxyScheme);
                Assert.AreEqual(timeoutIMillisekunder, klientkonfigurasjon.TimeoutIMillisekunder);
                Assert.IsNotNull(klientkonfigurasjon.Logger);
                Assert.AreEqual(loggXmlTilFil, klientkonfigurasjon.LoggXmlTilFil);
                Assert.AreEqual(proxyPort, klientkonfigurasjon.ProxyPort);
            }
        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");
        }
 internal static void Initialize(Klientkonfigurasjon konfigurasjon)
 {
     _logAction = konfigurasjon.Logger;
 }
 internal static void Initialize(Klientkonfigurasjon konfigurasjon)
 {
     _logAction = konfigurasjon.Logger;
 }
Exemplo n.º 40
0
        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);
        }
            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 (SdpSecurityException)
                {
                    /*
                        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);
                }
            }
        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);
        }
 internal RequestHelper(Klientkonfigurasjon klientkonfigurasjon, params DelegatingHandler[] additionalHandlers)
 {
     ClientConfiguration = klientkonfigurasjon;
     HttpClient          = HttpClientWithHandlerChain(additionalHandlers);
 }
 public RequestHelper(Klientkonfigurasjon klientkonfigurasjon):
     this(klientkonfigurasjon, new DelegatingHandler[0])
 {
 }
 internal RequestHelper(Klientkonfigurasjon klientkonfigurasjon, params DelegatingHandler[] additionalHandlers)
 {
     ClientConfiguration = klientkonfigurasjon;
     HttpClient = HttpClientWithHandlerChain(additionalHandlers);
 }
 private static Klientkonfigurasjon SettOppKlientkonfigurasjon()
 {
     var klientkonfigurasjon = new Klientkonfigurasjon(Miljø.FunksjoneltTestmiljø);
     //klientkonfigurasjon.LoggXmlTilFil = false;
     //klientkonfigurasjon.StandardLoggSti = @"Z:\aleksander sjafjell On My Mac\Development\Shared\sdp-data\Logg";
     return klientkonfigurasjon;
 }
 private static Klientkonfigurasjon SettOppKlientkonfigurasjon()
 {
     var klientkonfigurasjon = new Klientkonfigurasjon();
     LeggTilLogging(klientkonfigurasjon);
     klientkonfigurasjon.MeldingsformidlerUrl = new Uri("https://qaoffentlig.meldingsformidler.digipost.no/api/ebmHESTs");
     klientkonfigurasjon.LoggXmlTilFil = false;
     klientkonfigurasjon.StandardLoggSti = @"Z:\aleksander sjafjell On My Mac\Development\Shared\sdp-data\Logg";
     return klientkonfigurasjon;
 }
 private static void LeggTilLogging(Klientkonfigurasjon klientkonfigurasjon)
 {
     // Legger til logging til outputvinduet
     klientkonfigurasjon.Logger = (severity, konversasjonsId, metode, melding) =>
     {
         Debug.WriteLine("{0} - {1} [{2}]", DateTime.Now, melding, konversasjonsId.GetValueOrDefault());
     };
 }
 public RequestHelper(Klientkonfigurasjon klientkonfigurasjon) :
     this(klientkonfigurasjon, new DelegatingHandler[0])
 {
 }
Exemplo n.º 50
0
 public LoggingHandler(Klientkonfigurasjon klientkonfigurasjon, ILoggerFactory loggerFactory)
 {
     _logger             = loggerFactory.CreateLogger <SikkerDigitalPostKlient>();
     Klientkonfigurasjon = klientkonfigurasjon;
 }
            public void SendsBytesThroughDocumentBundleProcessors()
            {
                //Arrange
                var clientConfiguration = new Klientkonfigurasjon(Miljø.FunksjoneltTestmiljø)
                {
                    Dokumentpakkeprosessorer = new List<IDokumentpakkeProsessor>
                    {
                        new SimpleDocumentBundleProcessor(),
                        new SimpleDocumentBundleProcessor()
                    }
                };

                var forsendelse = DomainUtility.GetForsendelseSimple();
                var asiceAttachableProcessors = clientConfiguration.Dokumentpakkeprosessorer.Select(p => new AsiceAttachableProcessor(forsendelse, p));
                var asiceAttachables = new IAsiceAttachable[] {DomainUtility.GetHoveddokumentSimple()};

                //Act
                var asiceArchive = new AsiceArchive(DomainUtility.GetMottakerCertificate(), new GuidUtility(), asiceAttachableProcessors, asiceAttachables);
                var bytes = asiceArchive.Bytes;

                //Assert
                foreach (var simpleProcessor in clientConfiguration.Dokumentpakkeprosessorer.Cast<SimpleDocumentBundleProcessor>())
                {
                    Assert.True(simpleProcessor.StreamLength > 1000);
                    Assert.True(simpleProcessor.CouldReadBytesStream);
                    Assert.Equal(0, simpleProcessor.Initialposition);
                }
            }