public void WebSite_BaseStationAircraftList_Applies_AircraftListFilters_When_Supplied() { foreach(var filterProperty in typeof(AircraftListFilter).GetProperties()) { _AircraftListFilter = new AircraftListFilter(); _AircraftListAddress.Filter = _AircraftListFilter; _BaseStationAircraft.Clear(); if(filterProperty.Name == "DistanceLower" || filterProperty.Name == "DistanceUpper") continue; // <-- we have a separate test for these else if(filterProperty.Name == "MustTransmitPosition") TestMustTransmitPositionFilter(); else if(filterProperty.Name == "PositionWithin") continue; // <-- we have a separate spreadsheet test for these else if(filterProperty.Name.EndsWith("Contains")) TestContainsFilter(filterProperty); else if(filterProperty.Name.EndsWith("Equals")) TestEqualsFilter(filterProperty); else if(filterProperty.Name.EndsWith("Lower")) TestLowerFilter(filterProperty); else if(filterProperty.Name.EndsWith("StartsWith")) TestStartsWithFilter(filterProperty); else if(filterProperty.Name.EndsWith("Upper")) TestUpperFilter(filterProperty); else Assert.Fail("Need to add code to test the {0} filter", filterProperty.Name); } }
public void WebSite_BaseStationAircraftList_Filters_Are_Culture_Agnostic() { var cultureNames = new string[] { "en-GB", "en-US", "de-DE", "fr-FR", "nn-NO", "el-GR", "ru-RU", "zh-CHT", }; _AircraftListAddress.BrowserLatitude = _AircraftListAddress.BrowserLongitude = 0; var currentCulture = Thread.CurrentThread.CurrentCulture; foreach(var cultureName in cultureNames) { string filterName = null; using(var switcher = new CultureSwitcher(cultureName)) { foreach(var filterProperty in typeof(AircraftListFilter).GetProperties()) { _BaseStationAircraft.Clear(); AddBlankAircraft(2); var aircraft0 = _BaseStationAircraft[0]; var aircraft1 = _BaseStationAircraft[1]; _AircraftListFilter = new AircraftListFilter(); _AircraftListAddress.Filter = _AircraftListFilter; filterName = filterProperty.Name; var tailText = filterName.EndsWith("Upper") ? "Upper" : filterName.EndsWith("Lower") ? "Lower" : filterName.EndsWith("Within") ? "Within" : ""; if(tailText == "") continue; string aircraftPropertyName = filterName.Substring(0, filterName.Length - tailText.Length); switch(aircraftPropertyName) { case "Altitude": aircraft0.Altitude = -9; aircraft1.Altitude = 9; filterProperty.SetValue(_AircraftListFilter, -5, null); break; case "Distance": aircraft0.Latitude = aircraft0.Longitude = 1; aircraft1.Latitude = aircraft1.Longitude = 2; filterProperty.SetValue(_AircraftListFilter, 200.25, null); break; case "Position": aircraft0.Latitude = aircraft0.Longitude = -9.5f; aircraft1.Latitude = aircraft1.Longitude = 9.5f; _AircraftListFilter.PositionWithin = new Pair<Coordinate>(new Coordinate(5.5f, -15.5f), new Coordinate(-15.5f, 5.5f)); break; case "Squawk": aircraft0.Squawk = -9; aircraft1.Squawk = 9; filterProperty.SetValue(_AircraftListFilter, -5, null); break; default: throw new NotImplementedException(); } var list = SendJsonRequest<AircraftListJson>(_AircraftListAddress.Address).Aircraft; var expectedAircraftId = tailText == "Upper" || tailText == "Within" ? 0 : 1; Assert.AreEqual(1, list.Count, switcher.CultureName); Assert.AreEqual(expectedAircraftId, list[0].UniqueId, switcher.CultureName); } } } }