public void UpdateUsergeneratedSystemKey_IfNoPermissionIsAssigned_InvalidOperationExceptionWillBeThrown() { UserValidationEssentials essentials = AccessControlUtility.RegisterAndLogin("user", "*****@*****.**", "123", _applicationContext); SecurityKeyPairController securityKeyPairController = _applicationContext["SecurityKeyPairController"] as SecurityKeyPairController; IPermissionRepository permissionRepository = _applicationContext["PermissionRespository"] as IPermissionRepository; IList <Permission> permissions = permissionRepository.GetAllPermissions(); List <string> securityKeyPermissions = new List <string>(); for (int i = 0; i < permissions.Count; i++) { securityKeyPermissions.Add(permissions[i].PermissionId); } securityKeyPairController.Request = new HttpRequestMessage(HttpMethod.Post, ""); securityKeyPairController.Request.Headers.Add("Auth", essentials.ApiKey); CreateUserGeneratedSecurityKeyPair command = new CreateUserGeneratedSecurityKeyPair(securityKeyPermissions, "", "", "", false, false, false, "#1"); IHttpActionResult httpActionResult = securityKeyPairController.CreateSecurityKey(command); OkNegotiatedContentResult <SecurityKeyPair> result = (OkNegotiatedContentResult <SecurityKeyPair>)httpActionResult; Assert.IsNotNullOrEmpty(result.Content.ApiKey); Assert.IsNotNullOrEmpty(result.Content.SecretKey); httpActionResult = securityKeyPairController.GetUserSecurityKeys(); OkNegotiatedContentResult <object> result1 = (OkNegotiatedContentResult <object>)httpActionResult; List <object> objectPairs = result1.Content as List <object>; Assert.IsNotNull(objectPairs); List <SecurityKeyPairList> pairs = new List <SecurityKeyPairList>(); foreach (object objectPair in objectPairs) { pairs.Add(objectPair as SecurityKeyPairList); } Assert.AreEqual(pairs.Count, 1); Assert.AreEqual(pairs[0].KeyDescription, "#1"); Assert.IsNull(pairs[0].ExpirationDate); httpActionResult = securityKeyPairController.GetSecurityKeyDetail("#1"); OkNegotiatedContentResult <SecurityKeyRepresentation> securityKey = (OkNegotiatedContentResult <SecurityKeyRepresentation>)httpActionResult; Assert.AreEqual(securityKey.Content.KeyDescritpion, "#1"); Assert.AreEqual(securityKey.Content.EnableEndDate, false); Assert.AreEqual(securityKey.Content.EnableExpirationDate, false); Assert.AreEqual(securityKey.Content.EnableStartDate, false); List <SecurityKeyPermissionsRepresentation> permissionsRepresentations = new List <SecurityKeyPermissionsRepresentation>(); for (int i = 0; i < securityKeyPermissions.Count; i++) { permissionsRepresentations.Add(new SecurityKeyPermissionsRepresentation(false, new Permission(securityKeyPermissions[i], ""))); } UpdateUserGeneratedSecurityKeyPair updateKeyPair = new UpdateUserGeneratedSecurityKeyPair(securityKey.Content.ApiKey, "#2", true, false, false, "", DateTime.Today.AddDays(-2).ToString(), permissionsRepresentations.ToArray(), ""); httpActionResult = securityKeyPairController.UpdateSecurityKey(updateKeyPair); BadRequestErrorMessageResult errorMessage = (BadRequestErrorMessageResult)httpActionResult; Assert.AreEqual(errorMessage.Message, "Please assign atleast one permission."); }
public void ApplyForTier3_IfCallIsValid_Tier3StatusWillBeChangedToPreVerified() { UserValidationEssentials essentials = AccessControlUtility.RegisterAndLogin("user", "*****@*****.**", "123", _applicationContext); TierController tierController = _applicationContext["TierController"] as TierController; tierController.Request = new HttpRequestMessage(HttpMethod.Post, ""); tierController.Request.Headers.Add("Auth", essentials.ApiKey); tierController.GetVerifyForTier1(new Tier1Param("User", DateTime.Now.AddDays(-10).ToShortDateString(), "656667")); tierController.GetVerifyForTier2(new Tier2Param("asd", "", "", "punjab", "Isb", "123")); var content = new MultipartFormDataContent(); content.Add(new StreamContent(new FileStream(@"C:\Logs\Logs.txt", FileMode.Open))); tierController.Request.Content = content; tierController.GetVerifyForTier3(new Tier3Param("asd", "123", "bill", "logs.txt")); ManualResetEvent resetEvent = new ManualResetEvent(false); resetEvent.WaitOne(15000); IHttpActionResult httpActionResult = tierController.GetTierStatuses(); OkNegotiatedContentResult <UserTierStatusRepresentation[]> statuses = (OkNegotiatedContentResult <UserTierStatusRepresentation[]>)httpActionResult; Assert.AreEqual(statuses.Content.Length, 5); Assert.AreEqual(statuses.Content[0].Status, Status.Verified.ToString()); Assert.AreEqual(statuses.Content[1].Status, Status.Preverified.ToString()); Assert.AreEqual(statuses.Content[2].Status, Status.Preverified.ToString()); Assert.AreEqual(statuses.Content[3].Status, Status.Preverified.ToString()); httpActionResult = tierController.GetTier3Details(); OkNegotiatedContentResult <Tier3Details> detials = (OkNegotiatedContentResult <Tier3Details>)httpActionResult; Assert.AreEqual(detials.Content.Nin, "123"); Assert.AreEqual(detials.Content.Ssn, "asd"); }
public void ApplyForTier2_IfCallIsValid_Tier2StatusWillBeChangedToPreVerified() { UserValidationEssentials essentials = AccessControlUtility.RegisterAndLogin("user", "*****@*****.**", "123", _applicationContext); TierController tierController = _applicationContext["TierController"] as TierController; tierController.Request = new HttpRequestMessage(HttpMethod.Post, ""); tierController.Request.Headers.Add("Auth", essentials.ApiKey); tierController.GetVerifyForTier1(new Tier1Param("User", DateTime.Now.AddDays(-10).ToShortDateString(), "656667")); tierController.GetVerifyForTier2(new Tier2Param("asd", "", "", "punjab", "Isb", "123")); IHttpActionResult httpActionResult = tierController.GetTierStatuses(); OkNegotiatedContentResult <UserTierStatusRepresentation[]> statuses = (OkNegotiatedContentResult <UserTierStatusRepresentation[]>)httpActionResult; Assert.AreEqual(statuses.Content.Length, 5); Assert.AreEqual(statuses.Content[0].Status, Status.Verified.ToString()); Assert.AreEqual(statuses.Content[1].Status, Status.Preverified.ToString()); Assert.AreEqual(statuses.Content[2].Status, Status.Preverified.ToString()); httpActionResult = tierController.GetTier2Details(); OkNegotiatedContentResult <Tier2Details> detials = (OkNegotiatedContentResult <Tier2Details>)httpActionResult; Assert.AreEqual(detials.Content.Country, "Pakistan"); Assert.AreEqual(detials.Content.AddressLine1, "asd"); Assert.AreEqual(detials.Content.State, "punjab"); Assert.AreEqual(detials.Content.City, "Isb"); Assert.AreEqual(detials.Content.ZipCode, "123"); }
public void VerifyTierLevelTest_TestsIfTheTierLevelIsVerifiedAsExpected_QueriesDatabaseToConfirm() { UserValidationEssentials essentials = AccessControlUtility.RegisterAndLogin("user", "*****@*****.**", "123", _applicationContext); TierController tierController = _applicationContext["TierController"] as TierController; Assert.IsNotNull(tierController); tierController.Request = new HttpRequestMessage(HttpMethod.Post, ""); tierController.Request.Headers.Add("Auth", essentials.ApiKey); tierController.GetVerifyForTier1(new Tier1Param("User", DateTime.Now.AddDays(-10).ToShortDateString(), "656667")); // Tier 2 will not be considered for verification because Tier 1 is not yet verified tierController.GetVerifyForTier2(new Tier2Param("asd", "", "", "punjab", "Isb", "123")); IHttpActionResult httpActionResult = tierController.GetTierStatuses(); OkNegotiatedContentResult <UserTierStatusRepresentation[]> statuses = (OkNegotiatedContentResult <UserTierStatusRepresentation[]>)httpActionResult; Assert.AreEqual(statuses.Content.Length, 5); Assert.AreEqual(statuses.Content[0].Status, Status.Verified.ToString()); Assert.AreEqual(statuses.Content[1].Status, Status.Preverified.ToString()); Assert.AreEqual(statuses.Content[2].Status, Status.NonVerified.ToString()); IHttpActionResult verifyTierLevelResult = tierController.VerifyTierLevel(new VerifyTierLevelParams("Tier 1", essentials.ApiKey)); OkNegotiatedContentResult <VerifyTierLevelResponse> verificationResponse = (OkNegotiatedContentResult <VerifyTierLevelResponse>)verifyTierLevelResult; Assert.IsTrue(verificationResponse.Content.VerificationSuccessful); httpActionResult = tierController.GetTierStatuses(); statuses = (OkNegotiatedContentResult <UserTierStatusRepresentation[]>)httpActionResult; Assert.AreEqual(statuses.Content.Length, 5); Assert.AreEqual(statuses.Content[0].Status, Status.Verified.ToString()); Assert.AreEqual(statuses.Content[1].Status, Status.Verified.ToString()); Assert.AreEqual(statuses.Content[2].Status, Status.NonVerified.ToString()); // Tier 2 will now be verified as Tier 1 is already verified tierController.GetVerifyForTier2(new Tier2Param("asd", "", "", "punjab", "Isb", "123")); httpActionResult = tierController.GetTierStatuses(); statuses = (OkNegotiatedContentResult <UserTierStatusRepresentation[]>)httpActionResult; Assert.AreEqual(statuses.Content.Length, 5); Assert.AreEqual(statuses.Content[0].Status, Status.Verified.ToString()); Assert.AreEqual(statuses.Content[1].Status, Status.Verified.ToString()); Assert.AreEqual(statuses.Content[2].Status, Status.Preverified.ToString()); verifyTierLevelResult = tierController.VerifyTierLevel(new VerifyTierLevelParams("Tier 2", essentials.ApiKey)); verificationResponse = (OkNegotiatedContentResult <VerifyTierLevelResponse>)verifyTierLevelResult; Assert.IsTrue(verificationResponse.Content.VerificationSuccessful); httpActionResult = tierController.GetTierStatuses(); statuses = (OkNegotiatedContentResult <UserTierStatusRepresentation[]>)httpActionResult; Assert.AreEqual(statuses.Content.Length, 5); Assert.AreEqual(statuses.Content[0].Status, Status.Verified.ToString()); Assert.AreEqual(statuses.Content[1].Status, Status.Verified.ToString()); Assert.AreEqual(statuses.Content[2].Status, Status.Verified.ToString()); }
public void GetTier3Detials_IfTier3IsNotVerified_InvalidOperationExceptionShouldBeThrown() { UserValidationEssentials essentials = AccessControlUtility.RegisterAndLogin("user", "*****@*****.**", "123", _applicationContext); TierController tierController = _applicationContext["TierController"] as TierController; tierController.Request = new HttpRequestMessage(HttpMethod.Post, ""); tierController.Request.Headers.Add("Auth", essentials.ApiKey); IHttpActionResult httpActionResult = tierController.GetTier3Details(); BadRequestErrorMessageResult result = httpActionResult as BadRequestErrorMessageResult; Assert.AreEqual(result.Message, "Tier 3 details are not submitted yet."); }
public void CreateUsergeneratedSystemKey_ProvideAllParameters_TheKeysShouldBeReturned() { UserValidationEssentials essentials = AccessControlUtility.RegisterAndLogin("user", "*****@*****.**", "123", _applicationContext); SecurityKeyPairController securityKeyPairController = _applicationContext["SecurityKeyPairController"] as SecurityKeyPairController; IPermissionRepository permissionRepository = _applicationContext["PermissionRespository"] as IPermissionRepository; IList <Permission> permissions = permissionRepository.GetAllPermissions(); List <string> securityKeyPermissions = new List <string>(); for (int i = 0; i < permissions.Count; i++) { securityKeyPermissions.Add(permissions[i].PermissionId); } securityKeyPairController.Request = new HttpRequestMessage(HttpMethod.Post, ""); securityKeyPairController.Request.Headers.Add("Auth", essentials.ApiKey); CreateUserGeneratedSecurityKeyPair command = new CreateUserGeneratedSecurityKeyPair(securityKeyPermissions, "", "", "", false, false, false, "#1"); IHttpActionResult httpActionResult = securityKeyPairController.CreateSecurityKey(command); OkNegotiatedContentResult <SecurityKeyPair> result = (OkNegotiatedContentResult <SecurityKeyPair>)httpActionResult; Assert.IsNotNullOrEmpty(result.Content.ApiKey); Assert.IsNotNullOrEmpty(result.Content.SecretKey); CreateUserGeneratedSecurityKeyPair command2 = new CreateUserGeneratedSecurityKeyPair(securityKeyPermissions, "", "", "", false, false, false, "#2"); httpActionResult = securityKeyPairController.CreateSecurityKey(command2); result = (OkNegotiatedContentResult <SecurityKeyPair>)httpActionResult; Assert.IsNotNullOrEmpty(result.Content.ApiKey); Assert.IsNotNullOrEmpty(result.Content.SecretKey); httpActionResult = securityKeyPairController.GetUserSecurityKeys(); OkNegotiatedContentResult <object> result1 = (OkNegotiatedContentResult <object>)httpActionResult; List <object> objectPairs = result1.Content as List <object>; List <SecurityKeyPairList> pairs = new List <SecurityKeyPairList>(); foreach (object objectPair in objectPairs) { pairs.Add(objectPair as SecurityKeyPairList); } Assert.AreEqual(pairs.Count, 2); Assert.AreEqual(pairs[1].KeyDescription, "#1"); Assert.IsNull(pairs[1].ExpirationDate); httpActionResult = securityKeyPairController.GetSecurityKeyDetail("#1"); OkNegotiatedContentResult <SecurityKeyRepresentation> securityKey = (OkNegotiatedContentResult <SecurityKeyRepresentation>)httpActionResult; Assert.AreEqual(securityKey.Content.KeyDescritpion, "#1"); Assert.AreEqual(securityKey.Content.EnableEndDate, false); Assert.AreEqual(securityKey.Content.EnableExpirationDate, false); Assert.AreEqual(securityKey.Content.EnableStartDate, false); Assert.AreEqual(pairs[0].KeyDescription, "#2"); Assert.IsNull(pairs[0].ExpirationDate); httpActionResult = securityKeyPairController.GetSecurityKeyDetail("#2"); securityKey = (OkNegotiatedContentResult <SecurityKeyRepresentation>)httpActionResult; Assert.AreEqual(securityKey.Content.KeyDescritpion, "#2"); Assert.AreEqual(securityKey.Content.EnableEndDate, false); Assert.AreEqual(securityKey.Content.EnableExpirationDate, false); Assert.AreEqual(securityKey.Content.EnableStartDate, false); }
public void UpdateUsergeneratedSystemKey_ProvideAllParameters_TheKeysDetailsShouldGetUpdated() { UserValidationEssentials essentials = AccessControlUtility.RegisterAndLogin("user", "*****@*****.**", "123", _applicationContext); SecurityKeyPairController securityKeyPairController = _applicationContext["SecurityKeyPairController"] as SecurityKeyPairController; IPermissionRepository permissionRepository = _applicationContext["PermissionRespository"] as IPermissionRepository; IList <Permission> permissions = permissionRepository.GetAllPermissions(); List <string> securityKeyPermissions = new List <string>(); for (int i = 0; i < permissions.Count; i++) { securityKeyPermissions.Add(permissions[i].PermissionId); } securityKeyPairController.Request = new HttpRequestMessage(HttpMethod.Post, ""); securityKeyPairController.Request.Headers.Add("Auth", essentials.ApiKey); CreateUserGeneratedSecurityKeyPair command = new CreateUserGeneratedSecurityKeyPair(securityKeyPermissions, "", "", "", false, false, false, "#1"); IHttpActionResult httpActionResult = securityKeyPairController.CreateSecurityKey(command); OkNegotiatedContentResult <SecurityKeyPair> result = (OkNegotiatedContentResult <SecurityKeyPair>)httpActionResult; Assert.IsNotNullOrEmpty(result.Content.ApiKey); Assert.IsNotNullOrEmpty(result.Content.SecretKey); httpActionResult = securityKeyPairController.GetUserSecurityKeys(); OkNegotiatedContentResult <object> result1 = (OkNegotiatedContentResult <object>)httpActionResult; List <object> objectPairs = result1.Content as List <object>; Assert.IsNotNull(objectPairs); List <SecurityKeyPairList> pairs = new List <SecurityKeyPairList>(); foreach (object objectPair in objectPairs) { pairs.Add(objectPair as SecurityKeyPairList); } Assert.AreEqual(pairs.Count, 1); Assert.AreEqual(pairs[0].KeyDescription, "#1"); Assert.IsNull(pairs[0].ExpirationDate); httpActionResult = securityKeyPairController.GetSecurityKeyDetail("#1"); OkNegotiatedContentResult <SecurityKeyRepresentation> securityKey = (OkNegotiatedContentResult <SecurityKeyRepresentation>)httpActionResult; Assert.AreEqual(securityKey.Content.KeyDescritpion, "#1"); Assert.AreEqual(securityKey.Content.EnableEndDate, false); Assert.AreEqual(securityKey.Content.EnableExpirationDate, false); Assert.AreEqual(securityKey.Content.EnableStartDate, false); List <SecurityKeyPermissionsRepresentation> permissionsRepresentations = new List <SecurityKeyPermissionsRepresentation>(); for (int i = 0; i < securityKeyPermissions.Count; i++) { if (securityKeyPermissions[i] == PermissionsConstant.Cancel_Order) { permissionsRepresentations.Add(new SecurityKeyPermissionsRepresentation(false, new Permission(securityKeyPermissions[i], "Cancel Order"))); } else if (securityKeyPermissions[i] == PermissionsConstant.Query_Open_Orders) { permissionsRepresentations.Add(new SecurityKeyPermissionsRepresentation(false, new Permission(securityKeyPermissions[i], "Query Open Orders"))); } else if (securityKeyPermissions[i] == PermissionsConstant.Place_Order) { permissionsRepresentations.Add(new SecurityKeyPermissionsRepresentation(false, new Permission(securityKeyPermissions[i], "Place Order"))); } else if (securityKeyPermissions[i] == PermissionsConstant.Withdraw_Funds) { permissionsRepresentations.Add(new SecurityKeyPermissionsRepresentation(false, new Permission(securityKeyPermissions[i], "Withdraw Funds"))); } else { permissionsRepresentations.Add(new SecurityKeyPermissionsRepresentation(true, new Permission(securityKeyPermissions[i], securityKeyPermissions[i]))); } } UpdateUserGeneratedSecurityKeyPair updateKeyPair = new UpdateUserGeneratedSecurityKeyPair(securityKey.Content.ApiKey, "#2", true, false, false, "", DateTime.Today.AddDays(-2).ToString(), permissionsRepresentations.ToArray(), ""); httpActionResult = securityKeyPairController.UpdateSecurityKey(updateKeyPair); httpActionResult = securityKeyPairController.GetSecurityKeyDetail("#2"); securityKey = (OkNegotiatedContentResult <SecurityKeyRepresentation>)httpActionResult; Assert.AreEqual(securityKey.Content.KeyDescritpion, "#2"); Assert.AreEqual(securityKey.Content.EnableEndDate, false); Assert.AreEqual(securityKey.Content.EnableExpirationDate, false); Assert.AreEqual(securityKey.Content.EnableStartDate, true); ValidatePermissions(securityKey.Content.SecurityKeyPermissions); }