Esempio n. 1
0
        /// <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));
        }