public void DivideReturnOk()
        {
            // Arrange
            DivideRequest testDivideRequest = new DivideRequest();

            testDivideRequest.Dividend = 11;

            testDivideRequest.Divisor = 2;

            // Act
            var client = new RestClient("http://localhost:54405/api/calculator/");

            var request = new RestRequest("div", Method.POST);

            string json = JsonConvert.SerializeObject(testDivideRequest);

            request.AddJsonBody(json);

            var response = client.Execute(request);

            var proccessResponse = JsonConvert.DeserializeObject <DivideResponse>(response.Content);

            DivideResponse compare = new DivideResponse {
                Quotient = 5, Remainder = 1
            };

            // Assert
            Assert.AreEqual(5, proccessResponse.Quotient);

            Assert.AreEqual(1, proccessResponse.Remainder);
        }
        public void DivideReturnBadRequest()
        {
            try
            {
                // Arrange
                DivideRequest testDivideRequest = null;

                // Act
                var client = new RestClient("http://localhost:54405/api/calculator/");

                var request = new RestRequest("div", Method.POST);

                string json = JsonConvert.SerializeObject(testDivideRequest);

                request.AddJsonBody(json);

                var response = client.Execute(request);

                var proccessResponse = JsonConvert.DeserializeObject <DivideResponse>(response.Content);

                DivideResponse compare = new DivideResponse {
                    Quotient = 5, Remainder = 1
                };
            }
            catch (HttpResponseException ex)
            {
                // Assert
                Assert.AreEqual(ex.Response.StatusCode, HttpStatusCode.BadRequest);
            }
        }
        public IHttpActionResult Divide(DivideRequest request)
        {
            logger.Trace("Service called: divide");

            // An invalid request has been received
            // This may mean the HTTP requests and/or the HTTP body may contains some errors which should be fixed

            if (request == null)
            {
                logger.Error(HttpStatusCode.BadRequest);

                throw new HttpResponseException(HttpStatusCode.BadRequest);
            }

            try
            {
                DivideResponse result = new DivideResponse();

                // Execute operation: Divison
                string dataJournal = "";

                result.Quotient  = request.Dividend / request.Divisor;
                result.Remainder = request.Dividend % request.Divisor;

                dataJournal += request.Dividend + " / " + request.Divisor + " = " + "quotient: " + result.Quotient + " remainder: " + result.Remainder;

                logger.Trace("Divide success!!");

                IEnumerable <string> headerValues;

                // If tracking ID exists create operation instance and store in journal
                if (Request.Headers.TryGetValues("X-Evi-Tracking-Id", out headerValues))
                {
                    string id;

                    id = headerValues.FirstOrDefault();

                    var operation = new Operation()
                    {
                        Name        = "division",
                        Calculation = dataJournal,
                        Date        = DateTime.Now
                    };

                    Journal.Store(id, operation);
                }

                return(Ok(result));
            }
            catch (Exception ex)
            {
                logger.Error(ex);

                // An unexpected error condition was triggered which made impossible to fulfill the request
                throw new HttpResponseException(HttpStatusCode.InternalServerError);
            }
        }
        public static void Divide()
        {
            int dividend, divisor;

            try
            {
                DivideRequest div = new DivideRequest();

                string id = AskTrackingId();

                Console.WriteLine("\nEnter dividend and divisor");

                Console.WriteLine("\nEnter dividend:");

                dividend = ReadInt("dividend");

                div.Dividend = dividend;

                Console.WriteLine("\nEnter divisor: ");

                divisor = ReadInt("divisor");

                div.Divisor = divisor;

                var client = new RestClient(ENDPOINT);

                var request = new RestRequest("div", Method.POST);

                string json = JsonConvert.SerializeObject(div);

                request.AddJsonBody(json);

                // Add to headers 'X-Evi-Tracking-Id'
                if (id != "")
                {
                    request.AddHeader("X-Evi-Tracking-Id", id);
                }

                var response = client.Execute(request);

                var proccessResponse = JsonConvert.DeserializeObject <DivideResponse>(response.Content);

                Console.ForegroundColor = ConsoleColor.Green;

                Console.WriteLine("\nQuotient: " + proccessResponse.Quotient);

                Console.WriteLine("\nRemainder: " + proccessResponse.Remainder);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
Пример #5
0
        public async void ExecuteCalculatorDivideRequest()
        {
            DivideRequest request = new DivideRequest()
            {
                intA = UnityEngine.Random.Range(-byte.MaxValue, byte.MaxValue),
                intB = UnityEngine.Random.Range(1, byte.MaxValue / 16)
            };
            DivideResponse response = await Divide.Execute(_calculatorClient, request);

            if (response != null)
            {
                _results.text = string.Format("{0} / {1} = {2}", request.intA, request.intB, response.Value) + Environment.NewLine;
            }
        }
        public async Task <double> Divide(DivideRequest req)
        {
            AppContext.SetSwitch(
                "System.Net.Http.SocketsHttpHandler.Http2UnencryptedSupport", true);
            var channel = GrpcChannel.ForAddress("http://localhost:8081");
            var client  = new Protomath.mathService.mathServiceClient(channel);

            var divideReq = new Protomath.divideRequest();

            foreach (var num in req.numbers)
            {
                divideReq.Numbers.Add(num);
            }
            var reply = await client.divideAsync(divideReq);

            return(reply.Result);
        }
        public static void TestDivide()
        {
            DivideRequest div = new DivideRequest();

            div.Dividend = 11;

            div.Divisor = 2;

            var client = new RestClient(ENDPOINT);

            var request = new RestRequest("div", Method.POST);

            string json = JsonConvert.SerializeObject(div);

            request.AddJsonBody(json);

            var response = client.Execute(request);

            var proccessResponse = JsonConvert.DeserializeObject <DivideResponse>(response.Content);

            Console.WriteLine("\nResult: " + proccessResponse.Quotient);

            Console.WriteLine("\nRemainder: " + proccessResponse.Remainder);
        }
 public async Task<DivideResponse> DivideAsync(DivideRequest request)
 {
     using (var client = new WebClient())
     {
         await client.DownloadDataTaskAsync(new Uri(this.url + "divide?id=" + request.CalculatorId + "&value=" + request.Value));
     }
     return new DivideResponse();
 }
 public DivideResponse Divide(DivideRequest request)
 {
     using (var client = new WebClient())
     {
         client.DownloadData(new Uri(this.url + "divide?id=" + request.CalculatorId + "&value=" + request.Value));
     }
     return new DivideResponse();
 }