From 5ea225999d8faedfd02fa04d4bc7a55df17be4df Mon Sep 17 00:00:00 2001
From: Youn <yct@kereval.com>
Date: Wed, 2 Sep 2020 16:19:04 +0200
Subject: [PATCH] IUAINFRA-47 add javadoc + TU

---
 .../application/DummyAuthzServerSoapui.java   | 42 +++++++++++--------
 .../DummyAuthzServerSoapuiTest.java           | 32 +++++++-------
 2 files changed, 41 insertions(+), 33 deletions(-)

diff --git a/access-token-provider-api/src/main/java/net/ihe/gazelle/app/accesstokenproviderapi/application/DummyAuthzServerSoapui.java b/access-token-provider-api/src/main/java/net/ihe/gazelle/app/accesstokenproviderapi/application/DummyAuthzServerSoapui.java
index 08a9530..4f9c7f5 100644
--- a/access-token-provider-api/src/main/java/net/ihe/gazelle/app/accesstokenproviderapi/application/DummyAuthzServerSoapui.java
+++ b/access-token-provider-api/src/main/java/net/ihe/gazelle/app/accesstokenproviderapi/application/DummyAuthzServerSoapui.java
@@ -4,6 +4,7 @@ import net.ihe.gazelle.app.accesstokenproviderapi.business.AccessTokenRequest;
 import net.ihe.gazelle.app.accesstokenproviderapi.business.SymmetricSignature;
 import net.ihe.gazelle.app.audienceretriever.adapter.AudienceSecretRetrieverForSoapui;
 import net.ihe.gazelle.app.audienceretriever.adapter.AudienceSecretRetrieverImpl;
+import net.ihe.gazelle.app.audienceretriever.application.AudienceSecretRetriever;
 import net.ihe.gazelle.modelapi.sb.business.EncodingException;
 import net.ihe.gazelle.sb.iua.business.TokenType;
 
@@ -14,40 +15,45 @@ import java.time.Duration;
  */
 public class DummyAuthzServerSoapui implements DummyAuthzServer {
 
+
     private static final String ALGORITHM = "HS256";
     private static final String ISSUER = "https://ehealthsuisse.ihe-europe.net/access-token-provider";
     private static final TokenType TOKEN_TYPE = TokenType.JWT;
     private static final Duration DURATION = Duration.ofHours(1);
-
+    private AudienceSecretRetriever audienceSecretRetriever;
 
     /**
-     * {@inheritDoc}
+     * Default constructor for the class.
      */
-    @Override
-    public byte[] getAccessToken(String userId, String audienceId, String purposeOfUse, String resourceId) {
-        //todo purposeOfUse and resourceId are not yet implemented
-
-        TokenGenerator tokenGenerator = new TokenGenerator();
-        tokenGenerator.setAudienceSecretRetriever(new AudienceSecretRetrieverForSoapui());
+    public DummyAuthzServerSoapui() {
+        //Empty
+    }
 
-        return getTokenGenerator(userId, audienceId, tokenGenerator);
+    /**
+     *  Constructor with the path for the class.
+     */
+    public DummyAuthzServerSoapui(String path) {
+        audienceSecretRetriever = new AudienceSecretRetrieverForSoapui(path);
     }
 
     /**
-     * get the access token with a properties files provide
+     * Setter for the audienceSecretRetriever property.
      *
-     * @param userId             String element
-     * @param audienceId         String element
-     * @param purposeOfUse       String element
-     * @param resourceId         String element
-     * @param propertiesFilePath String element
-     * @return the token as byte
+     * @param audienceSecretRetriever value to set to the property.
      */
-    public byte[] getAccessToken(String userId, String audienceId, String purposeOfUse, String resourceId, String propertiesFilePath) {
+    public void setAudienceSecretRetriever(AudienceSecretRetriever audienceSecretRetriever) {
+        this.audienceSecretRetriever = audienceSecretRetriever;
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public byte[] getAccessToken(String userId, String audienceId, String purposeOfUse, String resourceId) {
         //todo purposeOfUse and resourceId are not yet implemented
 
         TokenGenerator tokenGenerator = new TokenGenerator();
-        tokenGenerator.setAudienceSecretRetriever(new AudienceSecretRetrieverForSoapui(propertiesFilePath));
+        tokenGenerator.setAudienceSecretRetriever(this.audienceSecretRetriever);
 
         return getTokenGenerator(userId, audienceId, tokenGenerator);
     }
diff --git a/access-token-provider-api/src/test/java/net/ihe/gazelle/app/accesstokenproviderapi/application/DummyAuthzServerSoapuiTest.java b/access-token-provider-api/src/test/java/net/ihe/gazelle/app/accesstokenproviderapi/application/DummyAuthzServerSoapuiTest.java
index 7be357b..327db81 100644
--- a/access-token-provider-api/src/test/java/net/ihe/gazelle/app/accesstokenproviderapi/application/DummyAuthzServerSoapuiTest.java
+++ b/access-token-provider-api/src/test/java/net/ihe/gazelle/app/accesstokenproviderapi/application/DummyAuthzServerSoapuiTest.java
@@ -1,8 +1,14 @@
 package net.ihe.gazelle.app.accesstokenproviderapi.application;
 
+import net.ihe.gazelle.app.audienceretriever.adapter.AudienceSecretRetrieverForSoapui;
+import net.ihe.gazelle.app.audienceretriever.application.AudienceSecretRetriever;
 import org.junit.jupiter.api.Test;
+import org.junit.runner.RunWith;
+
+import java.io.FileNotFoundException;
 import java.util.logging.Logger;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
+
+import static org.junit.jupiter.api.Assertions.*;
 
 class DummyAuthzServerSoapuiTest {
 
@@ -14,21 +20,21 @@ class DummyAuthzServerSoapuiTest {
      */
     @Test
     public void getAccessTokenWithPathAudienceTest() {
-        DummyAuthzServerSoapui dummyAuthzServer = new DummyAuthzServerSoapui();
-        assertNotNull(dummyAuthzServer.getAccessToken(SUBJECT, AUDIENCE, null, null, "src/test/resources/audience.properties"));
+        DummyAuthzServerSoapui dummyAuthzServer = new DummyAuthzServerSoapui("src/test/resources/audience.properties");
+        dummyAuthzServer.setAudienceSecretRetriever((String audience) -> "secret");
+
+        assertNotNull(dummyAuthzServer.getAccessToken(SUBJECT, AUDIENCE, null, null));
     }
 
     /**
      * get access token without an Audience path defined (we keep the default Audience path in this case)
      */
     @Test
-    public void getAccessTokenWithoutPathAudienceTest() {
+    public void getAccessTokenWithDefaultPathAudienceTest() {
         DummyAuthzServerSoapui dummyAuthzServer = new DummyAuthzServerSoapui();
-        try {
-            dummyAuthzServer.getAccessToken(SUBJECT, AUDIENCE, null, null);
-        } catch (Exception e) {
-            Logger.getLogger("FileNotFoundException: /opt/simulators/audience.properties");
-        }
+        dummyAuthzServer.setAudienceSecretRetriever((String audience) -> "secret");
+
+        assertNotNull(dummyAuthzServer.getAccessToken(SUBJECT, AUDIENCE, null, null));
     }
 
     /**
@@ -36,11 +42,7 @@ class DummyAuthzServerSoapuiTest {
      */
     @Test
     public void getAccessTokenWithBadPathAudienceTest() {
-        DummyAuthzServerSoapui dummyAuthzServer = new DummyAuthzServerSoapui();
-        try {
-            dummyAuthzServer.getAccessToken(SUBJECT, AUDIENCE, null, null, "test.properties");
-        } catch (Exception e) {
-            Logger.getLogger("FileNotFoundException: test.properties");
-        }
+        DummyAuthzServerSoapui dummyAuthzServer = new DummyAuthzServerSoapui("test.properties");
+        assertNull(dummyAuthzServer.getAccessToken(SUBJECT, AUDIENCE, null, null));
     }
 }
-- 
GitLab