diff --git a/.circleci/config.yml b/.circleci/config.yml index 1ed93a10f7caef073bc204abada84940069fa0b9..67e3ef072e0ba5c4c56a4761eaff68ca5ac0378e 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -14,7 +14,7 @@ jobs: paths: ~/.m2 - run: name: Analyze on SonarCloud - command: mvn verify -DskipTests sonar:sonar -Dsonar.projectKey=project-sunbird_sunbird-lms-service -Dsonar.organization=project-sunbird -Dsonar.host.url=https://sonarcloud.io -Dsonar.coverage.exclusions=**/cassandra-utils/**,**/es-utils/**,**/models/**,**/model/**,**/bean/**,**/dto/**,**/client/**,**/bulkupload/**,**/error/**,**/util/search/** -Dsonar.coverage.jacoco.xmlReportPaths=/home/circleci/project/reports/target/jacoco/jacoco.xml + command: mvn verify -DskipTests sonar:sonar -Dsonar.projectKey=project-sunbird_sunbird-lms-service -Dsonar.organization=project-sunbird -Dsonar.host.url=https://sonarcloud.io -Dsonar.coverage.exclusions=**/cassandra-utils/**,**/es-utils/**,**/models/**,**/model/**,**/bean/**,**/dto/**,**/client/**,**/bulkupload/**,**/error/**,**/exception/**,**/util/search/** -Dsonar.coverage.jacoco.xmlReportPaths=/home/circleci/project/reports/target/jacoco/jacoco.xml workflows: version: 2.1 diff --git a/controller/app/controllers/BaseController.java b/controller/app/controllers/BaseController.java index 9a5339b19fe568b875616d4b8fd49098cf4fdf83..814f52eaccd7d6e251364a8479f5ab4b3df2e92c 100644 --- a/controller/app/controllers/BaseController.java +++ b/controller/app/controllers/BaseController.java @@ -452,20 +452,26 @@ public class BaseController extends Controller { } } - if (request.path() != null && request.path().startsWith("/v1/otp/verify")) { - if ("otpVerificationFailed".equalsIgnoreCase(exception.getResponseCode().name())) { - response.getParams().setErr("OTP_VERIFICATION_FAILED"); - response.getParams().setStatus("OTP_VERIFICATION_FAILED"); - } + if (request.path() != null + && request.path().startsWith("/v1/otp/verify") + && ("otpVerificationFailed".equalsIgnoreCase(exception.getResponseCode().name()))) { + response.getParams().setErr("OTP_VERIFICATION_FAILED"); + response.getParams().setStatus("OTP_VERIFICATION_FAILED"); } if (request.path() != null && (request.path().startsWith("/v1/manageduser/create") - || request.path().startsWith("/v4/user/create"))) { - if ("managedUserLimitExceeded".equalsIgnoreCase(exception.getResponseCode().name())) { - response.getParams().setErr("MANAGED_USER_LIMIT_EXCEEDED"); - response.getParams().setStatus("MANAGED_USER_LIMIT_EXCEEDED"); - } + || request.path().startsWith("/v4/user/create")) + && ("managedUserLimitExceeded".equalsIgnoreCase(exception.getResponseCode().name()))) { + response.getParams().setErr("MANAGED_USER_LIMIT_EXCEEDED"); + response.getParams().setStatus("MANAGED_USER_LIMIT_EXCEEDED"); + } + + if (request.path() != null + && (request.path().startsWith("/v1/user/consent/read")) + && ("resourceNotFound".equalsIgnoreCase(exception.getResponseCode().name()))) { + response.getParams().setErr("USER_CONSENT_NOT_FOUND"); + response.getParams().setStatus("USER_CONSENT_NOT_FOUND"); } } diff --git a/core/platform-common/src/main/java/org/sunbird/exception/ResponseCode.java b/core/platform-common/src/main/java/org/sunbird/exception/ResponseCode.java index 5fc7e0cab005e0a314c4e94944808d903ea50c6b..78e6de07cc74922a5e94d3bbb33628159301ef5c 100644 --- a/core/platform-common/src/main/java/org/sunbird/exception/ResponseCode.java +++ b/core/platform-common/src/main/java/org/sunbird/exception/ResponseCode.java @@ -84,8 +84,6 @@ public enum ResponseCode { dependentParameterMissing( ResponseMessage.Key.DEPENDENT_PARAMETER_MISSING, ResponseMessage.Message.DEPENDENT_PARAMETER_MISSING), - externalIdNotFound( - ResponseMessage.Key.EXTERNALID_NOT_FOUND, ResponseMessage.Message.EXTERNALID_NOT_FOUND), externalIdAssignedToOtherUser( ResponseMessage.Key.EXTERNALID_ASSIGNED_TO_OTHER_USER, ResponseMessage.Message.EXTERNALID_ASSIGNED_TO_OTHER_USER), @@ -147,7 +145,6 @@ public enum ResponseCode { recoveryParamsMatchException( ResponseMessage.Key.RECOVERY_PARAM_MATCH_EXCEPTION, ResponseMessage.Message.RECOVERY_PARAM_MATCH_EXCEPTION), - accountNotFound(ResponseMessage.Key.ACCOUNT_NOT_FOUND, ResponseMessage.Message.ACCOUNT_NOT_FOUND), passwordValidation( ResponseMessage.Key.INVALID_PASSWORD, ResponseMessage.Message.INVALID_PASSWORD), otpVerificationFailed( diff --git a/core/platform-common/src/main/java/org/sunbird/exception/ResponseMessage.java b/core/platform-common/src/main/java/org/sunbird/exception/ResponseMessage.java index f6266e30001aee77d72d79c77a116a9c94a050db..96c9eb70d20980fb11e69951c07904c96a50e240 100644 --- a/core/platform-common/src/main/java/org/sunbird/exception/ResponseMessage.java +++ b/core/platform-common/src/main/java/org/sunbird/exception/ResponseMessage.java @@ -98,7 +98,6 @@ public interface ResponseMessage { String PARAM_NOT_MATCH = "%s-NOT-MATCH"; String MANDATORY_HEADER_PARAMETER_MISSING = "Mandatory header parameter {0} is missing."; String RECOVERY_PARAM_MATCH_EXCEPTION = "{0} could not be same as {1}"; - String ACCOUNT_NOT_FOUND = "Account not found."; String INVALID_PASSWORD = "Password must contain a minimum of 8 characters including numerals, lower and upper case alphabets and special characters"; String OTP_VERIFICATION_FAILED = "OTP verification failed. Remaining attempt count is {0}."; @@ -157,42 +156,40 @@ public interface ResponseMessage { String EMPTY_HEADER_LINE = "0039"; String ROOT_ORG_ASSOCIATION_ERROR = "0040"; String DEPENDENT_PARAMETER_MISSING = "0041"; - String EXTERNALID_NOT_FOUND = "0042"; - String EXTERNALID_ASSIGNED_TO_OTHER_USER = "0043"; - String DUPLICATE_EXTERNAL_IDS = "0044"; - String EMAIL_RECIPIENTS_EXCEEDS_MAX_LIMIT = "0045"; - String PARAMETER_MISMATCH = "0046"; - String ERROR_CONFIG_LOAD_EMPTY_STRING = "0047"; - String ERROR_CONFIG_LOAD_PARSE_STRING = "0048"; - String ERROR_CONFIG_LOAD_EMPTY_CONFIG = "0049"; - String ERROR_NO_ROOT_ORG_ASSOCIATED = "0050"; - String ERROR_UNSUPPORTED_CLOUD_STORAGE = "0051"; - String ERROR_UNSUPPORTED_FIELD = "0052"; - String INVALID_PROPERTY_ERROR = "0053"; - String ERROR_INACTIVE_ORG = "0054"; - String ERROR_DUPLICATE_ENTRIES = "0055"; - String ERROR_CONFLICTING_VALUES = "0056"; - String ERROR_CONFLICTING_ROOT_ORG_ID = "0057"; - String ERROR_INVALID_OTP = "0058"; - String ERROR_INVALID_PARAMETER_SIZE = "0059"; - String ERROR_RATE_LIMIT_EXCEEDED = "0060"; - String ERROR_USER_MIGRATION_FAILED = "0061"; - String MANDATORY_HEADER_PARAMETER_MISSING = "0062"; - String RECOVERY_PARAM_MATCH_EXCEPTION = "0063"; - String OTP_VERIFICATION_FAILED = "0064"; - String SERVICE_UNAVAILABLE = "0065"; - String MANAGED_BY_NOT_ALLOWED = "0066"; - String MANAGED_USER_LIMIT_EXCEEDED = "0067"; - String PREFERENCE_ALREADY_EXIST = "0068"; - String DECLARED_USER_ERROR_STATUS_IS_NOT_UPDATED = "0069"; - String PREFERENCE_NOT_FOUND = "0070"; - String DECLARED_USER_VALIDATED_STATUS_IS_NOT_UPDATED = "0071"; - String SERVER_ERROR = JsonKey.USER_ORG_SERVICE_PREFIX + "0072"; - String UNAUTHORIZED_USER = JsonKey.USER_ORG_SERVICE_PREFIX + "0073"; - String FORBIDDEN = "0074"; - String INVALID_OBJECT_TYPE = "0075"; - String INACTIVE_USER = "0076"; - String INVALID_CSV_FILE = "0077"; - String ACCOUNT_NOT_FOUND = "0078"; + String EXTERNALID_ASSIGNED_TO_OTHER_USER = "0042"; + String DUPLICATE_EXTERNAL_IDS = "0043"; + String EMAIL_RECIPIENTS_EXCEEDS_MAX_LIMIT = "0044"; + String PARAMETER_MISMATCH = "0045"; + String ERROR_CONFIG_LOAD_EMPTY_STRING = "0046"; + String ERROR_CONFIG_LOAD_PARSE_STRING = "0047"; + String ERROR_CONFIG_LOAD_EMPTY_CONFIG = "0048"; + String ERROR_NO_ROOT_ORG_ASSOCIATED = "0049"; + String ERROR_UNSUPPORTED_CLOUD_STORAGE = "0050"; + String ERROR_UNSUPPORTED_FIELD = "0051"; + String INVALID_PROPERTY_ERROR = "0052"; + String ERROR_INACTIVE_ORG = "0053"; + String ERROR_DUPLICATE_ENTRIES = "0054"; + String ERROR_CONFLICTING_VALUES = "0055"; + String ERROR_CONFLICTING_ROOT_ORG_ID = "0056"; + String ERROR_INVALID_OTP = "0057"; + String ERROR_INVALID_PARAMETER_SIZE = "0058"; + String ERROR_RATE_LIMIT_EXCEEDED = "0059"; + String ERROR_USER_MIGRATION_FAILED = "0060"; + String MANDATORY_HEADER_PARAMETER_MISSING = "0061"; + String RECOVERY_PARAM_MATCH_EXCEPTION = "0062"; + String OTP_VERIFICATION_FAILED = "0063"; + String SERVICE_UNAVAILABLE = "0064"; + String MANAGED_BY_NOT_ALLOWED = "0065"; + String MANAGED_USER_LIMIT_EXCEEDED = "0066"; + String PREFERENCE_ALREADY_EXIST = "0067"; + String DECLARED_USER_ERROR_STATUS_IS_NOT_UPDATED = "0068"; + String PREFERENCE_NOT_FOUND = "0069"; + String DECLARED_USER_VALIDATED_STATUS_IS_NOT_UPDATED = "0070"; + String SERVER_ERROR = JsonKey.USER_ORG_SERVICE_PREFIX + "0071"; + String UNAUTHORIZED_USER = JsonKey.USER_ORG_SERVICE_PREFIX + "0072"; + String FORBIDDEN = "0073"; + String INVALID_OBJECT_TYPE = "0074"; + String INACTIVE_USER = "0075"; + String INVALID_CSV_FILE = "0076"; } } diff --git a/service/src/main/java/org/sunbird/actor/user/UserExternalIdManagementActor.java b/service/src/main/java/org/sunbird/actor/user/UserExternalIdManagementActor.java index ba5594c8177670047ba9ee95d793bd845176d94d..6e42bf9e6ef6c7d6b56c7cad529a365a740475f9 100644 --- a/service/src/main/java/org/sunbird/actor/user/UserExternalIdManagementActor.java +++ b/service/src/main/java/org/sunbird/actor/user/UserExternalIdManagementActor.java @@ -14,6 +14,7 @@ import org.sunbird.actor.core.BaseActor; import org.sunbird.cassandra.CassandraOperation; import org.sunbird.exception.ProjectCommonException; import org.sunbird.exception.ResponseCode; +import org.sunbird.exception.ResponseMessage; import org.sunbird.helper.ServiceFactory; import org.sunbird.keys.JsonKey; import org.sunbird.operations.ActorOperations; @@ -182,10 +183,10 @@ public class UserExternalIdManagementActor extends BaseActor { private void throwExternalIDNotFoundException(String externalId, String idType, String provider) { throw new ProjectCommonException( - ResponseCode.externalIdNotFound, + ResponseCode.resourceNotFound, ProjectUtil.formatMessage( - ResponseCode.externalIdNotFound.getErrorMessage(), externalId, idType, provider), - ResponseCode.CLIENT_ERROR.getResponseCode()); + ResponseMessage.Message.EXTERNALID_NOT_FOUND, externalId, idType, provider), + ResponseCode.RESOURCE_NOT_FOUND.getResponseCode()); } private Map<String, Object> upsertUserExternalIdentityData( diff --git a/service/src/main/java/org/sunbird/actor/user/UserMergeActor.java b/service/src/main/java/org/sunbird/actor/user/UserMergeActor.java index 602e93b41eae92fdfd0b834bc23fd70354ea7ceb..bdd928112902195705ab5fcdc448880d4afe2f6f 100644 --- a/service/src/main/java/org/sunbird/actor/user/UserMergeActor.java +++ b/service/src/main/java/org/sunbird/actor/user/UserMergeActor.java @@ -4,6 +4,7 @@ import akka.actor.ActorRef; import com.fasterxml.jackson.databind.ObjectMapper; import com.typesafe.config.Config; import java.io.IOException; +import java.text.MessageFormat; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -98,10 +99,10 @@ public class UserMergeActor extends UserBaseActor { + mergeeId + "or matching with mergerid root-org" + mergerId); - throw new ProjectCommonException( - ResponseCode.accountNotFound, - ResponseCode.accountNotFound.getErrorMessage(), - ResponseCode.CLIENT_ERROR.getResponseCode()); + ProjectCommonException.throwClientErrorException( + ResponseCode.parameterMismatch, + MessageFormat.format( + ResponseCode.parameterMismatch.getErrorMessage(), "merger and mergee rootOrgId")); } if (!mergee.getIsDeleted()) { prepareMergeeAccountData(mergee, mergeeDBMap); diff --git a/service/src/main/java/org/sunbird/actor/user/UserProfileReadActor.java b/service/src/main/java/org/sunbird/actor/user/UserProfileReadActor.java index 0ad586697ccaf803892c8065b9530a9635caf1ac..e07a5b9a7c7c8b37f8b0d11bb9a0d8d97cb660fc 100644 --- a/service/src/main/java/org/sunbird/actor/user/UserProfileReadActor.java +++ b/service/src/main/java/org/sunbird/actor/user/UserProfileReadActor.java @@ -98,9 +98,8 @@ public class UserProfileReadActor extends BaseActor { sender().tell(response, self()); } else { ProjectCommonException.throwResourceNotFoundException( - ResponseCode.resourceNotFound, - MessageFormat.format( - ResponseCode.resourceNotFound.getErrorMessage(), JsonKey.USER)); + ResponseCode.resourceNotFound, + MessageFormat.format(ResponseCode.resourceNotFound.getErrorMessage(), value)); } } } diff --git a/service/src/main/java/org/sunbird/service/user/UserProfileReadService.java b/service/src/main/java/org/sunbird/service/user/UserProfileReadService.java index 0862d8fea1290fc19d0278d5332a45a5bfee25cc..eefcafcbcb269d8fe38c70bf14a6c72442578c81 100644 --- a/service/src/main/java/org/sunbird/service/user/UserProfileReadService.java +++ b/service/src/main/java/org/sunbird/service/user/UserProfileReadService.java @@ -11,6 +11,7 @@ import org.apache.commons.collections.MapUtils; import org.apache.commons.lang3.StringUtils; import org.sunbird.exception.ProjectCommonException; import org.sunbird.exception.ResponseCode; +import org.sunbird.exception.ResponseMessage; import org.sunbird.keys.JsonKey; import org.sunbird.logging.LoggerUtil; import org.sunbird.model.organisation.OrgTypeEnum; @@ -38,7 +39,7 @@ public class UserProfileReadService { private final UserSelfDeclarationService userSelfDeclarationService = UserSelfDeclarationServiceImpl.getInstance(); private final UserExternalIdentityService userExternalIdentityService = - new UserExternalIdentityServiceImpl(); + UserExternalIdentityServiceImpl.getInstance(); private final ObjectMapper mapper = new ObjectMapper(); public Response getUserProfileData(Request actorMessage) { @@ -326,10 +327,11 @@ public class UserProfileReadService { userExternalIdentityService.getUserV1( id, provider, idType, actorMessage.getRequestContext()); if (StringUtils.isBlank(userId)) { - ProjectCommonException.throwClientErrorException( - ResponseCode.externalIdNotFound, + throw new ProjectCommonException( + ResponseCode.resourceNotFound, ProjectUtil.formatMessage( - ResponseCode.externalIdNotFound.getErrorMessage(), id, idType, provider)); + ResponseMessage.Message.EXTERNALID_NOT_FOUND, id, idType, provider), + ResponseCode.RESOURCE_NOT_FOUND.getResponseCode()); } return userId; } diff --git a/service/src/main/java/org/sunbird/service/user/impl/UserExternalIdentityServiceImpl.java b/service/src/main/java/org/sunbird/service/user/impl/UserExternalIdentityServiceImpl.java index f71edf9e66b72cf5aa803ba5d70a96420a5c1aa9..378c454a36959a3c34402aeeb36ddc24bcacb87e 100644 --- a/service/src/main/java/org/sunbird/service/user/impl/UserExternalIdentityServiceImpl.java +++ b/service/src/main/java/org/sunbird/service/user/impl/UserExternalIdentityServiceImpl.java @@ -20,6 +20,14 @@ import org.sunbird.util.user.UserUtil; public class UserExternalIdentityServiceImpl implements UserExternalIdentityService { private final UserExternalIdentityDao userExternalIdentityDao = new UserExternalIdentityDaoImpl(); private final LocationService locationService = LocationServiceImpl.getInstance(); + private static UserExternalIdentityService selfDeclarationService = null; + + public static UserExternalIdentityService getInstance() { + if (selfDeclarationService == null) { + selfDeclarationService = new UserExternalIdentityServiceImpl(); + } + return selfDeclarationService; + } @Override public List<Map<String, String>> getSelfDeclaredDetails(String userId, RequestContext context) { diff --git a/service/src/main/java/org/sunbird/service/user/impl/UserLookUpServiceImpl.java b/service/src/main/java/org/sunbird/service/user/impl/UserLookUpServiceImpl.java index d351604f8fa55755cb41dddd9e9ca91da86e0638..19050b876f5dc1a90dbb8d9f122cf2e1803bdf6b 100644 --- a/service/src/main/java/org/sunbird/service/user/impl/UserLookUpServiceImpl.java +++ b/service/src/main/java/org/sunbird/service/user/impl/UserLookUpServiceImpl.java @@ -249,9 +249,9 @@ public class UserLookUpServiceImpl implements UserLookupService { private static void throwExternalIDNotFoundException( String externalId, String idType, String provider) { throw new ProjectCommonException( - ResponseCode.externalIdNotFound, + ResponseCode.resourceNotFound, ProjectUtil.formatMessage( - ResponseCode.externalIdNotFound.getErrorMessage(), externalId, idType, provider), - ResponseCode.CLIENT_ERROR.getResponseCode()); + ResponseMessage.Message.EXTERNALID_NOT_FOUND, externalId, idType, provider), + ResponseCode.RESOURCE_NOT_FOUND.getResponseCode()); } } diff --git a/service/src/main/java/org/sunbird/util/user/UserUtil.java b/service/src/main/java/org/sunbird/util/user/UserUtil.java index 9c94d37ea6deb7898759cdf61e830b779d88bb20..0ed4bde5bb6b71f92eb74432664a10c3b2f1d2aa 100644 --- a/service/src/main/java/org/sunbird/util/user/UserUtil.java +++ b/service/src/main/java/org/sunbird/util/user/UserUtil.java @@ -24,6 +24,7 @@ import org.sunbird.datasecurity.EncryptionService; import org.sunbird.dto.SearchDTO; import org.sunbird.exception.ProjectCommonException; import org.sunbird.exception.ResponseCode; +import org.sunbird.exception.ResponseMessage; import org.sunbird.keys.JsonKey; import org.sunbird.logging.LoggerUtil; import org.sunbird.model.user.User; @@ -145,10 +146,11 @@ public class UserUtil { && StringUtils.isNotEmpty(idType)) { user = getUserFromExternalId(userMap, context); if (MapUtils.isEmpty(user)) { - ProjectCommonException.throwClientErrorException( - ResponseCode.externalIdNotFound, + throw new ProjectCommonException( + ResponseCode.resourceNotFound, ProjectUtil.formatMessage( - ResponseCode.externalIdNotFound.getErrorMessage(), extId, idType, provider)); + ResponseMessage.Message.EXTERNALID_NOT_FOUND, extId, idType, provider), + ResponseCode.RESOURCE_NOT_FOUND.getResponseCode()); } } else if (StringUtils.isNotBlank((String) userMap.get(JsonKey.USER_ID)) || StringUtils.isNotBlank((String) userMap.get(JsonKey.ID))) { @@ -520,10 +522,10 @@ public class UserUtil { private static void throwExternalIDNotFoundException( String externalId, String idType, String provider) { throw new ProjectCommonException( - ResponseCode.externalIdNotFound, + ResponseCode.resourceNotFound, ProjectUtil.formatMessage( - ResponseCode.externalIdNotFound.getErrorMessage(), externalId, idType, provider), - ResponseCode.CLIENT_ERROR.getResponseCode()); + ResponseMessage.Message.EXTERNALID_NOT_FOUND, externalId, idType, provider), + ResponseCode.RESOURCE_NOT_FOUND.getResponseCode()); } public static List<Map<String, String>> getExternalIds( diff --git a/service/src/test/java/org/sunbird/actor/user/UserMergeActorTest.java b/service/src/test/java/org/sunbird/actor/user/UserMergeActorTest.java index a192cf5a4fc491e9dc729695b86706604e240ed1..8685039e396c0dc70271e15cc1ffc9e94fb5468c 100644 --- a/service/src/test/java/org/sunbird/actor/user/UserMergeActorTest.java +++ b/service/src/test/java/org/sunbird/actor/user/UserMergeActorTest.java @@ -133,6 +133,24 @@ public class UserMergeActorTest { boolean result = testScenario(getRequest(ActorOperations.MERGE_USER), null); assertTrue(result); } + + @Test + public void testParameterMismatchMergeUser() throws Exception { + when(userService.getUserById(Mockito.anyString(), Mockito.any())) + .thenReturn(getUserDetails(false)) + .thenReturn(getUserDetails(false)); + when(userDao.updateUser(Mockito.anyMap(), Mockito.any())).thenReturn(getSuccessResponse()); + when(tokenValidator.verifyUserToken(Mockito.anyString(), Mockito.anyMap())) + .thenReturn("anyUserId"); + when(tokenValidator.verifySourceUserToken( + Mockito.anyString(), Mockito.anyString(), Mockito.anyMap())) + .thenReturn("anyUserId"); + Map<String, String> configMap = configSettingsMap(); + configMap.put(JsonKey.CUSTODIAN_ORG_ID, "orgId"); + when(DataCacheHandler.getConfigSettings()).thenReturn(configMap); + boolean result = testScenario(getRequest(ActorOperations.MERGE_USER), ResponseCode.parameterMismatch); + assertTrue(result); + } private Map<String, String> configSettingsMap() { Map<String, String> configMap = new HashMap<>(); diff --git a/service/src/test/java/org/sunbird/actor/user/UserProfileReadActorTest.java b/service/src/test/java/org/sunbird/actor/user/UserProfileReadActorTest.java index 1b21b1e8e56cdc8ffd7901bbb9ee34515fe5f27e..5d852e6f0d14a09e46b4b40b5fd2fa21cb3c9095 100644 --- a/service/src/test/java/org/sunbird/actor/user/UserProfileReadActorTest.java +++ b/service/src/test/java/org/sunbird/actor/user/UserProfileReadActorTest.java @@ -291,7 +291,7 @@ public class UserProfileReadActorTest { Request reqObj = getProfileReadV1request(VALID_USER_ID); Map<String, Object> req = new HashMap<>(); req.put(JsonKey.USER_ID, VALID_USER_ID); - boolean result = testScenario(reqObj, ResponseCode.externalIdNotFound); + boolean result = testScenario(reqObj, ResponseCode.resourceNotFound); assertTrue(result); } diff --git a/service/src/test/java/org/sunbird/service/user/UserProfileReadServiceTest.java b/service/src/test/java/org/sunbird/service/user/UserProfileReadServiceTest.java index 83e84633569b43572fb8d84ffe7e276e3c9d28cd..0889b32b399232cde8ce5af80938ac3812c62147 100644 --- a/service/src/test/java/org/sunbird/service/user/UserProfileReadServiceTest.java +++ b/service/src/test/java/org/sunbird/service/user/UserProfileReadServiceTest.java @@ -40,6 +40,7 @@ import org.sunbird.model.user.User; import org.sunbird.operations.ActorOperations; import org.sunbird.request.Request; import org.sunbird.response.Response; +import org.sunbird.service.user.impl.UserExternalIdentityServiceImpl; import org.sunbird.util.DataCacheHandler; import org.sunbird.util.UserUtility; import org.sunbird.util.Util; @@ -62,7 +63,9 @@ import scala.concurrent.Promise; EsClientFactory.class, ElasticSearchHelper.class, UserRoleDao.class, - UserRoleDaoImpl.class + UserRoleDaoImpl.class, + UserExternalIdentityServiceImpl.class, + UserProfileReadService.class }) @PowerMockIgnore({ "javax.management.*", @@ -328,6 +331,24 @@ public class UserProfileReadServiceTest { Assert.assertEquals(ex.getErrorCode(), ResponseCode.userAccountlocked.getErrorCode()); } } + + @Test + public void getUserIdByExternalIdTest() { + UserProfileReadService userProfileReadService = new UserProfileReadService(); + Request request = getProfileReadRequest("1234567890"); + request.getContext().put(JsonKey.PROVIDER, "4578963210"); + request.getContext().put(JsonKey.ID_TYPE, "4578963210"); + PowerMockito.mockStatic(UserExternalIdentityServiceImpl.class); + UserExternalIdentityServiceImpl userExternalIdentityService = PowerMockito.mock(UserExternalIdentityServiceImpl.class); + when(UserExternalIdentityServiceImpl.getInstance()).thenReturn(userExternalIdentityService); + when(userExternalIdentityService.getUserV1(Mockito.anyString(), Mockito.anyString(), Mockito.anyString(), Mockito.any())).thenReturn(""); + try { + userProfileReadService.getUserProfileData(request); + } catch (ProjectCommonException ex) { + Assert.assertNotNull(ex); + Assert.assertEquals(ex.getErrorCode(), ResponseCode.resourceNotFound.getErrorCode()); + } + } private Request getProfileReadRequest(String userId) { Request reqObj = new Request(); diff --git a/service/src/test/java/org/sunbird/util/user/UserLookupTest.java b/service/src/test/java/org/sunbird/util/user/UserLookupTest.java index f81e9c8df5032db540f25251bd0e69f949a3fc3d..58ae8d172ccb906d9964fe65ba66c369db771307 100644 --- a/service/src/test/java/org/sunbird/util/user/UserLookupTest.java +++ b/service/src/test/java/org/sunbird/util/user/UserLookupTest.java @@ -185,7 +185,7 @@ public class UserLookupTest { user.getExternalIds().get(0).put(JsonKey.OPERATION, JsonKey.UPDATE); new UserLookUpServiceImpl().checkExternalIdUniqueness(user, JsonKey.UPDATE, null); } catch (ProjectCommonException e) { - assertEquals(ResponseCode.externalIdNotFound.getErrorCode(), e.getErrorCode()); + assertEquals(ResponseCode.resourceNotFound.getErrorCode(), e.getErrorCode()); } } @@ -208,7 +208,7 @@ public class UserLookupTest { user.getExternalIds().get(0).put(JsonKey.OPERATION, JsonKey.REMOVE); new UserLookUpServiceImpl().checkExternalIdUniqueness(user, JsonKey.UPDATE, null); } catch (ProjectCommonException e) { - assertEquals(ResponseCode.externalIdNotFound.getErrorCode(), e.getErrorCode()); + assertEquals(ResponseCode.resourceNotFound.getErrorCode(), e.getErrorCode()); } } } diff --git a/service/src/test/java/org/sunbird/util/user/UserUtilTest.java b/service/src/test/java/org/sunbird/util/user/UserUtilTest.java index a29915ec3ce152291b53ee56a2c19eed346a11fa..868fbb81c39f027ba79a151fdf990acfad67c566 100644 --- a/service/src/test/java/org/sunbird/util/user/UserUtilTest.java +++ b/service/src/test/java/org/sunbird/util/user/UserUtilTest.java @@ -164,6 +164,28 @@ public class UserUtilTest { Assert.assertEquals("add", userDeclareEntityList.get(0).getOperation()); } + @Test(expected = Exception.class) + public void testValidateExternalIdsAndReturnActiveUser() { + beforeEachTest(); + Map<String, Object> requestMap = new HashMap<>(); + requestMap.put(JsonKey.EXTERNAL_ID, "extId"); + requestMap.put(JsonKey.EXTERNAL_ID_PROVIDER, "provider"); + requestMap.put(JsonKey.EXTERNAL_ID_TYPE, "idType"); + + Response response = new Response(); + List<Map<String, Object>> resList = new ArrayList<>(); + Map<String, Object> res = new HashMap<>(); + resList.add(res); + response.getResult().put(JsonKey.RESPONSE, resList); + when(cassandraOperationImpl.getRecordsByCompositeKey( + Mockito.anyString(), + Mockito.anyString(), + Mockito.anyMap(), + Mockito.any(RequestContext.class))) + .thenReturn(response); + UserUtil.validateExternalIdsAndReturnActiveUser(requestMap, new RequestContext()); + } + @Test public void testfetchOrgIdByProvider() { beforeEachTest();