public Tuple<bool, string> Ping(NetworkConnection connection) { _log.Debug(string.Format("Make request to: {0}", connection.Uri)); var request = (HttpWebRequest)WebRequest.Create(connection.Uri); if (connection.HasCredentials) { request.UseDefaultCredentials = false; request.Credentials = connection.GetCredentials(); _log.Debug(string.Format("With credentials username: {0} domain: {1}", connection.GetCredentials().UserName, connection.GetCredentials().Domain)); } try { using (var response = (HttpWebResponse)request.GetResponse()) { var responseUrl = response.ResponseUri.AbsoluteUri; _log.Debug(string.Format("Response url was: {0}", responseUrl)); _log.Debug(string.Format("Response code: {0}", response.StatusDescription)); var result = connection.Uri.AbsoluteUri == responseUrl; return new Tuple<bool, string>(result, response.StatusDescription); } } catch (WebException ex) { _log.Error(ex); return new Tuple<bool, string>(false, ex.Message); } }
public void GetCredentials_CredentialsNotSet_ReturnsNull() { // arrange var url = "http://www.test.com/elmah.axd"; var connection = new NetworkConnection(url); // act var result = connection.GetCredentials(); // assert Assert.That(result, Is.Null); }
public void GetCredentials_CredentialsIsSet_ReturnsCredentials() { // arrange var url = "http://www.test.com/elmah.axd"; var connection = new NetworkConnection(url); connection.SetCredentials("pelle", "password", "domain1"); // act var result = connection.GetCredentials(); // assert Assert.That(result, Is.Not.Null); }
public void CreateWithCredentials_CreatesNewConnectionAndCopiesCredentialsFromTheOriginal() { // arrange var url = "http://www.test.com/elmah.axd"; var original = new NetworkConnection(url); original.SetCredentials("pelle", "password", "domain1"); // act var copy = original.CopyWithCredentials("http://www.copy.com/elmah.axd"); // assert Assert.That(copy.Uri.AbsoluteUri, Is.EqualTo("http://www.copy.com/elmah.axd")); Assert.That(copy.GetCredentials(), Is.EqualTo(original.GetCredentials())); }
public void GetCredentials_CredentialsIsSet_ShouldHaveUsernamePasswordAndDomain() { // arrange var url = "http://www.test.com/elmah.axd"; var connection = new NetworkConnection(url); connection.SetCredentials("pelle", "password", "domain1"); // act var result = connection.GetCredentials(); // assert Assert.That(result.UserName, Is.EqualTo("pelle")); Assert.That(result.Password, Is.EqualTo("password")); Assert.That(result.Domain, Is.EqualTo("domain1")); }
public string Uri(NetworkConnection connection) { string result; using (var client = new WebClient()) { if (connection.HasCredentials) { client.UseDefaultCredentials = false; client.Credentials = connection.GetCredentials(); } var response = client.OpenRead(connection.Uri.AbsoluteUri); // TODO Check content-type is the expected one! // TODO Use charset in response Content-Type header using (var reader = new StreamReader(response)) { result = reader.ReadToEnd(); } } return result; }