XmlTvReaderDateTimeTests.cs 4.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. using System;
  2. using System.IO;
  3. using Emby.XmlTv.Classes;
  4. using Microsoft.VisualStudio.TestTools.UnitTesting;
  5. namespace Emby.XmlTv.Test
  6. {
  7. [TestClass]
  8. public class XmlTvReaderDateTimeTests
  9. {
  10. [TestMethod]
  11. [DeploymentItem("Xml Files\\MultilanguageData.xml")]
  12. public void Should_HandlePartDates()
  13. {
  14. var testFile = Path.GetFullPath(@"MultilanguageData.xml");
  15. var reader = new XmlTvReader(testFile, "es");
  16. Assert.AreEqual(Parse("01 Jan 2016 00:00:00"), reader.ParseDate("2016"));
  17. Assert.AreEqual(Parse("01 Jan 2016 00:00:00"), reader.ParseDate("201601"));
  18. Assert.AreEqual(Parse("01 Jan 2016 00:00:00"), reader.ParseDate("20160101"));
  19. Assert.AreEqual(Parse("01 Jan 2016 12:00:00"), reader.ParseDate("2016010112"));
  20. Assert.AreEqual(Parse("01 Jan 2016 12:34:00"), reader.ParseDate("201601011234"));
  21. Assert.AreEqual(Parse("01 Jan 2016 12:34:56"), reader.ParseDate("20160101123456"));
  22. }
  23. [TestMethod]
  24. [DeploymentItem("Xml Files\\MultilanguageData.xml")]
  25. public void Should_HandleDateWithOffset()
  26. {
  27. var testFile = Path.GetFullPath(@"MultilanguageData.xml");
  28. var reader = new XmlTvReader(testFile, "es");
  29. // parse variations on 1:00AM
  30. Assert.AreEqual(Parse("01 Jan 2016 12:00:00"), reader.ParseDate("20160101120000 +0000"));
  31. Assert.AreEqual(Parse("01 Jan 2016 02:00:00"), reader.ParseDate("20160101120000 +1000"));
  32. Assert.AreEqual(Parse("01 Jan 2016 11:00:00"), reader.ParseDate("20160101120000 +0100"));
  33. Assert.AreEqual(Parse("01 Jan 2016 11:50:00"), reader.ParseDate("20160101120000 +0010"));
  34. Assert.AreEqual(Parse("01 Jan 2016 11:59:00"), reader.ParseDate("20160101120000 +0001"));
  35. Assert.AreEqual(Parse("01 Jan 2016 22:00:00"), reader.ParseDate("20160101120000 -1000"));
  36. Assert.AreEqual(Parse("01 Jan 2016 13:00:00"), reader.ParseDate("20160101120000 -0100"));
  37. Assert.AreEqual(Parse("01 Jan 2016 12:10:00"), reader.ParseDate("20160101120000 -0010"));
  38. Assert.AreEqual(Parse("01 Jan 2016 12:01:00"), reader.ParseDate("20160101120000 -0001"));
  39. }
  40. [TestMethod]
  41. [DeploymentItem("Xml Files\\MultilanguageData.xml")]
  42. public void Should_HandlePartDatesWithOffset()
  43. {
  44. var testFile = Path.GetFullPath(@"MultilanguageData.xml");
  45. var reader = new XmlTvReader(testFile, "es");
  46. Assert.AreEqual(Parse("01 Jan 2016 01:00:00"), reader.ParseDate("2016 -0100"));
  47. Assert.AreEqual(Parse("01 Jan 2016 01:00:00"), reader.ParseDate("201601 -0100"));
  48. Assert.AreEqual(Parse("01 Jan 2016 01:00:00"), reader.ParseDate("20160101 -0100"));
  49. Assert.AreEqual(Parse("01 Jan 2016 13:00:00"), reader.ParseDate("2016010112 -0100"));
  50. Assert.AreEqual(Parse("01 Jan 2016 13:00:00"), reader.ParseDate("201601011200 -0100"));
  51. Assert.AreEqual(Parse("01 Jan 2016 13:00:00"), reader.ParseDate("20160101120000 -0100"));
  52. }
  53. [TestMethod]
  54. [DeploymentItem("Xml Files\\MultilanguageData.xml")]
  55. public void Should_HandleSpaces()
  56. {
  57. var testFile = Path.GetFullPath(@"MultilanguageData.xml");
  58. var reader = new XmlTvReader(testFile, "es");
  59. // parse variations on 1:00AM
  60. Assert.AreEqual(Parse("01 Jan 2016 12:00:00"), reader.ParseDate("20160101120000 +000"));
  61. Assert.AreEqual(Parse("01 Jan 2016 12:00:00"), reader.ParseDate("20160101120000 +00"));
  62. Assert.AreEqual(Parse("01 Jan 2016 12:00:00"), reader.ParseDate("20160101120000 +0"));
  63. }
  64. [TestMethod]
  65. [DeploymentItem("Xml Files\\MultilanguageData.xml")]
  66. public void Should_HandleSpaces2()
  67. {
  68. var testFile = Path.GetFullPath(@"MultilanguageData.xml");
  69. var reader = new XmlTvReader(testFile, "es");
  70. // parse variations on 1:00AM
  71. Assert.AreEqual(Parse("01 Jan 2016 12:00:00"), reader.ParseDate("20160101120000 0"));
  72. }
  73. private DateTimeOffset Parse(string value)
  74. {
  75. return new DateTimeOffset(DateTimeOffset.Parse(value).Ticks, TimeSpan.Zero);
  76. }
  77. }
  78. }