public void GivenValidCountry_WhenGetCitites_WeGetResponse()
        {
            A.CallTo(() => GlobalWeatherSoap.GetCitiesByCountry(A <string> .Ignored))
            .Returns(@"<NewDataSet>
                              <Table>
                                <Country>Australia</Country>
                                <City>Archerfield Aerodrome</City>
                              </Table>
                              <Table>
                                <Country>Australia</Country>
                                <City>Amberley Aerodrome</City>
                              </Table>
                          </NewDataSet>");

            var expected = new TableName {
                Table = new List <Details>()
            };

            expected.Table.Add(new Details {
                City = "Archerfield Aerodrome", Country = "Australia"
            });
            expected.Table.Add(new Details {
                City = "Amberley Aerodrome", Country = "Australia"
            });

            var response = _sut.GetCities("Australia");

            response.NewDataSet.Table.Count.ShouldBeEquivalentTo(expected.Table.Count);
        }
 public CitiesResponse GetCities(string country)
 {
     try
     {
         var xmlResponse = _client.GetCitiesByCountry(country);
         var xmlDoc      = new XmlDocument();
         xmlDoc.LoadXml(xmlResponse);
         var json     = JsonConvert.SerializeXmlNode(xmlDoc);
         var response = JsonConvert.DeserializeObject <CitiesResponse>(json);
         return(response);
     }
     catch (Exception ex)
     {
         return(null);
     }
 }