public void Should_correctly_set_Domain() { const string url = "http://sub.host.com?p1=v1"; const string expectedHost = "sub.host.com"; var urlItem = UrlItemBuilder.Create(url, new DateTime(2016, 1, 1)); Assert.NotNull(urlItem); Assert.Equal(expectedHost, urlItem.Host); }
public void Should_correctly_set_URL_and_EvaliableFromDate() { const string expectedUrl = "http://sub.host.com?p1=v1"; var expectedDate = new DateTime(2016, 1, 1); var urlItem = UrlItemBuilder.Create(expectedUrl, expectedDate); Assert.NotNull(urlItem); Assert.Equal(expectedUrl, urlItem.Url); Assert.Equal(expectedDate, urlItem.EvaliableFromDate); }
public void AddOrUpdateUrl(string url, DateTime nextAvailableTime) { using (var ctx = CreateContext()) { var urlItem = UrlItemBuilder.Create(url, nextAvailableTime); var existingUrl = ctx.UrlItems.SingleOrDefault(u => u.Host == urlItem.Host && u.Url == url); if (existingUrl != null) { existingUrl.EvaliableFromDate = nextAvailableTime; existingUrl.IsInProgress = false; // reset the flag since the url is not processed anymore and available for the next round } else { ctx.UrlItems.Add(urlItem); } ctx.Commit(); } }