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"));
        }
        private void View_OnConnectToServer(object sender, ConnectToServerEventArgs e)
        {
            View.ClearErrorMessage();

            if (!e.Url.HasValue())
            {
                View.DisplayErrorMessage("Invalid url");
                return;
            }

            try
            {
                var elmahUrl = new ElmahUrlHelper().ResolveElmahRootUrl(e.Url);
                var connection = new NetworkConnection(elmahUrl);

                if (e.HasCredentials)
                {
                    connection.SetCredentials(e.UserName, e.Password, e.Domain);
                }

                var serverResponded = _urlPing.Ping(connection);

                if (!serverResponded.Item1)
                {
                    View.DisplayErrorMessage(serverResponded.Item2);
                    return;
                }

                Connnection = connection;

                View.CloseView();
            }
            catch (ArgumentException)
            {
                View.DisplayErrorMessage("Invalid url");
            }
            catch (Exception ex)
            {
                View.DisplayErrorMessage(ex.Message);
            }
        }