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 SubmitNewAnswer_CreateDataSet_Throws()
        {
            // Arrange
            IOException expectedException = new IOException("failed...");

            ApiService.Setup(x => x.CreateDataSet()).Returns(Task.FromException <DataSet>(expectedException));
            ISubmitAnswerService answerService = new SubmitAnswerService(ApiService.Object);

            // Act
            try
            {
                Task <AnswerServiceResponse> answerTask = answerService.SubmitNewAnswer();
                answerTask.Wait();
                Assert.Fail();
            }
            catch (Exception e)
            {
                Assert.AreEqual(expectedException.Message, e.InnerException.Message);
            }
        }
        public void SubmitNewAnswer_GetVehicle_Throws()
        {
            // Arrange
            IOException expectedException = new IOException("failed...");

            ApiService.Setup(x => x.GetVehicle(It.IsAny <string>(), It.IsAny <int>()))
            .Returns(Task.FromException <Vehicle>(expectedException));
            ISubmitAnswerService answerService = new SubmitAnswerService(ApiService.Object);

            // Act
            try
            {
                Task <AnswerServiceResponse> answerTask = answerService.SubmitNewAnswer();
                answerTask.Wait();
                Assert.Fail();
            }
            catch (Exception e)
            {
                Assert.AreEqual(expectedException.Message, e.InnerException.Message);
            }
        }