Example #1
0
        public void Post_Exception()
        {
            const string email         = "email";
            const string password      = "******";
            const string exceptionText = "exceptionText";

            //arrange
            var model = new SigninModel
            {
                EmailAddress = email,
                Password     = password
            };

            _signinHelper.Setup(x => x.Signin(email, password)).Throws(new Exception(exceptionText));

            //act
            var result = _signinController.Post(model);

            //assert
            AssertWithMessage.IsOfType(result, typeof(ObjectResult));

            var response = result as ObjectResult;

            AssertWithMessage.AreEqual(response.StatusCode, (int)HttpStatusCode.InternalServerError, "status code");
            AssertWithMessage.AreEqual(response.Value.ToString(), $"Unhandled exception occurred while attempting to sign in: {exceptionText}", "exception message");
        }
Example #2
0
        public void Post_UnauthorizedAccessException()
        {
            const string email         = "email";
            const string password      = "******";
            const string exceptionText = "exceptionText";

            //arrange
            var model = new SigninModel
            {
                EmailAddress = email,
                Password     = password
            };

            _signinHelper.Setup(x => x.Signin(email, password)).Throws(new UnauthorizedAccessException(exceptionText));

            //act
            var result = _signinController.Post(model);

            //assert
            AssertWithMessage.IsOfType(result, typeof(ObjectResult));

            var response = result as ObjectResult;

            AssertWithMessage.AreEqual(response.StatusCode, (int)HttpStatusCode.Unauthorized, "status code");
            AssertWithMessage.AreEqual(response.Value.ToString(), exceptionText, "exception message");
        }
        public void Put_Exception()
        {
            Guid         apiToken = new Guid("35b22f54-965c-4811-837a-feaafa728ef3");
            const string password = "******";

            var updateModel = new UserUpdateModel
            {
                EmailAddress = "*****@*****.**"
            };

            const string exceptionMessage = "exceptionMessage";

            //arrange
            _webPageHelper.Setup(x => x.UpdateUserInfo(It.IsAny <Guid>(), It.IsAny <string>(), It.IsAny <UserUpdateModel>())).Throws(new Exception(exceptionMessage));

            //act
            var result = _webPageController.Put(apiToken.ToString(), password, updateModel);

            //assert
            AssertWithMessage.IsOfType(result, typeof(ObjectResult));
            var response = result as ObjectResult;

            AssertWithMessage.AreEqual(response.StatusCode, (int)HttpStatusCode.InternalServerError, "status code");
            AssertWithMessage.AreEqual(response.Value.ToString(), exceptionMessage, "exception message");
        }
        public void Get_Default()
        {
            //arrange /act
            var result = _defaultController.Default();

            //assert
            AssertWithMessage.IsOfType(result, typeof(OkResult));
        }
        public void Options_Ok()
        {
            //arrange / act
            var result = _webPageController.Options();

            //assert

            AssertWithMessage.IsOfType(result, typeof(OkResult));
            var response = result as OkResult;

            AssertWithMessage.AreEqual(response.StatusCode, (int)HttpStatusCode.OK);
        }
        public void Post_Ok()
        {
            const string authToken  = "testAuthToken";
            const string text       = "text";
            const int    occurances = 1;
            const byte   severity   = 2;
            const string word       = "word";
            const string wordType   = "wordType";
            const byte   wordTypeId = 3;


            User user = new User
            {
                CanCallApi = true
            };

            //arrange
            _mainHelper.Setup(x => x.CheckAuthorization(authToken)).Returns(user);
            _mainHelper.Setup(x => x.CheckCharacterLimit(text)).Returns(true);
            _mainHelper.Setup(x => x.FindMatches(text, user)).Returns(new List <ReturnModel>
            {
                new ReturnModel
                {
                    Occurrences = occurances,
                    Severity    = severity,
                    Word        = word,
                    WordType    = wordType,
                    WordTypeId  = wordTypeId
                }
            });

            //act
            var result = _defaultController.Post(text, authToken);

            //assert
            AssertWithMessage.IsOfType(result, typeof(OkObjectResult));
            var response = result as OkObjectResult;

            AssertWithMessage.IsOfType(response.Value, typeof(List <ReturnModel>));
            var list = response.Value as List <ReturnModel>;

            AssertWithMessage.AreEqual(list.Count, 1, "number of items in return model");

            var value = ((result as OkObjectResult).Value as List <ReturnModel>).First();

            AssertWithMessage.AreEqual(value.Occurrences, occurances, nameof(value.Occurrences));
            AssertWithMessage.AreEqual(value.Severity, severity, nameof(value.Severity));
            AssertWithMessage.AreEqual(value.Word, word, nameof(value.Word));
            AssertWithMessage.AreEqual(value.WordType, wordType, nameof(value.WordType));
            AssertWithMessage.AreEqual(value.WordTypeId, wordTypeId, nameof(value.WordTypeId));
        }
        public void Post_GoodPassword()
        {
            //arrange
            var model = new UserSignupModel
            {
                Password = "******"
            };

            //act
            var result = _webPageController.Post(model);

            //assert
            AssertWithMessage.IsOfType(result, typeof(OkObjectResult));
        }
        public void Get_BadApiToken()
        {
            const string apiToken = "badGuid";

            //arrange / act
            var result = _webPageController.Get(apiToken);

            //assert
            AssertWithMessage.IsOfType(result, typeof(ObjectResult));
            var response = result as ObjectResult;

            AssertWithMessage.AreEqual(response.StatusCode, (int)HttpStatusCode.BadRequest);
            AssertWithMessage.AreEqual(response.Value.ToString(), $"Could not parse API token passed in into a GUID.  API token: {apiToken}", "exception message");
        }
        public void Post_BadRequest()
        {
            const string authToken = "testAuthToken";
            const string text      = "test text";

            //arrange
            _mainHelper.Setup(x => x.CheckAuthorization(authToken)).Throws(new Exception("test exception"));
            _mainHelper.Setup(x => x.CheckCharacterLimit(text)).Returns(true);

            //act
            var result = _defaultController.Post(text, authToken);

            //assert
            AssertWithMessage.IsOfType(result, typeof(BadRequestResult));
        }
        public void Post_BadAuthentication()
        {
            const string authToken = "testAuthToken";
            const string text      = "test text";

            //arrange
            _mainHelper.Setup(x => x.CheckAuthorization(authToken)).Returns(default(User));
            _mainHelper.Setup(x => x.CheckCharacterLimit(text)).Returns(true);

            //act
            var result = _defaultController.Post(text, authToken);

            //assert
            AssertWithMessage.IsOfType(result, typeof(UnauthorizedResult));
        }
        public void Post_BadPassword()
        {
            //arrange
            var model = new UserSignupModel
            {
                Password = "******"
            };

            //act
            var result = _webPageController.Post(model);

            //assert
            AssertWithMessage.IsOfType(result, typeof(ObjectResult));
            var response = result as ObjectResult;

            AssertWithMessage.AreEqual(response.StatusCode, (int)HttpStatusCode.NotAcceptable, "status code");
            AssertWithMessage.AreEqual(response.Value.ToString(), "Password must be at least 8 characters", "exception message");
        }
        public void Put_Null()
        {
            Guid         apiToken = new Guid("35b22f54-965c-4811-837a-feaafa728ef3");
            const string password = "******";

            var updateModel = new UserUpdateModel
            {
                EmailAddress = "*****@*****.**"
            };

            //arrange
            _webPageHelper.Setup(x => x.UpdateUserInfo(It.IsAny <Guid>(), It.IsAny <string>(), It.IsAny <UserUpdateModel>())).Returns(default(UserReturnModel));

            //act
            var result = _webPageController.Put(apiToken.ToString(), password, updateModel);

            //assert
            AssertWithMessage.IsOfType(result, typeof(NotFoundResult));
        }
        public void Post_OverCharacterLimit()
        {
            const string text           = "test text";
            const int    characterLimit = 5;

            //arrange
            _mainHelper.Setup(x => x.CheckCharacterLimit(text)).Returns(false);
            _appSettings.SetupGet(x => x.CharacterLimit).Returns(characterLimit);

            //act
            var result = _defaultController.Post(text, string.Empty);

            AssertWithMessage.IsOfType(result, typeof(BadRequestObjectResult));

            var response = result as BadRequestObjectResult;

            //assert
            AssertWithMessage.AreEqual(response.Value.ToString(), $"Text passed in is longer than the {characterLimit} character limit.  Text length: {text.Length}.", "response value");
        }
        public void Get_Ok()
        {
            const bool    accountLocked = false;
            const string  accountType   = "accountType";
            Guid          apiToken      = new Guid("35b22f54-965c-4811-837a-feaafa728ef3");
            const int     callsPerMonth = 100;
            const string  email         = "email";
            const string  firstName     = "firstName";
            const string  lastName      = "lastName";
            const decimal pricePerMonth = 150;

            //arrange
            _webPageHelper.Setup(x => x.GetUserInfo(apiToken)).Returns(new UserReturnModel
            {
                AccountLocked = accountLocked,
                AccountType   = accountType,
                ApiToken      = apiToken,
                CallsPerMonth = callsPerMonth,
                Email         = email,
                FirstName     = firstName,
                LastName      = lastName,
                PricePerMonth = pricePerMonth
            });

            //act
            var result = _webPageController.Get(apiToken.ToString());

            //assert
            AssertWithMessage.IsOfType(result, typeof(OkObjectResult));
            var response = result as OkObjectResult;

            AssertWithMessage.IsOfType(response.Value, typeof(UserReturnModel));
            var value = response.Value as UserReturnModel;

            AssertWithMessage.AreEqual(value.AccountLocked, accountLocked, nameof(value.AccountLocked));
            AssertWithMessage.AreEqual(value.AccountType, accountType, nameof(value.AccountType));
            AssertWithMessage.AreEqual(value.ApiToken, apiToken, nameof(value.ApiToken));
            AssertWithMessage.AreEqual(value.CallsPerMonth, callsPerMonth, nameof(value.CallsPerMonth));
            AssertWithMessage.AreEqual(value.Email, email, nameof(value.Email));
            AssertWithMessage.AreEqual(value.FirstName, firstName, nameof(value.FirstName));
            AssertWithMessage.AreEqual(value.LastName, lastName, nameof(value.LastName));
            AssertWithMessage.AreEqual(value.PricePerMonth, pricePerMonth, nameof(value.PricePerMonth));
        }
        public void Put_BadApiToken()
        {
            const string apiToken = "badGuid";
            const string password = "******";

            var updateModel = new UserUpdateModel
            {
                EmailAddress = "*****@*****.**"
            };

            //arrange / act
            var result = _webPageController.Put(apiToken, password, updateModel);

            //assert
            AssertWithMessage.IsOfType(result, typeof(ObjectResult));
            var response = result as ObjectResult;

            AssertWithMessage.AreEqual(response.StatusCode, (int)HttpStatusCode.BadRequest, "status code");
            AssertWithMessage.AreEqual(response.Value.ToString(), $"Could not parse API token passed in into a GUID.  API token: {apiToken}", "exception message");
        }
Example #16
0
        public void Post_UserNotFoundException()
        {
            const string email         = "email";
            const string password      = "******";
            const string exceptionText = "exceptionText";

            //arrange
            var model = new SigninModel
            {
                EmailAddress = email,
                Password     = password
            };

            _signinHelper.Setup(x => x.Signin(email, password)).Throws(new UserNotFoundException(exceptionText));

            //act
            var result = _signinController.Post(model);

            //assert
            AssertWithMessage.IsOfType(result, typeof(BadRequestObjectResult));
        }
        public void Post_FirstOfMonth()
        {
            const string text      = "test text";
            const string authToken = "testAuthToken";

            var user = new User
            {
                CanCallApi = true
            };

            //arrange
            _mainHelper.Setup(x => x.CheckCharacterLimit(text)).Returns(true);
            _mainHelper.Setup(x => x.CheckAuthorization(authToken)).Returns(user);
            _userManager.Setup(x => x.CheckLockAccount(It.IsAny <User>())).Callback(() => user.CanCallApi = false);
            _userManager.Setup(x => x.CheckUnlockAccount(It.IsAny <User>())).Returns(true);

            //act
            var result = _defaultController.Post(text, authToken);

            //assert
            AssertWithMessage.IsOfType(result, typeof(OkObjectResult));
        }
        public void Post_CannotCallApi()
        {
            const string text      = "test text";
            const string authToken = "testAuthToken";

            //arrange
            _mainHelper.Setup(x => x.CheckCharacterLimit(text)).Returns(true);
            _mainHelper.Setup(x => x.CheckAuthorization(authToken)).Returns(new User
            {
                CanCallApi = false
            });
            _userManager.Setup(x => x.CheckUnlockAccount(It.IsAny <User>())).Returns(false);

            //act
            var result = _defaultController.Post(text, authToken);

            //assert
            AssertWithMessage.IsOfType(result, typeof(ObjectResult));

            var response = result as ObjectResult;

            AssertWithMessage.AreEqual(response.StatusCode, (int)HttpStatusCode.PaymentRequired, "status code");
            AssertWithMessage.AreEqual(response.Value.ToString(), "You have reached your call limit for the month.  Please contact support for more information", "response value");
        }
Example #19
0
        public void Post_Ok()
        {
            const string  email             = "email";
            const string  password          = "******";
            bool          accountLocked     = true;
            string        accountType       = "accountType";
            Guid          apiToken          = new Guid("650d3ed8-1c78-4cbe-90ee-f0490e267923");
            const string  creditCardNumber  = "creditCardNumber";
            const string  firstName         = "firstName";
            const string  lastName          = "lastName";
            const decimal pricePerMonth     = 23.45m;
            const bool    racism            = true;
            const byte    racismSeverity    = 5;
            const bool    sexism            = true;
            const byte    sexismSeverity    = 6;
            const bool    vulgarity         = true;
            const byte    vulgaritySeverity = 7;
            int           callsPerMonth     = 77;
            int           callsThisMonth    = 88;

            UserReturnModel returnValue = new UserReturnModel
            {
                AccountLocked     = accountLocked,
                AccountType       = accountType,
                ApiToken          = apiToken,
                CallsPerMonth     = callsPerMonth,
                CallsThisMonth    = callsThisMonth,
                CreditCardNumber  = creditCardNumber,
                Email             = email,
                FirstName         = firstName,
                LastName          = lastName,
                PricePerMonth     = pricePerMonth,
                Racism            = racism,
                RacismSeverity    = racismSeverity,
                Sexism            = sexism,
                SexismSeverity    = sexismSeverity,
                Vulgarity         = vulgarity,
                VulgaritySeverity = vulgaritySeverity
            };

            //arrange
            var model = new SigninModel
            {
                EmailAddress = email,
                Password     = password
            };

            _signinHelper.Setup(x => x.Signin(email, password)).Returns(returnValue);

            //act
            var result = _signinController.Post(model);

            //assert
            AssertWithMessage.IsOfType(result, typeof(OkObjectResult));

            var response = result as OkObjectResult;

            AssertWithMessage.IsOfType(response.Value, typeof(UserReturnModel));

            var returnModel = response.Value as UserReturnModel;

            AssertWithMessage.AreEqual(returnModel.AccountLocked, accountLocked, nameof(returnModel.AccountLocked));
            AssertWithMessage.AreEqual(returnModel.AccountType, accountType, nameof(returnModel.AccountType));
            AssertWithMessage.AreEqual(returnModel.ApiToken, apiToken, nameof(returnModel.ApiToken));
            AssertWithMessage.AreEqual(returnModel.CallsPerMonth, callsPerMonth, nameof(returnModel.CallsPerMonth));
            AssertWithMessage.AreEqual(returnModel.CallsThisMonth, callsThisMonth, nameof(returnModel.CallsThisMonth));
            AssertWithMessage.AreEqual(returnModel.CreditCardNumber, creditCardNumber, nameof(returnModel.CreditCardNumber));
            AssertWithMessage.AreEqual(returnModel.Email, email, nameof(returnModel.Email));
            AssertWithMessage.AreEqual(returnModel.FirstName, firstName, nameof(returnModel.FirstName));
            AssertWithMessage.AreEqual(returnModel.LastName, lastName, nameof(returnModel.LastName));
            AssertWithMessage.AreEqual(returnModel.PricePerMonth, pricePerMonth, nameof(returnModel.PricePerMonth));
            AssertWithMessage.AreEqual(returnModel.Racism, racism, nameof(returnModel.Racism));
            AssertWithMessage.AreEqual(returnModel.RacismSeverity, racismSeverity, nameof(returnModel.RacismSeverity));
            AssertWithMessage.AreEqual(returnModel.Sexism, sexism, nameof(returnModel.Sexism));
            AssertWithMessage.AreEqual(returnModel.SexismSeverity, sexismSeverity, nameof(returnModel.SexismSeverity));
            AssertWithMessage.AreEqual(returnModel.Vulgarity, vulgarity, nameof(returnModel.Vulgarity));
            AssertWithMessage.AreEqual(returnModel.VulgaritySeverity, vulgaritySeverity, nameof(returnModel.VulgaritySeverity));
        }
        public void Put_Ok()
        {
            Guid          apiToken          = new Guid("35b22f54-965c-4811-837a-feaafa728ef3");
            const string  creditCardNumber  = "creditCardNumber";
            const string  emailAddress      = "*****@*****.**";
            const string  firstName         = "firstName";
            const string  lastName          = "lastName";
            const int     pricingTierId     = (byte)StaticData.StaticPricingTier.Standard;
            const string  accountType       = "Standard";
            const string  password          = "******";
            const bool    racism            = true;
            const bool    sexism            = true;
            const bool    vulgarity         = true;
            const bool    accountLocked     = false;
            const int     callsPerMonth     = 100;
            const int     callsThisMonth    = 50;
            const decimal pricePerMonth     = 50;
            const byte    racismSeverity    = 4;
            const byte    sexismSeverity    = 5;
            const byte    vulgaritySeverity = 6;

            var userReturnModel = new UserReturnModel
            {
                AccountLocked     = accountLocked,
                AccountType       = accountType,
                ApiToken          = apiToken,
                CallsPerMonth     = callsPerMonth,
                CallsThisMonth    = callsThisMonth,
                CreditCardNumber  = creditCardNumber,
                Email             = emailAddress,
                FirstName         = firstName,
                LastName          = lastName,
                PricePerMonth     = pricePerMonth,
                Racism            = racism,
                RacismSeverity    = racismSeverity,
                Sexism            = sexism,
                SexismSeverity    = sexismSeverity,
                Vulgarity         = vulgarity,
                VulgaritySeverity = vulgaritySeverity,
            };

            var userUpdateModel = new UserUpdateModel
            {
                CreditCardNumber = creditCardNumber,
                EmailAddress     = emailAddress,
                FirstName        = firstName,
                LastName         = lastName,
                PricingTierId    = pricingTierId,
                Racism           = racism,
                Sexism           = sexism,
                Vulgarity        = vulgarity
            };

            //arrange
            _webPageHelper.Setup(x => x.UpdateUserInfo(It.IsAny <Guid>(), It.IsAny <string>(), It.IsAny <UserUpdateModel>())).Returns(userReturnModel);

            //act
            var result = _webPageController.Put(apiToken.ToString(), password, userUpdateModel);

            //assert
            AssertWithMessage.IsOfType(result, typeof(OkObjectResult));
            var response = result as OkObjectResult;

            AssertWithMessage.IsOfType(response.Value, typeof(UserReturnModel));
            var value = response.Value as UserReturnModel;

            AssertWithMessage.AreEqual(value.AccountLocked, accountLocked, nameof(value.AccountLocked));
            AssertWithMessage.AreEqual(value.AccountType, accountType, nameof(value.AccountType));
            AssertWithMessage.AreEqual(value.ApiToken, apiToken, nameof(value.ApiToken));
            AssertWithMessage.AreEqual(value.CallsPerMonth, callsPerMonth, nameof(value.CallsPerMonth));
            AssertWithMessage.AreEqual(value.CallsThisMonth, callsThisMonth, nameof(value.CallsThisMonth));
            AssertWithMessage.AreEqual(value.CreditCardNumber, creditCardNumber, nameof(value.CreditCardNumber));
            AssertWithMessage.AreEqual(value.Email, emailAddress, nameof(value.Email));
            AssertWithMessage.AreEqual(value.FirstName, firstName, nameof(value.FirstName));
            AssertWithMessage.AreEqual(value.LastName, lastName, nameof(value.LastName));
            AssertWithMessage.AreEqual(value.PricePerMonth, pricePerMonth, nameof(value.PricePerMonth));
            AssertWithMessage.AreEqual(value.Racism, racism, nameof(value.Racism));
            AssertWithMessage.AreEqual(value.RacismSeverity, racismSeverity, nameof(value.RacismSeverity));
            AssertWithMessage.AreEqual(value.Sexism, sexism, nameof(value.Sexism));
            AssertWithMessage.AreEqual(value.SexismSeverity, sexismSeverity, nameof(value.SexismSeverity));
            AssertWithMessage.AreEqual(value.Vulgarity, vulgarity, nameof(value.Vulgarity));
            AssertWithMessage.AreEqual(value.VulgaritySeverity, vulgaritySeverity, nameof(value.VulgaritySeverity));
        }