Fix test that was failing sporadically.

This commit is contained in:
dsanz 2017-03-23 17:01:55 +01:00
parent 6e4d9461de
commit 5d8628c9e2

View File

@ -1,10 +1,9 @@
using Microsoft.AspNetCore.TestHost; using Microsoft.eShopOnContainers.Services.Ordering.API.Application.Commands;
using Microsoft.eShopOnContainers.Services.Ordering.API.Application.Commands;
using Microsoft.eShopOnContainers.WebMVC.ViewModels; using Microsoft.eShopOnContainers.WebMVC.ViewModels;
using Newtonsoft.Json; using Newtonsoft.Json;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Data.SqlClient; using System.Linq;
using System.Net.Http; using System.Net.Http;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
@ -22,20 +21,20 @@ namespace FunctionalTests.Services.Ordering
{ {
var client = server.CreateClient(); var client = server.CreateClient();
//Arrange // GIVEN an order is created
await client.PostAsync(Post.AddNewOrder, new StringContent(BuildOrder(), UTF8Encoding.UTF8, "application/json")); await client.PostAsync(Post.AddNewOrder, new StringContent(BuildOrder(), UTF8Encoding.UTF8, "application/json"));
var ordersResponse = await client.GetAsync(Get.Orders); var ordersResponse = await client.GetAsync(Get.Orders);
var responseBody = await ordersResponse.Content.ReadAsStringAsync(); var responseBody = await ordersResponse.Content.ReadAsStringAsync();
dynamic orders = JsonConvert.DeserializeObject(responseBody); var orders = JsonConvert.DeserializeObject<List<Order>>(responseBody);
string orderId = orders[0].ordernumber; string orderId = orders.OrderByDescending(o => o.Date).First().OrderNumber;
//Act //WHEN we request the order bit its id
var order= await client.GetAsync(Get.OrderBy(int.Parse(orderId))); var order= await client.GetAsync(Get.OrderBy(int.Parse(orderId)));
var orderBody = await order.Content.ReadAsStringAsync(); var orderBody = await order.Content.ReadAsStringAsync();
var result = JsonConvert.DeserializeObject<Order>(orderBody); var result = JsonConvert.DeserializeObject<Order>(orderBody);
//Assert //THEN the requested order is returned
Assert.Equal(orderId, result.OrderNumber); Assert.Equal(orderId, result.OrderNumber);
Assert.Equal("inprocess", result.Status); Assert.Equal("inprocess", result.Status);
Assert.Equal(1, result.OrderItems.Count); Assert.Equal(1, result.OrderItems.Count);
@ -63,7 +62,7 @@ namespace FunctionalTests.Services.Ordering
order.AddOrderItem(new OrderItemDTO() order.AddOrderItem(new OrderItemDTO()
{ {
ProductId = 1, ProductId = 1,
Discount = 10M, Discount = 12M,
UnitPrice = 10, UnitPrice = 10,
Units = 1, Units = 1,
ProductName = "Some name" ProductName = "Some name"