no.difi.sdp.client.SikkerDigitalPostKlientIntegrationTest.java Source code

Java tutorial

Introduction

Here is the source code for no.difi.sdp.client.SikkerDigitalPostKlientIntegrationTest.java

Source

/**
 * Copyright (C) Posten Norge AS
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *         http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package no.difi.sdp.client;

import no.difi.sdp.client.domain.Forsendelse;
import no.difi.sdp.client.domain.Noekkelpar;
import no.difi.sdp.client.domain.Prioritet;
import no.difi.sdp.client.domain.TekniskAvsender;
import no.difi.sdp.client.domain.kvittering.AapningsKvittering;
import no.difi.sdp.client.domain.kvittering.ForretningsKvittering;
import no.difi.sdp.client.domain.kvittering.KvitteringForespoersel;
import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;
import org.springframework.core.io.ClassPathResource;

import java.security.KeyStore;
import java.util.concurrent.TimeUnit;

import static no.difi.sdp.client.ObjectMother.createEbmsAapningsKvittering;
import static no.difi.sdp.client.ObjectMother.forsendelse;
import static org.fest.assertions.api.Assertions.assertThat;

public class SikkerDigitalPostKlientIntegrationTest {

    private SikkerDigitalPostKlient postklient;

    private Noekkelpar avsenderNoekkelpar() {
        try {
            String alias = "meldingsformidler";
            String passphrase = "abcd1234";
            String keyStoreFile = "/keystore.jce";

            KeyStore keyStore = KeyStore.getInstance("JCEKS");
            keyStore.load(new ClassPathResource(keyStoreFile).getInputStream(), passphrase.toCharArray());
            return Noekkelpar.fraKeyStore(keyStore, alias, passphrase);
        } catch (Exception e) {
            throw new RuntimeException("Kunne ikke laste nkkelpar for kjring av tester. "
                    + "For  kjre integrasjonstester m det ligge inne et gyldig virksomhetssertifikat for test (med tilhrende certificate chain). "
                    + "Keystore med tilhrende alias og passphrase settes i " + this.getClass().getSimpleName()
                    + ".", e);
        }
    }

    @Before
    public void setUp() {
        KlientKonfigurasjon klientKonfigurasjon = KlientKonfigurasjon.builder()
                .meldingsformidlerRoot("https://qaoffentlig.meldingsformidler.digipost.no/api/ebms")
                .connectionTimeout(20, TimeUnit.SECONDS).build();

        TekniskAvsender avsender = ObjectMother.tekniskAvsenderMedSertifikat(avsenderNoekkelpar());

        postklient = new SikkerDigitalPostKlient(avsender, klientKonfigurasjon);
    }

    @Test
    @Ignore
    public void send_digital_forsendelse() {
        Forsendelse forsendelse = forsendelse();

        postklient.send(forsendelse);
    }

    @Test
    @Ignore
    public void test_hent_kvittering() {
        KvitteringForespoersel kvitteringForespoersel = KvitteringForespoersel.builder(Prioritet.NORMAL).build();

        for (int i = 0; i < 10; i++) {
            ForretningsKvittering forretningsKvittering = postklient.hentKvittering(kvitteringForespoersel);

            if (forretningsKvittering != null) {
                System.out.println("Kvittering!");
                System.out.println(String.format("%s: %s, %s, %s, %s",
                        forretningsKvittering.getClass().getSimpleName(),
                        forretningsKvittering.getKonversasjonsId(), forretningsKvittering.getRefToMessageId(),
                        forretningsKvittering.getTidspunkt(), forretningsKvittering));
                assertThat(forretningsKvittering.getKonversasjonsId()).isNotEmpty();
                assertThat(forretningsKvittering.getRefToMessageId()).isNotEmpty();
                assertThat(forretningsKvittering.getTidspunkt()).isNotNull();
            } else {
                System.out.println("Ingen kvittering");
                break;
            }
        }
    }

    @Test
    @Ignore
    public void test_hent_kvittering_og_bekreft_forrige() {
        KvitteringForespoersel kvitteringForespoersel = KvitteringForespoersel.builder(Prioritet.NORMAL).build();
        ForretningsKvittering forrigeKvittering = new AapningsKvittering(createEbmsAapningsKvittering());

        ForretningsKvittering forretningsKvittering = postklient
                .hentKvitteringOgBekreftForrige(kvitteringForespoersel, forrigeKvittering);
        if (forretningsKvittering != null) {
            assertThat(forretningsKvittering.getKonversasjonsId()).isNotEmpty();
            assertThat(forretningsKvittering.getMessageId()).isNotEmpty();
            assertThat(forretningsKvittering.getRefToMessageId()).isNotEmpty();
            assertThat(forretningsKvittering.getTidspunkt()).isNotNull();
        }
    }

    @Test
    @Ignore
    public void test_bekreft_kvittering() {
        ForretningsKvittering forrigeKvittering = new AapningsKvittering(createEbmsAapningsKvittering());
        postklient.bekreft(forrigeKvittering);
    }

}