diff options
| author | Christof Rabensteiner <christof.rabensteiner@iaik.tugraz.at> | 2019-05-14 13:18:55 +0200 | 
|---|---|---|
| committer | Christof Rabensteiner <christof.rabensteiner@iaik.tugraz.at> | 2019-05-14 13:18:55 +0200 | 
| commit | 870439300e7596d6833644ec9e6d1f38a1e0b6b5 (patch) | |
| tree | 86ee96f87f3b691f1cbbbfba02b29d329c50b843 /src/test/java/at/gv/egiz | |
| parent | f4af4f437ff79cb6e2a35fdfe87e8d952a70b685 (diff) | |
| download | moa-zs-870439300e7596d6833644ec9e6d1f38a1e0b6b5.tar.gz moa-zs-870439300e7596d6833644ec9e6d1f38a1e0b6b5.tar.bz2 moa-zs-870439300e7596d6833644ec9e6d1f38a1e0b6b5.zip | |
Implement Per-Field-Overriding of Configuration in Augmenter
- Rewrite DeliveryRequestAugmenter to allow per-field-overriding of
  configuration parameters and add test suite.
- Mzs schema change: Move DeliveryRequest/Server into
  DeliveryRequest/Config; Reason: DeliveryRequest/Config contains all
  parameters exclusively needed by moazs to execute the delivery
  request. The msg's server url belongs to this set of parameters.
- WIP: Add prototype implementation of MsgClient and move MsgClient to
  dedicated package.
- Refactor: move TnvzClient to dedicated package.
Diffstat (limited to 'src/test/java/at/gv/egiz')
| -rw-r--r-- | src/test/java/at/gv/egiz/moazs/DeliveryRequestAugmenterTest.java | 80 | ||||
| -rw-r--r-- | src/test/java/at/gv/egiz/moazs/SameThreadDeliveryPipelineTest.java | 3 | 
2 files changed, 82 insertions, 1 deletions
| diff --git a/src/test/java/at/gv/egiz/moazs/DeliveryRequestAugmenterTest.java b/src/test/java/at/gv/egiz/moazs/DeliveryRequestAugmenterTest.java new file mode 100644 index 0000000..a98da74 --- /dev/null +++ b/src/test/java/at/gv/egiz/moazs/DeliveryRequestAugmenterTest.java @@ -0,0 +1,80 @@ +package at.gv.egiz.moazs; + +import at.gv.zustellung.app2mzs.xsd.ConfigType; +import at.gv.zustellung.app2mzs.xsd.DeliveryRequestType; +import org.junit.Test; + +import static at.gv.zustellung.app2mzs.xsd.ConfigType.configTypeBuilder; +import static at.gv.zustellung.app2mzs.xsd.DeliveryRequestType.deliveryRequestTypeBuilder; +import static at.gv.zustellung.app2mzs.xsd.ServerType.serverTypeBuilder; +import static org.assertj.core.api.Assertions.assertThat; + +public class DeliveryRequestAugmenterTest { + +    private final String msgUrl = "http://mzs"; + +    @Test +    public void augmentPrimaryWithoutConfig() { +        var fallback = createConfig(msgUrl, false); +        var augmenter = new DeliveryRequestAugmenter(fallback); + +        var actual = augmenter.augment(createRequest(null)).getConfig(); + +        assertThat(actual).isEqualToComparingFieldByFieldRecursively(fallback); +    } + +    @Test +    public void augmentPrimaryWithEmptyConfig() { +        var fallback = createConfig(msgUrl, false); +        var augmenter = new DeliveryRequestAugmenter(fallback); +        var primary = createConfig(null, null); + +        var actual = augmenter.augment(createRequest(primary)).getConfig(); + +        assertThat(actual).isEqualToComparingFieldByFieldRecursively(fallback); +    } + +    @Test +    public void overrideFallbacksUrlWithPrimary() { +        var fallback = createConfig("http://fallback.url", false); +        var primary  = createConfig("http://primary.url",  null); +        var augmenter = new DeliveryRequestAugmenter(fallback); + +        var actual = augmenter.augment(createRequest(primary)).getConfig(); + +        var expected = createConfig("http://primary.url", false); +        assertThat(actual).isEqualToComparingFieldByFieldRecursively(expected); +    } + +    @Test +    public void overrideFallbacksTvnzQueryWithPrimary() { +        var fallback = createConfig(msgUrl, false); +        var primary  = createConfig(null,  true); +        var augmenter = new DeliveryRequestAugmenter(fallback); + +        var actual = augmenter.augment(createRequest(primary)).getConfig(); + +        var expected = createConfig(msgUrl, true); +        assertThat(actual).isEqualToComparingFieldByFieldRecursively(expected); +    } + +    private ConfigType createConfig(String url, Boolean performTnvz) { + +        var server = serverTypeBuilder() +                .withZUSEUrlID(url) +                .build(); + +        return configTypeBuilder() +                .withServer(server) +                .withPerformQueryPersonRequest(performTnvz) +                .build(); +    } + +    private DeliveryRequestType createRequest(ConfigType config) { + +        return deliveryRequestTypeBuilder() +                .withConfig(config) +                .build(); +    } + +} diff --git a/src/test/java/at/gv/egiz/moazs/SameThreadDeliveryPipelineTest.java b/src/test/java/at/gv/egiz/moazs/SameThreadDeliveryPipelineTest.java index f394a63..9ee3ceb 100644 --- a/src/test/java/at/gv/egiz/moazs/SameThreadDeliveryPipelineTest.java +++ b/src/test/java/at/gv/egiz/moazs/SameThreadDeliveryPipelineTest.java @@ -1,5 +1,6 @@  package at.gv.egiz.moazs; +import at.gv.egiz.moazs.msg.MsgClient;  import at.gv.egiz.moazs.pipeline.DeliveryPipeline;  import at.gv.egiz.moazs.pipeline.SameThreadDeliveryPipeline;  import at.gv.egiz.moazs.repository.DeliveryRepository; @@ -128,7 +129,7 @@ public class SameThreadDeliveryPipelineTest {          when(tnvzClient.queryPerson(any(), any())).thenReturn(setupTnvzSuccess(acceptedTypes));          when(converter.convert(eq(mzsRequest)       )).thenReturn(msgRequest);          when(converter.convert(eq(mzsRequest), any())).thenReturn(msgRequest); -        when(msgClient.send(msgRequest)).thenReturn(status); +        when(msgClient.send(msgRequest, mzsRequest.getConfig())).thenReturn(status);          return status; | 
