public async Task Payment_Expense_NoXmlTags_ReturnsValidationError()
        {
            //No xml in raw text, validation error

            var text = @"Hi Yvaine, Please create an expense claim for the below.";

            var request = CreateRequest(text);

            SetAuthHeader();

            var response = await client.PostAsync(request.Url, ContentHelper.GetStringContent(request.Body));

            var value = await response.Content.ReadAsAsync <ExpenseResponse>();

            response.EnsureSuccessStatusCode();

            Assert.Equal("Failed", value.ExecutionResult.Status);
            Assert.True(value.ExecutionResult.Errors.Any());
        }
        public async Task Payment_Expense_InvalidXml_ReturnsValidationError()
        {
            //2 cost_centre elements, one does not have a closing tag, validation error

            var text = @"Hi Yvaine, Please create an expense claim for the below. <expense><cost_centre><cost_centre>DEV002</cost_centre></expense>.";

            var request = CreateRequest(text);

            SetAuthHeader();

            var response = await client.PostAsync(request.Url, ContentHelper.GetStringContent(request.Body));

            var value = await response.Content.ReadAsAsync <ExpenseResponse>();

            response.EnsureSuccessStatusCode();

            Assert.Equal("Failed", value.ExecutionResult.Status);
            Assert.Contains(value.ExecutionResult.Errors, e => e.Contains("Invalid Xml in text"));
        }
        public async Task Payment_Expense_ValidInput_NoCostCenter_ReturnsResponse()
        {
            //Valid Xml, return response

            var text = @"Hi Yvaine,

                        Please create an expense claim for the below. Relevant details are marked up as requested…

                        <expense><total>1024.01</total><payment_method>personal card</payment_method> </expense>
                        
                        From: Ivan Castle 
                        Sent: Friday, 16 February 2018 10:32 AM 
                        To: Antoine Lloyd <*****@*****.**> 
                        Subject: test

                        Hi Antoine,
                        
                        Please create a reservation at the <vendor>Viaduct Steakhouse</vendor> our <description>development team’s project end celebration dinner</description> on <date>Tuesday 27 April 2017</date>. We expect to arrive around 7.15pm. Approximately 12 people but I’ll confirm exact numbers closer to the day.
                        
                        Regards,
                        Ivan";

            var request = CreateRequest(text);

            SetAuthHeader();

            var response = await client.PostAsync(request.Url, ContentHelper.GetStringContent(request.Body));

            var value = await response.Content.ReadAsAsync <ExpenseResponse>();

            response.EnsureSuccessStatusCode();

            Assert.Equal("Success", value.ExecutionResult.Status);
            Assert.Equal("UNKNOWN", value.CostCentre);
            Assert.Equal(1024.01M, value.Total);
            Assert.True(value.TotalExcludingGST > 0 && value.TotalExcludingGST <= value.Total);
        }