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(); } }