From 847e3f5b52a7adc6baa463258087e562049ee89b Mon Sep 17 00:00:00 2001
From: Thomas <>
Date: Fri, 1 Jul 2022 14:27:19 +0200
Subject: feat(matching): add configuration property to disable
'matching-by-address-search'
---
.../tasks/GenerateOtherLoginMethodGuiTaskTest.java | 30 ++++++++++++++-------
...ReceiveOtherLoginMethodGuiResponseTaskTest.java | 31 ++++++++++++++++++++++
2 files changed, 52 insertions(+), 9 deletions(-)
(limited to 'modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas')
diff --git a/modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/tasks/GenerateOtherLoginMethodGuiTaskTest.java b/modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/tasks/GenerateOtherLoginMethodGuiTaskTest.java
index 496158fa..6d08a731 100644
--- a/modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/tasks/GenerateOtherLoginMethodGuiTaskTest.java
+++ b/modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/tasks/GenerateOtherLoginMethodGuiTaskTest.java
@@ -29,6 +29,7 @@ import org.springframework.web.context.request.ServletRequestAttributes;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.json.JsonMapper;
+import at.asitplus.eidas.specific.core.test.config.dummy.MsConnectorDummyConfigMap;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.Constants;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.dao.SelectedLoginMethod;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.tasks.GenerateOtherLoginMethodGuiTask;
@@ -53,6 +54,8 @@ public class GenerateOtherLoginMethodGuiTaskTest {
private static final String TEST_PATTER_REQ_PARAM =
"";
+ @Autowired MsConnectorDummyConfigMap config;
+
@Autowired
GenerateOtherLoginMethodGuiTask task;
@@ -86,6 +89,9 @@ public class GenerateOtherLoginMethodGuiTaskTest {
executionContext = new ExecutionContextImpl();
+ config.putConfigValue("auth.eIDAS.matching.byaddress.enable", "false");
+
+
LocaleContextHolder.resetLocaleContext();
}
@@ -172,6 +178,10 @@ public class GenerateOtherLoginMethodGuiTaskTest {
assertNotNull("createNewErnpEntry", json.get(Constants.HTML_FORM_CREATE_NEW_ERNP_ENTRY));
assertFalse("createNewErnpEntry", json.get(Constants.HTML_FORM_CREATE_NEW_ERNP_ENTRY).asBoolean());
+ assertNotNull("enableMatchingByAddressSearch", json.get(Constants.HTML_FORM_CREATE_NEW_ERNP_ENTRY));
+ assertFalse("enableMatchingByAddressSearch", json.get(Constants.HTML_FORM_CREATE_NEW_ERNP_ENTRY).asBoolean());
+
+
assertNotNull("pendingRequest not stored",
storage.getPendingRequest(pendingReq.getPendingRequestId()));
@@ -199,10 +209,11 @@ public class GenerateOtherLoginMethodGuiTaskTest {
@Test
public void advancedMatchingFailedMsg() throws TaskExecutionException, UnsupportedEncodingException {
executionContext.put(Constants.CONTEXT_FLAG_ADVANCED_MATCHING_FAILED, true);
-
+ config.putConfigValue("auth.eIDAS.matching.byaddress.enable", "true");
+
task.execute(pendingReq, executionContext);
- String html = doBasicValidation();
+ String html = doBasicValidation(true);
Assert.assertFalse("Missing eIDAS infos",
html.contains(MessageFormat.format(TEST_PATTER_REQ_PARAM, SelectedLoginMethod.ADD_ME_AS_NEW)));
Assert.assertTrue("missing errorfield",
@@ -218,7 +229,7 @@ public class GenerateOtherLoginMethodGuiTaskTest {
task.execute(pendingReq, executionContext);
- String html = doBasicValidation();
+ String html = doBasicValidation(false);
Assert.assertTrue("missing errorfield",
html.contains("
task.execute(pendingReq, executionContext));
+
+ assertEquals("wrong errorCode", "module.eidasauth.matching.98",
+ ((EaafException) error.getOriginalException()).getErrorId());
+
+ }
+
@Test
public void withAddMeAsNewSelection() throws TaskExecutionException {
testTransition(SelectedLoginMethod.ADD_ME_AS_NEW, Constants.TRANSITION_TO_CREATE_NEW_ERNP_ENTRY_TASK);
@@ -99,6 +120,14 @@ public class ReceiveOtherLoginMethodGuiResponseTaskTest {
}
+ @Test
+ public void withRequestingNewEntrySelection() throws TaskExecutionException {
+ testTransition(SelectedLoginMethod.REQUESTING_NEW_ENTRY, Constants.TRANSITION_TO_REQUESTING_NEW_ERNP_ENTRY_TASK);
+ assertEquals("return to selection", true, executionContext.get(Constants.TRANSITION_TO_REQUESTING_NEW_ERNP_ENTRY_TASK));
+ assertEquals("return to selection", false, executionContext.get(Constants.TRANSITION_TO_GENERATE_OTHER_LOGIN_METHOD_GUI_TASK));
+
+ }
+
public void testTransition(SelectedLoginMethod loginMethod, String expectedTransition) throws TaskExecutionException {
httpReq.setParameter(Constants.REQ_SELECTED_LOGIN_METHOD_PARAMETER, loginMethod.name());
executionContext.put(Constants.CONTEXT_FLAG_ADVANCED_MATCHING_FAILED, true);
@@ -109,6 +138,8 @@ public class ReceiveOtherLoginMethodGuiResponseTaskTest {
assertFalse("wrong process-cancelled flag", executionContext.isProcessCancelled());
assertNotNull("no login-selection found", executionContext.get(Constants.REQ_SELECTED_LOGIN_METHOD_PARAMETER));
assertEquals("Wrong login-selection found", loginMethod.name(), executionContext.get(Constants.REQ_SELECTED_LOGIN_METHOD_PARAMETER));
+
+
assertEquals("Next task", true, executionContext.get(expectedTransition));
assertNull("find advancedMatchingError flag", executionContext.get(Constants.CONTEXT_FLAG_ADVANCED_MATCHING_FAILED));
--
cgit v1.2.3
From 8bb5373a38f43d83c041ec0739459e38eb7cc3e2 Mon Sep 17 00:00:00 2001
From: Thomas <>
Date: Fri, 1 Jul 2022 14:48:10 +0200
Subject: feat(matching): optimize order of address search results
---
.../v2/test/utils/AddressSearchResultTest.java | 55 ++++++++++++++++++++++
1 file changed, 55 insertions(+)
create mode 100644 modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/utils/AddressSearchResultTest.java
(limited to 'modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas')
diff --git a/modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/utils/AddressSearchResultTest.java b/modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/utils/AddressSearchResultTest.java
new file mode 100644
index 00000000..89692ab7
--- /dev/null
+++ b/modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/utils/AddressSearchResultTest.java
@@ -0,0 +1,55 @@
+package at.asitplus.eidas.specific.modules.auth.eidas.v2.test.utils;
+
+import static org.junit.Assert.assertArrayEquals;
+
+import java.util.List;
+import java.util.Set;
+import java.util.stream.Collectors;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.BlockJUnit4ClassRunner;
+import org.mockito.internal.util.collections.Sets;
+
+import at.asitplus.eidas.specific.modules.auth.eidas.v2.controller.AdresssucheController.AdresssucheOutput;
+
+@RunWith(BlockJUnit4ClassRunner.class)
+public class AddressSearchResultTest {
+
+ @Test
+ public void checkNumbers() {
+
+ Set
result = Sets.newSet(
+ buildRandom("2"),
+ buildRandom("3"),
+ buildRandom("1"),
+ buildRandom("10"),
+ buildRandom("10-12"),
+ buildRandom("15")
+ );
+
+ final List sorted = result.stream().sorted().limit(30)
+ .map(el -> el.getNumber())
+ .collect(Collectors.toList());
+
+
+ assertArrayEquals("wrong order",
+ new Object[]{"1", "2", "3", "10", "15", "10-12"},
+ sorted.toArray());
+
+
+
+
+ }
+
+ private AdresssucheOutput buildRandom(String number) {
+ return AdresssucheOutput.builder()
+ .municipality("aaaaaaaa")
+ .postleitzahl("8080")
+ .street("bbbbb")
+ .number(number)
+ .village("cccccc")
+ .build();
+ }
+
+}
--
cgit v1.2.3
From 62bea15ec763f09f2a8df1ba4266804b4e8641c3 Mon Sep 17 00:00:00 2001
From: Thomas <>
Date: Fri, 1 Jul 2022 15:58:16 +0200
Subject: fix(matching): add null-check in custom comperator for address-search
results
---
.../modules/auth/eidas/v2/test/utils/AddressSearchResultTest.java | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
(limited to 'modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas')
diff --git a/modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/utils/AddressSearchResultTest.java b/modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/utils/AddressSearchResultTest.java
index 89692ab7..fef157db 100644
--- a/modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/utils/AddressSearchResultTest.java
+++ b/modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/utils/AddressSearchResultTest.java
@@ -24,6 +24,7 @@ public class AddressSearchResultTest {
buildRandom("3"),
buildRandom("1"),
buildRandom("10"),
+ buildRandom(null),
buildRandom("10-12"),
buildRandom("15")
);
@@ -34,7 +35,7 @@ public class AddressSearchResultTest {
assertArrayEquals("wrong order",
- new Object[]{"1", "2", "3", "10", "15", "10-12"},
+ new Object[]{null, "1", "2", "3", "10", "15", "10-12"},
sorted.toArray());
--
cgit v1.2.3
From e3afbc7442ad3893e7615d50747c03f600eb1a1b Mon Sep 17 00:00:00 2001
From: Thomas <>
Date: Fri, 1 Jul 2022 16:41:00 +0200
Subject: feat(core): update statistic-logger to include matching results
---
.../tasks/ReceiveOtherLoginMethodGuiResponseTaskTest.java | 11 +++++++++++
1 file changed, 11 insertions(+)
(limited to 'modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas')
diff --git a/modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/tasks/ReceiveOtherLoginMethodGuiResponseTaskTest.java b/modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/tasks/ReceiveOtherLoginMethodGuiResponseTaskTest.java
index af7bf0bf..66867fce 100644
--- a/modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/tasks/ReceiveOtherLoginMethodGuiResponseTaskTest.java
+++ b/modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/tasks/ReceiveOtherLoginMethodGuiResponseTaskTest.java
@@ -5,6 +5,7 @@ import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertThrows;
+import static org.junit.Assert.assertTrue;
import org.apache.commons.lang3.RandomStringUtils;
import org.junit.Before;
@@ -78,6 +79,16 @@ public class ReceiveOtherLoginMethodGuiResponseTaskTest {
LocaleContextHolder.resetLocaleContext();
}
+ @Test
+ public void withStopMatchingSelection() throws TaskExecutionException {
+httpReq.setParameter(Constants.REQ_SELECTED_LOGIN_METHOD_PARAMETER, SelectedLoginMethod.STOP_MATCHING_PROCESS.name());
+
+ task.execute(pendingReq, executionContext);
+
+ assertTrue("stoppedByUser", pendingReq.isAbortedByUser());
+
+ }
+
@Test
public void withMobileSignatureSelection() throws TaskExecutionException {
testTransition(SelectedLoginMethod.MOBILE_PHONE_SIGNATURE_LOGIN, Constants.TRANSITION_TO_GENERATE_MOBILE_PHONE_SIGNATURE_REQUEST_TASK);
--
cgit v1.2.3