private UrlGenerator ChooseGenerator(string comicUrl) { var aComic = new ComicUri (comicUrl); UrlGenerator gen; if (aComic.Indices.Length == 1) { // option A or B var dateCount = new DateGenerator (aComic); // identify if it's a valid date if (dateCount.Format != DateType.NotRecognized) { // B of some kind gen = dateCount; } else { // A of some kind var seqCount = new SequentialGenerator (aComic); gen = seqCount; } } else { // option C or D throw new NotImplementedException (); } return gen; }
public void FindFormat() { var isoDate = "http://comic.com/19871024"; var ukDate = "http://comic.com/24101987"; var usDate = "http://comic.com/10241987"; var isoDateShort = "http://comic.com/871024"; var ukDateShort = "http://comic.com/241087"; var usDateShort = "http://comic.com/102487"; var fakeDate = "http://comic.com/99999999"; // implicitly tests FindFormat by calling the property BlockDateCount.Format var dateCount = new DateGenerator (new ComicUri (isoDate)); Assert.AreEqual (DateType.Iso, dateCount.Format); dateCount = new DateGenerator (new ComicUri (ukDate)); Assert.AreEqual (DateType.Uk, dateCount.Format); dateCount = new DateGenerator (new ComicUri (usDate)); Assert.AreEqual (DateType.Us, dateCount.Format); dateCount = new DateGenerator (new ComicUri (isoDateShort)); Assert.AreEqual (DateType.IsoShort, dateCount.Format); dateCount = new DateGenerator (new ComicUri (ukDateShort)); Assert.AreEqual (DateType.UkShort, dateCount.Format); dateCount = new DateGenerator (new ComicUri (usDateShort)); Assert.AreEqual (DateType.UsShort, dateCount.Format); dateCount = new DateGenerator (new ComicUri (fakeDate)); Assert.AreEqual (DateType.NotRecognized, dateCount.Format); }
private UrlGenerator ChooseGenerator(string comicUrl) { var aComic = new ComicUri(comicUrl); UrlGenerator gen; if (aComic.Indices.Length == 1) { // option A or B var dateCount = new DateGenerator(aComic); // identify if it's a valid date if (dateCount.Format != DateType.NotRecognized) { // B of some kind gen = dateCount; } else { // A of some kind var seqCount = new SequentialGenerator(aComic); gen = seqCount; } } else { // option C or D throw new NotImplementedException(); } return(gen); }
public void FindDays() { var comic = new ComicUri ("http://www.smbc-comics.com/comics/20061011.gif"); var dateCount = new DateGenerator (comic); // // by chance, two consecutive Thursdays were missed here // Assert.AreEqual (6, dateCount.Days.Count); // Assert.IsFalse (dateCount.Days.Contains ("Thursday")); // Behaviour changed: // FindDays is no longer called to calculate what days the comic runs // Every day is assumed // This is quicker and simpler: if URL not found, download quietly fails Assert.AreEqual (7, dateCount.Days.Count); }
public void DaysNotAssignedExplicitly() { var smbc = "http://www.smbc-comics.com/comics/20061017.gif"; var smbcUrls = new string[7]; smbcUrls [0] = "http://www.smbc-comics.com/comics/20061011.gif"; smbcUrls [1] = "http://www.smbc-comics.com/comics/20061012.gif"; smbcUrls [2] = "http://www.smbc-comics.com/comics/20061013.gif"; smbcUrls [3] = "http://www.smbc-comics.com/comics/20061014.gif"; smbcUrls [4] = "http://www.smbc-comics.com/comics/20061015.gif"; smbcUrls [5] = "http://www.smbc-comics.com/comics/20061016.gif"; smbcUrls [6] = "http://www.smbc-comics.com/comics/20061017.gif"; var dateCount = new DateGenerator (new ComicUri (smbc)); dateCount.Start = "20061011"; Assert.AreEqual (smbcUrls, dateCount.Get (0, 7).ToArray ()); }
public void GenerateSome() { var smbcUrls = new string[7]; smbcUrls [0] = "http://www.smbc-comics.com/comics/20061011.gif"; smbcUrls [1] = "http://www.smbc-comics.com/comics/20061012.gif"; smbcUrls [2] = "http://www.smbc-comics.com/comics/20061013.gif"; smbcUrls [3] = "http://www.smbc-comics.com/comics/20061014.gif"; smbcUrls [4] = "http://www.smbc-comics.com/comics/20061015.gif"; smbcUrls [5] = "http://www.smbc-comics.com/comics/20061016.gif"; smbcUrls [6] = "http://www.smbc-comics.com/comics/20061017.gif"; var dateCount = new DateGenerator (new ComicUri (smbcUrls [0])); dateCount.Days = DateGenerator.EveryDay; Assert.AreEqual (smbcUrls, dateCount.GenerateSome ().ToArray ()); smbcUrls [0] = "http://www.smbc-comics.com/comics/20061011.gif"; smbcUrls [1] = "http://www.smbc-comics.com/comics/20061012.gif"; smbcUrls [2] = "http://www.smbc-comics.com/comics/20061013.gif"; smbcUrls [3] = "http://www.smbc-comics.com/comics/20061018.gif"; smbcUrls [4] = "http://www.smbc-comics.com/comics/20061019.gif"; smbcUrls [5] = "http://www.smbc-comics.com/comics/20061020.gif"; smbcUrls [6] = "http://www.smbc-comics.com/comics/20061025.gif"; var days = new string[]{DayOfWeek.Wednesday.ToString (), DayOfWeek.Thursday.ToString (), DayOfWeek.Friday.ToString ()}; dateCount = new DateGenerator (new ComicUri (smbcUrls [0])); dateCount.Days = new List<string> (days); Assert.AreEqual (smbcUrls, dateCount.GenerateSome ()); }
public void Start() { // default var url = "http://www.smbc-comics.com/comics/20061011.gif"; var dateCo = new DateGenerator (url); Assert.AreEqual ("20061011", dateCo.Start); Assert.AreEqual (10, dateCo.Date.Month); // setting value var newStart = "19871024"; dateCo.Start = newStart; Assert.AreEqual (newStart, dateCo.Start); // setting value in wrong format newStart = "31121999"; dateCo.Start = newStart; Assert.AreEqual ("19991231", dateCo.Start); }
public void GetDirectlyLicd() { var licdUrls = new string[7]; licdUrls [0] = "http://cdn.leasticoulddo.com/comics/20100309.gif"; licdUrls [1] = "http://cdn.leasticoulddo.com/comics/20100310.gif"; licdUrls [2] = "http://cdn.leasticoulddo.com/comics/20100311.gif"; licdUrls [3] = "http://cdn.leasticoulddo.com/comics/20100312.gif"; licdUrls [4] = "http://cdn.leasticoulddo.com/comics/20100313.gif"; licdUrls [5] = "http://cdn.leasticoulddo.com/comics/20100314.gif"; licdUrls [6] = "http://cdn.leasticoulddo.com/comics/20100315.gif"; var dateCount = new DateGenerator (new ComicUri (licdUrls [2])); dateCount.Start = "20100309"; dateCount.Days = DateGenerator.EveryDay; Assert.AreEqual (licdUrls, dateCount.Get (0, 7).ToArray ()); licdUrls [0] = "http://cdn.leasticoulddo.com/comics/20100309.gif"; licdUrls [1] = "http://cdn.leasticoulddo.com/comics/20100310.gif"; licdUrls [2] = "http://cdn.leasticoulddo.com/comics/20100311.gif"; licdUrls [3] = "http://cdn.leasticoulddo.com/comics/20100316.gif"; licdUrls [4] = "http://cdn.leasticoulddo.com/comics/20100317.gif"; licdUrls [5] = "http://cdn.leasticoulddo.com/comics/20100318.gif"; licdUrls [6] = "http://cdn.leasticoulddo.com/comics/20100323.gif"; dateCount = new DateGenerator (new ComicUri (licdUrls [0])); dateCount.Start = "20100309"; var days = new string[]{DayOfWeek.Tuesday.ToString (), DayOfWeek.Wednesday.ToString (), DayOfWeek.Thursday.ToString ()}; dateCount.Days = new List<string> (days); Assert.AreEqual (licdUrls, dateCount.Get (0, 7)); }