PeriodeTest.cs 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. using GCHR.Model;
  2. using NUnit.Framework;
  3. namespace GCHR.Tests.Model
  4. {
  5. [TestFixture]
  6. class PeriodeTest
  7. {
  8. [Test]
  9. public void StandardwerteFuerBeliebigePeriode()
  10. {
  11. var periode = new Periode("201309");
  12. Assert.AreEqual("01", Periode.ErsterMonatImGeschaeftsjahr);
  13. Assert.IsNotNull(Periode.Dateipfade);
  14. Assert.AreEqual("2013", periode.Jahr);
  15. Assert.AreEqual("13", periode.JahrZweistellig);
  16. Assert.AreEqual("09", periode.Monat);
  17. Assert.AreEqual("201309", periode.ToString());
  18. Assert.AreEqual("09/2013", periode.Klartext);
  19. Assert.AreEqual("export\\2013\\export_2013-09_balance.txt", periode.BalanceDatei);
  20. Assert.AreEqual("export\\2013\\export_2013-09_accounts.txt", periode.AccountsDatei);
  21. Assert.AreEqual("export\\2013\\export_2013-09_info.log", periode.LogDatei);
  22. Assert.AreEqual("export\\2013\\export_2013-09_protokoll.csv", periode.ProtokollDatei);
  23. }
  24. [Test]
  25. public void VorgaengerUndNachfolger()
  26. {
  27. var periode = new Periode("201202");
  28. Assert.AreEqual("201203", periode.Nachfolger.ToString());
  29. Assert.AreEqual("201204", periode.Nachfolger.Nachfolger.ToString());
  30. Assert.AreEqual("201201", periode.Vorgaenger.ToString());
  31. Assert.AreEqual("201112", periode.Vorgaenger.Vorgaenger.ToString());
  32. }
  33. [Test]
  34. public void Vormonat()
  35. {
  36. var periode = new Periode("200912");
  37. Assert.AreEqual("200912", periode.Vormonat(0));
  38. Assert.AreEqual("200911", periode.Vormonat(1));
  39. Assert.AreEqual("200910", periode.Vormonat(2));
  40. Assert.AreEqual("201001", periode.Vormonat(-1));
  41. }
  42. [Test]
  43. public void JahresbeginnUndBilanzbeginn()
  44. {
  45. var periode = new Periode("201307");
  46. Assert.AreEqual("201301", periode.Jahresbeginn.ToString());
  47. Assert.AreEqual("201301", periode.Bilanzbeginn.ToString());
  48. var periodeOhneJahresabschluss = new Periode("201303", true);
  49. Assert.AreEqual("201301", periodeOhneJahresabschluss.Jahresbeginn.ToString());
  50. Assert.AreEqual("201201", periodeOhneJahresabschluss.Bilanzbeginn.ToString());
  51. Periode.ErsterMonatImGeschaeftsjahr = "09";
  52. }
  53. [Test]
  54. public void JahresbeginnUndBilanzbeginnMitAbweichendemGeschaeftsjahr()
  55. {
  56. Periode.ErsterMonatImGeschaeftsjahr = "09";
  57. var periode = new Periode("201307");
  58. Assert.AreEqual("201209", periode.Jahresbeginn.ToString());
  59. Assert.AreEqual("201209", periode.Bilanzbeginn.ToString());
  60. var periodeOhneJahresabschluss = new Periode("201210", true);
  61. Assert.AreEqual("201209", periodeOhneJahresabschluss.Jahresbeginn.ToString());
  62. Assert.AreEqual("201109", periodeOhneJahresabschluss.Bilanzbeginn.ToString());
  63. Periode.ErsterMonatImGeschaeftsjahr = "01";
  64. }
  65. [Test]
  66. public void UngueltigePeriode()
  67. {
  68. Assert.Throws<UngueltigePeriodeException> (() => new Periode("1234567"), "zu lang");
  69. Assert.Throws<UngueltigePeriodeException>(() => new Periode("1301"), "zu kurz");
  70. Assert.Throws<UngueltigePeriodeException>(() => new Periode("a1b§C3"), "nur Zahlen erlaubt");
  71. Assert.Throws<UngueltigePeriodeException>(() => new Periode("199901"), "Jahr ungültig");
  72. Assert.Throws<UngueltigePeriodeException>(() => new Periode("235901"), "Jahr ungültig");
  73. Assert.Throws<UngueltigePeriodeException>(() => new Periode("201231"), "Monat ungültig");
  74. Assert.Throws<UngueltigePeriodeException>(() => new Periode("201200"), "Monat ungültig");
  75. Assert.Throws<UngueltigePeriodeException>(() => new Periode("201213"), "Monat ungültig");
  76. }
  77. }
  78. }