From f98e8ca69737a6d2224a6713bd64e3bc8a31b81c Mon Sep 17 00:00:00 2001
From: aalekhj <aaljain@microsoft.com>
Date: Thu, 24 Sep 2020 18:15:31 +0530
Subject: [PATCH] Added constructor and refactored `whoami` method for
 performing Unit Testing in `WhoamiController.java`

---
 .../legal/azure/security/WhoamiController.java  | 17 ++++++++++++++++-
 .../azure/security/WhoamiControllerTest.java    |  2 ++
 2 files changed, 18 insertions(+), 1 deletion(-)
 create mode 100644 provider/legal-azure/src/test/java/org/opengroup/osdu/legal/azure/security/WhoamiControllerTest.java

diff --git a/provider/legal-azure/src/main/java/org/opengroup/osdu/legal/azure/security/WhoamiController.java b/provider/legal-azure/src/main/java/org/opengroup/osdu/legal/azure/security/WhoamiController.java
index 5a538259e..e04342872 100644
--- a/provider/legal-azure/src/main/java/org/opengroup/osdu/legal/azure/security/WhoamiController.java
+++ b/provider/legal-azure/src/main/java/org/opengroup/osdu/legal/azure/security/WhoamiController.java
@@ -15,6 +15,7 @@
 package org.opengroup.osdu.legal.azure.security;
 
 import org.springframework.security.core.Authentication;
+import org.springframework.security.core.context.SecurityContext;
 import org.springframework.security.core.context.SecurityContextHolder;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -22,10 +23,24 @@ import org.springframework.web.bind.annotation.ResponseBody;
 
 @Controller
 public class WhoamiController {
+
+    private SecurityContext securityContext;
+
+    // Constructor made for unit testing
+    public WhoamiController(SecurityContext securityContext) {
+        this.securityContext = securityContext;
+    }
+
+    public WhoamiController() {
+    }
+
     @RequestMapping(value = "/whoami")
     @ResponseBody
     public String whoami() {
-        final Authentication auth = SecurityContextHolder.getContext().getAuthentication();
+        // Added for unit testing
+        if (securityContext == null)
+            securityContext = SecurityContextHolder.getContext();
+        final Authentication auth = securityContext.getAuthentication();
 
         String userName = auth.getName();
         String roles = String.valueOf(auth.getAuthorities());
diff --git a/provider/legal-azure/src/test/java/org/opengroup/osdu/legal/azure/security/WhoamiControllerTest.java b/provider/legal-azure/src/test/java/org/opengroup/osdu/legal/azure/security/WhoamiControllerTest.java
new file mode 100644
index 000000000..6a8df1c3f
--- /dev/null
+++ b/provider/legal-azure/src/test/java/org/opengroup/osdu/legal/azure/security/WhoamiControllerTest.java
@@ -0,0 +1,2 @@
+package org.opengroup.osdu.legal.azure.security;public class WhoamiControllerTest {
+}
-- 
GitLab