DatePickerTests.cs 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. using System.Globalization;
  2. namespace Terminal.Gui.ViewsTests;
  3. /// <summary>
  4. /// Pure unit tests for <see cref="DatePicker"/> that don't require Application.Driver or View context.
  5. /// These tests can run in parallel without interference.
  6. /// </summary>
  7. public class DatePickerTests : UnitTests.Parallelizable.ParallelizableBase
  8. {
  9. [Fact]
  10. public void DatePicker_ChangingCultureChangesFormat ()
  11. {
  12. var date = new DateTime (2000, 7, 23);
  13. var datePicker = new DatePicker (date);
  14. datePicker.Culture = CultureInfo.GetCultureInfo ("en-GB");
  15. Assert.Equal ("23/07/2000", datePicker.Text);
  16. datePicker.Culture = CultureInfo.GetCultureInfo ("pl-PL");
  17. Assert.Equal ("23.07.2000", datePicker.Text);
  18. // Deafult date format for en-US is M/d/yyyy but we are using StandardizeDateFormat method
  19. // to convert it to the format that has 2 digits for month and day.
  20. datePicker.Culture = CultureInfo.GetCultureInfo ("en-US");
  21. Assert.Equal ("07/23/2000", datePicker.Text);
  22. }
  23. [Fact]
  24. public void DatePicker_Default_Constructor_ShouldSetCurrenDate ()
  25. {
  26. var datePicker = new DatePicker ();
  27. Assert.Equal (DateTime.Now.Date.Day, datePicker.Date.Day);
  28. Assert.Equal (DateTime.Now.Date.Month, datePicker.Date.Month);
  29. Assert.Equal (DateTime.Now.Date.Year, datePicker.Date.Year);
  30. }
  31. [Fact]
  32. public void DatePicker_Constrctor_Now_ShouldSetCurrenDate ()
  33. {
  34. var datePicker = new DatePicker (DateTime.Now);
  35. Assert.Equal (DateTime.Now.Date.Day, datePicker.Date.Day);
  36. Assert.Equal (DateTime.Now.Date.Month, datePicker.Date.Month);
  37. Assert.Equal (DateTime.Now.Date.Year, datePicker.Date.Year);
  38. }
  39. [Fact]
  40. public void DatePicker_X_Y_Init ()
  41. {
  42. var datePicker = new DatePicker { Y = Pos.Center (), X = Pos.Center () };
  43. Assert.Equal (DateTime.Now.Date.Day, datePicker.Date.Day);
  44. Assert.Equal (DateTime.Now.Date.Month, datePicker.Date.Month);
  45. Assert.Equal (DateTime.Now.Date.Year, datePicker.Date.Year);
  46. }
  47. [Fact]
  48. public void DatePicker_SetDate_ShouldChangeText ()
  49. {
  50. var datePicker = new DatePicker { Culture = CultureInfo.GetCultureInfo ("en-GB") };
  51. var newDate = new DateTime (2024, 1, 15);
  52. string format = CultureInfo.CurrentCulture.DateTimeFormat.ShortDatePattern;
  53. datePicker.Date = newDate;
  54. Assert.Equal (newDate.ToString (format), datePicker.Text);
  55. }
  56. }