public void ShouldThrowExceptionWhenInvalidArgumentIsPassedIn() { // Arrange string[] args = new string[3] { "33", "/m", "sdflkjdsfs" }; // Act ArgumentsModel argumentsModel = ArgumentsHandler.CreateArgumentsModelFromUserInput(args); }
public void ShouldThrowExceptionIfNumberIsNotFirstArgument() { // Arrange string[] args = new string[2] { "/m", "33" }; // Act ArgumentsModel argumentsModel = ArgumentsHandler.CreateArgumentsModelFromUserInput(args); }
public void ShouldThrowExceptionWhenTriviaFactIsProvidedButNumberIsNot() { // Arrange string[] args = new string[1] { "/t" }; // Act ArgumentsModel argumentsModel = ArgumentsHandler.CreateArgumentsModelFromUserInput(args); // Assert bool modelIsValid = ArgumentsHandler.ValidateArgumentsModel(argumentsModel); }
public void ShouldThrowExceptionWhenBothMathAndTriviaFactsAreRequested() { // Arrange string[] args = new string[2] { "/m", "/t" }; // Act ArgumentsModel argumentsModel = ArgumentsHandler.CreateArgumentsModelFromUserInput(args); // Assert bool modelIsValid = ArgumentsHandler.ValidateArgumentsModel(argumentsModel); }
public void ShouldThrowExceptionWhenBothNumberAndRandomNumberAreRequested() { // Arrange string[] args = new string[2] { "33", "/r" }; // Act ArgumentsModel argumentsModel = ArgumentsHandler.CreateArgumentsModelFromUserInput(args); // Assert bool modelIsValid = ArgumentsHandler.ValidateArgumentsModel(argumentsModel); }
public void ShouldConsiderModelValidWithRandomNumberAndTriviaFact() { // Arrange string[] args = new string[2] { "/r", "/t" }; ArgumentsModel argumentsModel = ArgumentsHandler.CreateArgumentsModelFromUserInput(args); // Act bool modelIsValid = ArgumentsHandler.ValidateArgumentsModel(argumentsModel); // Assert Assert.IsTrue(modelIsValid); }
public void ShouldCreateModelWithSingleIntegerArgument() { // Arrange string[] args = new string[1] { "33" }; // Act ArgumentsModel argumentsModel = ArgumentsHandler.CreateArgumentsModelFromUserInput(args); // Assert Assert.AreEqual(33, argumentsModel.Number); Assert.IsTrue(argumentsModel.NumberProvided); }
public void ShouldCreateModelWithAllPossibleArguments() { // Arrange string[] args = new string[4] { "33", "/r", "/m", "/t" }; // Act ArgumentsModel argumentsModel = ArgumentsHandler.CreateArgumentsModelFromUserInput(args); // Assert Assert.AreEqual(33, argumentsModel.Number); Assert.IsTrue(argumentsModel.RandomNumber); Assert.IsTrue(argumentsModel.MathFact); Assert.IsTrue(argumentsModel.TriviaFact); Assert.IsTrue(argumentsModel.NumberProvided); }
public static void Main(string[] args) { try { // Make sure the arguments are properly split apart before creating the argument model. string[] splitArgs = ArgumentsHandler.BreakApartArguments(args); // Create arguments model from passed in arguments. ArgumentsModel argumentsModel = ArgumentsHandler.CreateArgumentsModelFromUserInput(splitArgs); // Validate the arguments model before making the API request. ArgumentsHandler.ValidateArgumentsModel(argumentsModel); // Notify the user that we're about to make an API request. Console.WriteLine(OutputConstants.API_LOADING); // Make the API request. NumfactsAPIClient numfactsAPIClient = new NumfactsAPIClient( new RestClient( NumfactsAPIClient.BuildAPIEndpointUrl(argumentsModel) ) ); APIResponseModel apiResponseModel = numfactsAPIClient.GetNumFact(); // Display the results to the user. if (apiResponseModel.Found) { Console.WriteLine(OutputConstants.FACT_DISPLAY_TEMPLATE, MathOrTriviaFactPrefix(apiResponseModel), apiResponseModel.Number, apiResponseModel.Text); } else { throw new Exception(ErrorConstants.NO_FACT_FOUND + apiResponseModel.Number); } } catch (Exception ex) { // Display the error to the user. Console.WriteLine(ex.Message); } }