public void TestDownloadNewQuakes() { // Good JSON :) // Magnitude > 5 for all of these so we don't accidentally filter them out with low values in AppSettings. string json = "{\"type\":\"FeatureCollection\",\"features\":[" + "{\"type\":\"Feature\",\"id\":\"quake.2012p904860\",\"geometry\":{\"type\":\"Point\",\"coordinates\":[172.8091,-43.451538]},\"geometry_name\":\"origin_geom\",\"properties\":{\"publicid\":\"2012p904860\",\"origintime\":\"2012-11-30 19:09:43.244000\",\"depth\":10.039062,\"magnitude\":5.2373073,\"status\":\"reviewed\",\"agency\":\"WEL(GNS_Primary)\",\"updatetime\":\"2012-11-30 19:30:58.437000\"}}," + "{\"type\":\"Feature\",\"id\":\"quake.2012p904809\",\"geometry\":{\"type\":\"Point\",\"coordinates\":[177.92297,-38.60341]},\"geometry_name\":\"origin_geom\",\"properties\":{\"publicid\":\"2012p904809\",\"origintime\":\"2012-11-30 18:42:35.602000\",\"depth\":11.972656,\"magnitude\":5.3260586,\"status\":\"reviewed\",\"agency\":\"WEL(GNS_Primary)\",\"updatetime\":\"2012-11-30 19:44:28.653000\"}}," + "{\"type\":\"Feature\",\"id\":\"quake.2012p904425\",\"geometry\":{\"type\":\"Point\",\"coordinates\":[175.57617,-39.639915]},\"geometry_name\":\"origin_geom\",\"properties\":{\"publicid\":\"2012p904425\",\"origintime\":\"2012-11-30 15:17:55.860000\",\"depth\":22.929688,\"magnitude\":5.1758049,\"status\":\"reviewed\",\"agency\":\"WEL(GNS_Primary)\",\"updatetime\":\"2012-11-30 19:41:05.659000\"}}" + "],\"crs\":{\"type\":\"EPSG\",\"properties\":{\"code\":\"4326\"}}}"; var response = new Mocks.HttpWebResponse { getResponseStream = () => new System.IO.MemoryStream( System.Text.Encoding.UTF8.GetBytes(json)) }; var request = new Mocks.HttpWebRequest { getResponse = () => response }; var factory = new Mocks.HttpWebRequestFactory { create = _ => request }; EarthquakeContainer container = new EarthquakeContainer(factory); container.PropertyChanged += (sender, e) => { Assert.AreEqual(EarthquakeContainer.QuakesUpdatedEventKey, e.PropertyName); Assert.AreEqual(3, container.Quakes.Count); Assert.AreEqual(GeonetSuccessStatus.Success, container.Status); EnqueueTestComplete(); }; container.DownloadNewQuakes(); }
public void TestDownloadNewQuakesNoConnection() { var request = new Mocks.HttpWebRequest { getResponse = () => { throw new WebException(); } }; var factory = new Mocks.HttpWebRequestFactory { create = _ => request }; EarthquakeContainer container = new EarthquakeContainer(factory); container.PropertyChanged += (sender, e) => { Assert.AreEqual(EarthquakeContainer.QuakesUpdatedEventKey, e.PropertyName); Assert.AreEqual(0, container.Quakes.Count); Assert.AreEqual(GeonetSuccessStatus.NetworkFailure, container.Status); EnqueueTestComplete(); }; container.DownloadNewQuakes(); }
public void TestGetQuakesHandlesBadJson() { var response = new Mocks.HttpWebResponse { getResponseStream = () => new System.IO.MemoryStream( System.Text.Encoding.UTF8.GetBytes(badJson)) }; var request = new Mocks.HttpWebRequest { getResponse = () => response }; GeonetAccessor geonet = new GeonetAccessor(new Mocks.HttpWebRequestFactory { create = _ => request }); geonet.GetQuakesCompletedEvent += (sender, e) => { Assert.AreEqual(geonet, sender); Assert.AreEqual(GeonetSuccessStatus.BadGeonetData, e.Status); Assert.AreEqual(0, e.Quakes.Count); EnqueueTestComplete(); }; geonet.GetQuakes(); }
public void TestGetQuakesUsesCorrectUrl() { AppSettings settings = new AppSettings(); var response = new Mocks.HttpWebResponse { getResponseStream = () => new System.IO.MemoryStream( System.Text.Encoding.UTF8.GetBytes(goodJson)) }; var request = new Mocks.HttpWebRequest { getResponse = () => response }; // 'felt' quakes is used settings.UseGeonetAllQuakesEndpointSetting = false; GeonetAccessor geonet = new GeonetAccessor(new Mocks.HttpWebRequestFactory { create = (url) => { Assert.AreEqual(GeonetEndpoints.FeltQuakes, url.AbsoluteUri); return request; } }); geonet.GetQuakes(); // 'all' quakes is used settings.UseGeonetAllQuakesEndpointSetting = true; geonet = new GeonetAccessor(new Mocks.HttpWebRequestFactory { create = (url) => { Assert.AreEqual(GeonetEndpoints.AllQuakes, url.AbsoluteUri); EnqueueTestComplete(); return request; } }); geonet.GetQuakes(); }
public void TestGetQuakesHandlesNoConnection() { var request = new Mocks.HttpWebRequest { getResponse = () => { throw new WebException(); } }; GeonetAccessor geonet = new GeonetAccessor(new Mocks.HttpWebRequestFactory { create = _ => request }); geonet.GetQuakesCompletedEvent += (sender, e) => { Assert.AreEqual(geonet, sender); Assert.AreEqual(GeonetSuccessStatus.NetworkFailure, e.Status); Assert.AreEqual(0, e.Quakes.Count); EnqueueTestComplete(); }; geonet.GetQuakes(); }