public MoreInfoResponse Load(int id, Guid guid) { var request = (HttpWebRequest)WebRequest.Create("http://solmarxml.digital-trip.co.uk/accommodation.api"); request.Method = "POST"; request.ContentType = "application/xml; charset=utf-8"; request.Accept = "application/xml; charset=utf-8"; request.Host = "solmarxml.digital-trip.co.uk"; request.Headers.Add("AuthCode", "jet2|JhWGR79G"); _requestStream = request.GetRequestStream(); var body = _moreInfoRequestXmlSerializer.GetXml(id, guid); using (var writer = new StreamWriter(_requestStream)) { writer.Write(body); } var response = request.GetResponse(); object resultObj = null; var moreInfoSerializer = new XmlSerializer(typeof(MoreInfoResponse)); var invalidCredentialsSerializer = new XmlSerializer(typeof(InvalidCredentialsResponse)); using (var responseStream = response.GetResponseStream()) { if (responseStream != null) { using (var reader = new StreamReader(responseStream)) { var responseString = reader.ReadToEnd(); using (TextReader textReader = new StringReader(responseString)) { resultObj = (InvalidCredentialsResponse)invalidCredentialsSerializer.Deserialize(textReader); if (resultObj != null) { var invalidCredentialsResponse = ((InvalidCredentialsResponse)resultObj); throw new InvalidCredentialException(invalidCredentialsResponse.Message); } resultObj = (MoreInfoResponse)moreInfoSerializer.Deserialize(textReader); } } } } return((MoreInfoResponse)resultObj); }
public void GetXml_ShouldReturnCorrectResult(int id, Guid guid, MoreInfoRequestXmlSerializer sut) { // act.. var actual = sut.GetXml(id, guid); // assert.. const string format = @"<MoreInfoRequest> <GUID>{0}</GUID> <ID>{1}</ID> </MoreInfoRequest>"; var expected = string.Format(format, guid, id); actual.ShouldBe(expected); }