/// <summary> /// Get jokes by specified search term /// </summary> /// <param name="term">Search term</param> /// <returns>Jokes that match the search term with the search term hihglighted and a joke length that specifies the length of the joke</returns> public JokesModels GetJokesByTerm(string term) { var jokeRep = _repFactory.GetDataRepository <IJokeRepository>(); JokesModels toReturn = jokeRep.GetJokesByTerm(term); if (toReturn.Results != null) { foreach (var item in toReturn.Results) { item.JokeLength = _helper.GetJokeLength(item.Joke); } } return(toReturn); }
public void JokesByTerm_ReturnsNull_WhenNoJokesWereFound() { var jokeList = new List <JokeModel>(); var jokeModels = new JokesModels { Results = jokeList }; var factory = new Mock <IBusinessFactory>(); factory.Setup(src => src.GetBusinessClass <IJokeBusiness>().GetJokesByTerm(It.IsAny <string>())).Returns(jokeModels); var controller = new JokesController(factory.Object); var returns = controller.JokesByTerm("this") as NegotiatedContentResult <JokesModels>; Assert.IsNull(returns); }
public void GetJokesByTerm_Returns_JokesModels_Type() { //Arrange var term = "red"; var mockJokeRepository = new Mock <IJokeRepository>(); mockJokeRepository.Setup(x => x.GetJokesByTerm(It.IsAny <string>())).Returns(new JokesModels()); var mockRepositoryFactory = new Mock <IRepositoryFactory>(); mockRepositoryFactory.Setup(x => x.GetDataRepository <IJokeRepository>()).Returns(mockJokeRepository.Object); var business = new JokeBusiness(mockRepositoryFactory.Object, new Shared.Utilities.JokesHelper()); //Act JokesModels result = business.GetJokesByTerm(term); //Assert Assert.IsInstanceOfType(result, typeof(JokesModels)); }
public void JokesByTerm_ReturnsJokeModels_WhenItHasJokes() { var jokeModel = new JokeModel { Joke = "this is not a joke" }; var jokeList = new List <JokeModel> { jokeModel }; var jokeModels = new JokesModels { Results = jokeList }; var factory = new Mock <IBusinessFactory>(); factory.Setup(src => src.GetBusinessClass <IJokeBusiness>().GetJokesByTerm(It.IsAny <string>())).Returns(jokeModels); var controller = new JokesController(factory.Object); var returns = controller.JokesByTerm("this") as OkNegotiatedContentResult <JokesModels>; Assert.AreEqual(returns.Content, jokeModels); }
public void GetJokesByTerm_ReturnsNull_WhenJokesModelsResults_AreNull() { //Arrange var term = "red"; List <JokeModel> results = null; var mockJokeRepository = new Mock <IJokeRepository>(); mockJokeRepository.Setup(x => x.GetJokesByTerm(It.IsAny <string>())).Returns(new JokesModels() { Results = results, SearchTerm = "test" }); var mockRepositoryFactory = new Mock <IRepositoryFactory>(); mockRepositoryFactory.Setup(x => x.GetDataRepository <IJokeRepository>()).Returns(mockJokeRepository.Object); var mockHighlighter = new Mock <IHighlighter>(); var business = new JokeBusiness(mockRepositoryFactory.Object, new Shared.Utilities.JokesHelper()); //Act JokesModels result = business.GetJokesByTerm(term); //Assert Assert.IsNull(result.Results); }
public void GetJokesByTerm_ReturnsCorrectNumberOf_JokesModels() { //Arrange var term = "red"; var results = new List <JokeModel> { new JokeModel() }; var mockJokeRepository = new Mock <IJokeRepository>(); mockJokeRepository.Setup(x => x.GetJokesByTerm(It.IsAny <string>())).Returns(new JokesModels() { Results = results, SearchTerm = "test" }); var mockRepositoryFactory = new Mock <IRepositoryFactory>(); mockRepositoryFactory.Setup(x => x.GetDataRepository <IJokeRepository>()).Returns(mockJokeRepository.Object); var business = new JokeBusiness(mockRepositoryFactory.Object, new Shared.Utilities.JokesHelper()); //Act JokesModels result = business.GetJokesByTerm(term); //Assert Assert.AreEqual(result.Results.Count, 1); }