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"); }
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"); }
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"); }
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)); }