/// <summary> /// The entry point for the application. /// </summary> /// <param name="args"> A list of command line arguments</param> static void Main(string[] args) { ICoxIntvApiService apiService = new CoxIntvApiService(new Uri(BaseUriString)); ISubmitAnswerService submitAnswerService = new SubmitAnswerService(apiService); Console.WriteLine("Submitting new Answer... "); Task <AnswerServiceResponse> answerTask = submitAnswerService.SubmitNewAnswer(); answerTask.Wait(); AnswerServiceResponse response = answerTask.Result; Console.WriteLine("\n---------- Response ----------"); Console.WriteLine("Success: " + response.Success); Console.WriteLine("Message: " + response.Message); Console.WriteLine("TotalMilliseconds: " + response.TotalMilliseconds + "(ms)"); Console.WriteLine("\n---------- Request ----------"); Console.WriteLine("AnswerServiceResponse " + response.JsonRequest); }
public void SubmitNewAnswer_ValidAnswer() { // Arrange ISubmitAnswerService answerService = new SubmitAnswerService(ApiService.Object); // Act Task <AnswerServiceResponse> answerTask = null; try { answerTask = answerService.SubmitNewAnswer(); answerTask.Wait(); } catch (Exception) { Assert.Fail(); } // Assert ApiService.Verify(x => x.CreateDataSet(), Times.Once()); ApiService.Verify(x => x.GetVehicles(It.IsAny <string>()), Times.Once()); ApiService.Verify(x => x.GetDealer(It.IsAny <string>(), It.IsAny <int>()), Times.Exactly(ExpectedAnswer.Dealers.Count)); int numVehcles = 0; foreach (DtoDealer d in ExpectedAnswer.Dealers) { numVehcles += d.Vehicles.Count; } ApiService.Verify(x => x.GetVehicle(It.IsAny <string>(), It.IsAny <int>()), Times.Exactly(numVehcles)); Assert.IsNotNull(answerTask); Assert.IsNotNull(answerTask.Result); Assert.IsNull(answerTask.Exception); AnswerServiceResponse actualResponse = answerTask.Result; Answer actualAnswer = JsonConvert.DeserializeObject <Answer>(actualResponse.JsonRequest); ValidateDealers(ExpectedAnswer.Dealers, actualAnswer.Dealers); Assert.AreEqual(ExpectedResponse.Message, actualResponse.Message); Assert.AreEqual(ExpectedResponse.Success, actualResponse.Success); Assert.AreEqual(ExpectedResponse.TotalMilliseconds, actualResponse.TotalMilliseconds); }
public void TestInitialize() { //Set up Expected DataSet ExpectedDataSet = new DataSet { DatasetId = "datasetId" }; //Set up Expected Answer ExpectedAnswer = new Answer { Dealers = new List <DtoDealer>() { new DtoDealer { DealerId = 1, Name = "Name1", Vehicles = new List <DtoVehicle> { new DtoVehicle { VehicleId = 01, Make = "Make1", Year = 2001, Model = "Model1" }, new DtoVehicle { VehicleId = 02, Make = "Make2", Year = 2002, Model = "Model2" } } }, new DtoDealer { DealerId = 2, Name = "Name1", Vehicles = new List <DtoVehicle> { new DtoVehicle { VehicleId = 03, Make = "Make3", Year = 2003, Model = "Model3" }, new DtoVehicle { VehicleId = 04, Make = "Make4", Year = 2004, Model = "Model4" } } } } }; //Set up Expected Response ExpectedResponse = new AnswerServiceResponse { JsonRequest = "Test Answer", Message = "Test Message", Success = true, TotalMilliseconds = 99 }; //Set up ApiService Mock Vehicles vehicles = new Vehicles { VehicleIds = new List <int>() }; List <Vehicle> vehicleList = new List <Vehicle>(); foreach (DtoDealer d in ExpectedAnswer.Dealers) { foreach (DtoVehicle v in d.Vehicles) { vehicles.VehicleIds.Add(v.VehicleId); vehicleList.Add( new Vehicle { DealerId = d.DealerId, Make = v.Make, Model = v.Model, Year = v.Year, VehicleId = v.VehicleId }); } } ApiService = new Mock <ICoxIntvApiService>(); ApiService.Setup(x => x.CreateDataSet()).Returns(Task.FromResult(ExpectedDataSet)); ApiService.Setup(x => x.GetVehicles(ExpectedDataSet.DatasetId)) .Returns(Task.FromResult(vehicles)); foreach (Vehicle v in vehicleList) { ApiService.Setup(x => x.GetVehicle(ExpectedDataSet.DatasetId, v.VehicleId)) .Returns(Task.FromResult(v)); } foreach (DtoDealer d in ExpectedAnswer.Dealers) { Dealer dealer = new Dealer { DealerId = d.DealerId, Name = d.Name }; ApiService.Setup(x => x.GetDealer(ExpectedDataSet.DatasetId, dealer.DealerId)) .Returns(Task.FromResult(dealer)); } AnswerResponse response = new AnswerResponse { Message = ExpectedResponse.Message, Success = ExpectedResponse.Success, TotalMilliseconds = ExpectedResponse.TotalMilliseconds }; ApiService.Setup(x => x.PostAnswer(ExpectedDataSet.DatasetId, It.IsAny <Answer>())) .Returns(Task.FromResult(response)); }