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);
        }
Пример #2
0
        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);
        }