public void CreateUserGeneratedSecurityPair_ReadAndDeleteIt_SecurityPairShouldGetDeleted()
        {
            ISecurityKeysApplicationService registrationService =
                (ISecurityKeysApplicationService)_applicationContext["SecurityKeysApplicationService"];
            var                systemGeneratedKey     = registrationService.CreateSystemGeneratedKey(1);
            List <string>      securityKeyPermissions = new List <string>();
            IList <Permission> permissions            = _permissionRepository.GetAllPermissions();

            for (int i = 0; i < permissions.Count; i++)
            {
                securityKeyPermissions.Add(permissions[i].PermissionId);
            }
            CreateUserGeneratedSecurityKeyPair command =
                new CreateUserGeneratedSecurityKeyPair(securityKeyPermissions,
                                                       DateTime.Today.AddDays(1).ToString(), DateTime.Today.AddDays(-2).ToString(),
                                                       DateTime.Today.AddDays(-1).ToString(), true, true, true, "123");
            var keys = registrationService.CreateUserGeneratedKey(command, systemGeneratedKey.Item1.Value);

            registrationService.DeleteSecurityKeyPair("123", systemGeneratedKey.Item1.Value);
            var getKeyPair = _securityKeysRepository.GetByKeyDescriptionAndUserId("123", 1);

            Assert.Null(getKeyPair);
            var getKeyPair1 = _securityKeysRepository.GetByApiKey(keys.ApiKey);

            Assert.Null(getKeyPair1);
        }
        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 CreateUserGeneratedSecurityPair_IfNoPermissionIsAssigned_ArgumentNullExceptionShouldBeRaised()
 {
     ISecurityKeysApplicationService registrationService =
         (ISecurityKeysApplicationService)_applicationContext["SecurityKeysApplicationService"];
     var           systemGeneratedKey           = registrationService.CreateSystemGeneratedKey(1);
     List <string> securityKeyPermissions       = new List <string>();
     CreateUserGeneratedSecurityKeyPair command =
         new CreateUserGeneratedSecurityKeyPair(securityKeyPermissions,
                                                DateTime.Today.AddDays(1).ToString(), DateTime.Today.AddDays(-2).ToString(),
                                                DateTime.Today.AddDays(-1).ToString(), true, true, true, "123");
     var keys = registrationService.CreateUserGeneratedKey(command, systemGeneratedKey.Item1.Value);
 }
        public void UpdateUserGeneratedSecurityPair_UpdatePermissionsAndSomeDescription_VerifyKeyPairIsReturnedAndPersistedSuccessfully()
        {
            ISecurityKeysApplicationService registrationService =
                (ISecurityKeysApplicationService)_applicationContext["SecurityKeysApplicationService"];
            var                systemGeneratedKey     = registrationService.CreateSystemGeneratedKey(1);
            List <string>      securityKeyPermissions = new List <string>();
            IList <Permission> permissions            = _permissionRepository.GetAllPermissions();

            for (int i = 0; i < permissions.Count; i++)
            {
                securityKeyPermissions.Add(permissions[i].PermissionId);
            }
            CreateUserGeneratedSecurityKeyPair command =
                new CreateUserGeneratedSecurityKeyPair(securityKeyPermissions,
                                                       DateTime.Today.AddDays(1).ToString(), DateTime.Today.AddDays(-2).ToString(),
                                                       DateTime.Today.AddDays(-1).ToString(), true, true, true, "123");
            var keys = registrationService.CreateUserGeneratedKey(command, systemGeneratedKey.Item1.Value);

            List <SecurityKeyPermissionsRepresentation> securityKeyPermissions2 = new List <SecurityKeyPermissionsRepresentation>();

            for (int i = 0; i < permissions.Count; i++)
            {
                if (i % 2 == 0)
                {
                    securityKeyPermissions2.Add(new SecurityKeyPermissionsRepresentation(false, permissions[i]));
                }
                else
                {
                    securityKeyPermissions2.Add(new SecurityKeyPermissionsRepresentation(true, permissions[i]));
                }
            }

            UpdateUserGeneratedSecurityKeyPair update = new UpdateUserGeneratedSecurityKeyPair(keys.ApiKey, "456", false, false, true, "", "", securityKeyPermissions2.ToArray(), DateTime.Today.AddDays(3).ToString());

            registrationService.UpdateSecurityKeyPair(update, keys.ApiKey);
            Assert.NotNull(keys);
            Assert.IsNotNullOrEmpty(keys.ApiKey);
            Assert.IsNotNullOrEmpty(keys.SecretKey);
            SecurityKeysPair persistedKeysPair = _securityKeysRepository.GetByApiKey(keys.ApiKey);

            Assert.NotNull(persistedKeysPair);
            Assert.AreEqual(persistedKeysPair.UserId, 1);
            Assert.AreEqual(persistedKeysPair.SystemGenerated, false);
            Assert.AreEqual(persistedKeysPair.ApiKey, keys.ApiKey);
            Assert.AreEqual(persistedKeysPair.SecretKey, keys.SecretKey);
            Assert.AreEqual(persistedKeysPair.KeyDescription, "456");
            Assert.IsNotNullOrEmpty(persistedKeysPair.CreationDateTime.ToString());
            Assert.AreEqual(persistedKeysPair.EnableStartDate, false);
            Assert.AreEqual(persistedKeysPair.EnableEndDate, false);
            Assert.AreEqual(persistedKeysPair.EnableExpirationDate, true);
            Assert.AreEqual(persistedKeysPair.ExpirationDate, DateTime.Today.AddDays(3));
        }
 public IHttpActionResult CreateSecurityKey(CreateUserGeneratedSecurityKeyPair command)
 {
     try
     {
         if (log.IsDebugEnabled)
         {
             log.Debug("CreateSecurityKey Call Recevied, parameters:");
         }
         return(Ok(_securityKeysApplicationService.CreateUserGeneratedKey(command, HeaderParamUtility.GetApikey(Request))));
     }
     catch (InvalidOperationException exception)
     {
         if (log.IsErrorEnabled)
         {
             log.Error("CreateSecurityKey Call Exception ", exception);
         }
         return(BadRequest(exception.Message));
     }
     catch (InvalidCredentialException exception)
     {
         if (log.IsErrorEnabled)
         {
             log.Error("CreateSecurityKey Call Exception ", exception);
         }
         return(BadRequest(exception.Message));
     }
     catch (InvalidDataException exception)
     {
         if (log.IsErrorEnabled)
         {
             log.Error("CreateSecurityKey Call Exception ", exception);
         }
         return(BadRequest(exception.Message));
     }
     catch (Exception exception)
     {
         if (log.IsErrorEnabled)
         {
             log.Error("CreateSecurityKey Call Exception ", exception);
         }
         return(InternalServerError());
     }
 }
        public void CreateUserGeneratedSecurityPair_IfAllRequiredParametersAreProvided_VerifyKeyPairIsReturnedAndPersistedSuccessfully()
        {
            ISecurityKeysApplicationService registrationService =
                (ISecurityKeysApplicationService)_applicationContext["SecurityKeysApplicationService"];
            var                systemGeneratedKey     = registrationService.CreateSystemGeneratedKey(1);
            List <string>      securityKeyPermissions = new List <string>();
            IList <Permission> permissions            = _permissionRepository.GetAllPermissions();

            for (int i = 0; i < permissions.Count; i++)
            {
                securityKeyPermissions.Add(permissions[i].PermissionId);
            }
            CreateUserGeneratedSecurityKeyPair command =
                new CreateUserGeneratedSecurityKeyPair(securityKeyPermissions,
                                                       DateTime.Today.AddDays(1).ToString(), DateTime.Today.AddDays(-2).ToString(),
                                                       DateTime.Today.AddDays(-1).ToString(), true, true, true, "123");
            var keys = registrationService.CreateUserGeneratedKey(command, systemGeneratedKey.Item1.Value);

            Assert.NotNull(keys);
            Assert.IsNotNullOrEmpty(keys.ApiKey);
            Assert.IsNotNullOrEmpty(keys.SecretKey);
            SecurityKeysPair persistedKeysPair = _securityKeysRepository.GetByApiKey(keys.ApiKey);

            Assert.NotNull(persistedKeysPair);
            Assert.AreEqual(persistedKeysPair.UserId, 1);
            Assert.AreEqual(persistedKeysPair.SystemGenerated, false);
            Assert.AreEqual(persistedKeysPair.ApiKey, keys.ApiKey);
            Assert.AreEqual(persistedKeysPair.SecretKey, keys.SecretKey);
            Assert.IsNotNullOrEmpty(persistedKeysPair.KeyDescription);
            Assert.IsNotNullOrEmpty(persistedKeysPair.CreationDateTime.ToString());
            Assert.AreEqual(persistedKeysPair.EnableStartDate, true);
            Assert.AreEqual(persistedKeysPair.EnableEndDate, true);
            Assert.AreEqual(persistedKeysPair.EnableExpirationDate, true);
            Assert.AreEqual(persistedKeysPair.ExpirationDate, DateTime.Today.AddDays(1));
            Assert.AreEqual(persistedKeysPair.StartDate, DateTime.Today.AddDays(-2));
            Assert.AreEqual(persistedKeysPair.EndDate, DateTime.Today.AddDays(-1));
            ValidatePermissions(persistedKeysPair, securityKeyPermissions);
        }
 /// <summary>
 /// create new key pair user generated
 /// </summary>
 /// <param name="command"></param>
 /// <param name="apiKey"></param>
 /// <returns></returns>
 public SecurityKeyPair CreateUserGeneratedKey(CreateUserGeneratedSecurityKeyPair command, string apiKey)
 {
     if (command.Validate())
     {
         //get security key pair for user name
         var getSecurityKeyPair = _securityKeysRepository.GetByApiKey(apiKey);
         if (getSecurityKeyPair == null)
         {
             throw new ArgumentException("Invalid api key");
         }
         var keys = _securityKeysGenerationService.GenerateNewSecurityKeys();
         List <SecurityKeysPermission>          permissions = new List <SecurityKeysPermission>();
         SecurityKeyPermissionsRepresentation[] securityKeyPermissionsRepresentations = this.GetPermissions();
         foreach (SecurityKeyPermissionsRepresentation securityKeyPermissionsRepresentation in securityKeyPermissionsRepresentations)
         {
             // Check which permissions have been sent from the frontend that must be included with this User Generated Key
             if (command.SecurityKeyPermissions.Contains(securityKeyPermissionsRepresentation.Permission.PermissionId))
             {
                 securityKeyPermissionsRepresentation.Allowed = true;
             }
         }
         for (int i = 0; i < securityKeyPermissionsRepresentations.Length; i++)
         {
             permissions.Add(new SecurityKeysPermission(keys.Item1, securityKeyPermissionsRepresentations[i].Permission,
                                                        securityKeyPermissionsRepresentations[i].Allowed));
         }
         var keysPair = SecurityKeysPairFactory.UserGeneratedSecurityPair(getSecurityKeyPair.UserId,
                                                                          command.KeyDescription,
                                                                          keys.Item1, keys.Item2, command.EnableExpirationDate, command.ExpirationDateTime,
                                                                          command.EnableStartDate, command.StartDateTime, command.EnableEndDate, command.EndDateTime,
                                                                          permissions,
                                                                          _securityKeysRepository);
         _persistRepository.SaveUpdate(keysPair);
         return(new SecurityKeyPair(keys.Item1, keys.Item2));
     }
     throw new InvalidOperationException("Please assign atleast one permission.");
 }
        public void CreateUserGeneratedSecurityPair_IfKeyDescriptionAlreadyExists_ArgumentExceptionShouldBeRaised()
        {
            ISecurityKeysApplicationService registrationService =
                (ISecurityKeysApplicationService)_applicationContext["SecurityKeysApplicationService"];
            var                systemGeneratedKey     = registrationService.CreateSystemGeneratedKey(1);
            List <string>      securityKeyPermissions = new List <string>();
            IList <Permission> permissions            = _permissionRepository.GetAllPermissions();

            for (int i = 0; i < permissions.Count; i++)
            {
                securityKeyPermissions.Add(permissions[i].PermissionId);
            }
            CreateUserGeneratedSecurityKeyPair command =
                new CreateUserGeneratedSecurityKeyPair(securityKeyPermissions,
                                                       DateTime.Today.AddDays(1).ToString(), DateTime.Today.AddDays(-2).ToString(),
                                                       DateTime.Today.AddDays(-1).ToString(), true, true, true, "123");
            var keys = registrationService.CreateUserGeneratedKey(command, systemGeneratedKey.Item1.Value);

            command =
                new CreateUserGeneratedSecurityKeyPair(securityKeyPermissions,
                                                       DateTime.Today.AddDays(1).ToString(), DateTime.Today.AddDays(-2).ToString(),
                                                       DateTime.Today.AddDays(-1).ToString(), true, true, true, "123");
            var keys1 = registrationService.CreateUserGeneratedKey(command, systemGeneratedKey.Item1.Value);
        }
        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);
        }