public void CanUpdateSettings()
        {
            var fetcher = new BuildDataFetcher(new ViewUrl("http://bla"),
                                               new ConfigSettings
            {
                URL = "http://bla"
            }, _webClientFactory);

            fetcher.Fetch();
            _webClient.AssertWasCalled(w => w.DownloadString(Arg <string> .Is.Equal(new Uri("http://bla"))), w => w.Repeat.Once());

            fetcher.ConfigUpdated(new ConfigSettings {
                URL = "http://new"
            });
            fetcher.Fetch();
            _webClient.AssertWasCalled(w => w.DownloadString(Arg <string> .Is.Equal(new Uri("http://new"))), w => w.Repeat.Once());
        }
 public void a_connectivity_exception_will_be_thrown_if_the_uri_isnt_resolveable()
 {
     Assert.Throws <FetchException>(() =>
     {
         var fetcher = new BuildDataFetcher(
             new ViewUrl("http://a.b.c.d.e.foo/ccnet/XmlStatusReport.aspx"),
             _configSettings, _factory);
         fetcher.Fetch();
     }, "Unable to contact http://a.b.c.d.e.foo/ccnet/XmlStatusReport.aspx");
 }
        public void CanFetch()
        {
            const string Hello = "hello";

            _webClient.Expect(w => w.DownloadString(Arg <string> .Is.Anything)).Return(Hello);

            var fetcher    = new BuildDataFetcher(new ViewUrl("http://test"), new ConfigSettings(), _webClientFactory);
            var fetchValue = fetcher.Fetch();

            fetchValue.First().ShouldBe(Hello);
        }
        public void can_get_projects_from_a_realaddress()
        {
            var fetcher =
                new BuildDataFetcher(new ViewUrl("http://ccnetlive.thoughtworks.com/ccnet/XmlStatusReport.aspx"),
                                     _configSettings, _factory);

            var fetch = fetcher.Fetch().ToList();

            fetch.Count().ShouldBeGreaterThan(0);
            fetch.ShouldContain(@"Project name=""CCNet""");
        }
        public void can_fetch_multiple_urls()
        {
            _webClient.Expect(w => w.DownloadString(Arg <string> .Is.Anything)).Return("url1").Repeat.Once();
            _webClient.Expect(w => w.DownloadString(Arg <string> .Is.Anything)).Return("url2").Repeat.Once();

            var fetcher = new BuildDataFetcher(new ViewUrl("http://url1 http://url2"),
                                               new ConfigSettings(), _webClientFactory);

            var xmlResults = fetcher.Fetch().ToList();

            xmlResults.Count.ShouldBe(2);
            xmlResults[0].ShouldBe("url1");
            xmlResults[1].ShouldBe("url2");

            _webClient.AssertWasCalled(w => w.DownloadString(Arg <string> .Is.Equal(new Uri("http://url1"))));
            _webClient.AssertWasCalled(w => w.DownloadString(Arg <string> .Is.Equal(new Uri("http://url2"))));
        }