Пример #1
0
        public void Kassenbestand_Erwarte_Erfolg()
        {
            var datum = new DateTime(2019, 4, 10);

            var transaktionen = new List <Transaktion> {
                new Transaktion(TransaktionTyp.Einzahlung)
                {
                    Datum  = new DateTime(2019, 3, 1),
                    Betrag = new Money(100.0)
                },
                new Transaktion(TransaktionTyp.Einzahlung)
                {
                    Datum  = new DateTime(2019, 4, 9),
                    Betrag = new Money(100.0)
                },
                new Transaktion(TransaktionTyp.Auszahlung)
                {
                    Datum  = new DateTime(2019, 4, 10),
                    Betrag = new Money(30.0)
                },
                new Transaktion(TransaktionTyp.Auszahlung)   //Wird ignoriert, weil es nächster Monat ist
                {
                    Datum  = new DateTime(2019, 5, 11),
                    Betrag = new Money(30.0)
                }
            };

            var kassenbestand = Summierer.Ermittle_Kassenbestand(datum, transaktionen);

            Assert.That(kassenbestand, Is.EqualTo(new Money(170)));
        }
Пример #2
0
        public void Ermittle_alle_Kategorien_Erwarte_Erfolg(string datumString, string[] erwarteteKategorien)
        {
            DateTime datum = DateTime.Parse(datumString);

            var transaktionen = new List <Transaktion> {
                new Transaktion(TransaktionTyp.Einzahlung)
                {
                    Datum  = new DateTime(2019, 5, 1),
                    Betrag = new Money(50.0)
                },
                new Transaktion(TransaktionTyp.Auszahlung)
                {
                    Datum     = new DateTime(2019, 5, 5),
                    Kategorie = "Miete",
                    Betrag    = new Money(10.0)
                },
                new Transaktion(TransaktionTyp.Auszahlung)
                {
                    Datum     = new DateTime(2019, 4, 5),
                    Kategorie = "Miete",
                    Betrag    = new Money(10.0)
                },
                new Transaktion(TransaktionTyp.Auszahlung)
                {
                    Datum     = new DateTime(2019, 5, 11),
                    Kategorie = "Restaurantbesuche",
                    Betrag    = new Money(20.0)
                },
                new Transaktion(TransaktionTyp.Auszahlung)
                {
                    Datum     = new DateTime(2019, 5, 15),
                    Kategorie = "miete",
                    Betrag    = new Money(20.0)
                }
            };

            List <Kategorie> ermittelteKategorien = Summierer.Ermittle_alle_Kategorien(datum, transaktionen);

            foreach (Kategorie kategorie in ermittelteKategorien)
            {
                var erwartet = erwarteteKategorien.FirstOrDefault(li => li.StartsWith(kategorie.Bezeichnung, StringComparison.CurrentCultureIgnoreCase));
                if (erwartet == null)
                {
                    Assert.Fail("Kategorie " + kategorie.Bezeichnung + " nicht in Erwartet-Array gefunden");
                }

                var elements = erwartet.Split(';');

                Assert.That(kategorie.Bezeichnung, Is.EqualTo(elements[0]));
                Assert.That(kategorie.Summe, Is.EqualTo(new Money(decimal.Parse(elements[1]))));
            }
        }
Пример #3
0
        public void Ermittle_Kategorie_Erwarte_Erfolg(string datumString, string kategorie, decimal erwartet)
        {
            DateTime datum = DateTime.Parse(datumString);

            var transaktionen = new List <Transaktion> {
                new Transaktion(TransaktionTyp.Einzahlung)          // Kommentarbeispiel für [TestCase( "2019-05-10", "Miete", 30)]
                {
                    Datum  = new DateTime(2019, 5, 1),              // Ignoriert > Einzahlung
                    Betrag = new Money(50.0)
                },
                new Transaktion(TransaktionTyp.Auszahlung)          // Berücksichtigt
                {
                    Datum     = new DateTime(2019, 5, 5),
                    Kategorie = "Miete",
                    Betrag    = new Money(10.0)
                },
                new Transaktion(TransaktionTyp.Auszahlung)          // Ignoriert > Anderer Monat
                {
                    Datum     = new DateTime(2019, 4, 5),
                    Kategorie = "Miete",
                    Betrag    = new Money(10.0)
                },
                new Transaktion(TransaktionTyp.Auszahlung)          // Ignoriert > Andere Kategorie
                {
                    Datum     = new DateTime(2019, 5, 11),
                    Kategorie = "Restaurantbesuche",
                    Betrag    = new Money(20.0)
                },
                new Transaktion(TransaktionTyp.Auszahlung)          // Berücksichtig, ob wohl Kategorie kleingeschrieben
                {
                    Datum     = new DateTime(2019, 5, 15),          // und Datum hinter wunschdatum, ist aber selber Monat
                    Kategorie = "miete",
                    Betrag    = new Money(20.0)
                }
            };

            Kategorie ermittelteKategorie = Summierer.Ermittle_Kategorie(kategorie, datum, transaktionen);

            Assert.That(ermittelteKategorie.Bezeichnung, Is.EqualTo(kategorie));
            Assert.That(ermittelteKategorie.Summe, Is.EqualTo(new Money(erwartet)));
        }