public void TestErstellePDFSuccess()
 {
     Adresse kundenadresse = new Adresse() { Strasse = "ABC-Strasse", Hausnummer = "123", Land = "Nimmerland", PLZ = "4567", Wohnort = "hinterm Baum" };
     IList<AdresseDTO> adressen = new List<AdresseDTO>();
     adressen.Add(kundenadresse.ToDTO());
     GeschaeftspartnerDTO gpDTO = new GeschaeftspartnerDTO()
     {
         Adressen = adressen,
         Email = new EMailType("*****@*****.**"),
         Vorname = "Hans",
         Nachname = "Peter",
     };
     geschaeftspartnerServices.CreateGeschaeftspartner(ref gpDTO);
     KundenrechnungDTO krDTO = new KundenrechnungDTO() 
     {
          RechnungBezahlt = false,
          Rechnungsadresse = 1, 
          Rechnungsbetrag = new WaehrungsType(987654321), 
     };
     IList<TransportplanSchrittDTO> tpSchritte = new List<TransportplanSchrittDTO>();
     pDFErzeungServicesFuerBuchhaltung.ErstelleKundenrechnungPDF(ref krDTO, tpSchritte);
 }
        public void TestErstelleSendungsanfrageUndOrdneRechungenZuSuccess()
        {
            Adresse kundenadresse = new Adresse() { Strasse = "ABC-Strasse", Hausnummer = "123", Land = "Nimmerland", PLZ = "4567", Wohnort = "hinterm Baum" };
            IList<AdresseDTO> adressen = new List<AdresseDTO>();
            adressen.Add(kundenadresse.ToDTO());
            GeschaeftspartnerDTO gpDTO = new GeschaeftspartnerDTO()
            {
                Adressen = adressen,
                Email = new EMailType("*****@*****.**"),
                Vorname = "Hans",
                Nachname = "Peter",
            };
            geschaeftspartnerServices.CreateGeschaeftspartner(ref gpDTO);
            SendungsanfrageDTO saDTO = new SendungsanfrageDTO();
            SendungspositionDTO sp1 = new SendungspositionDTO();
            saDTO.Sendungspositionen.Add(sp1);
            saDTO.AbholzeitfensterStart = DateTime.Parse("01.09.2013");
            saDTO.AbholzeitfensterEnde = DateTime.Parse("10.09.2013");
            saDTO.AngebotGültigBis = DateTime.Now.AddHours(1);
            saDTO.StartLokation = hamburgLokation.LokNr;
            saDTO.ZielLokation = shanghaiLokation.LokNr;
            saDTO.Auftraggeber = 1;

            auftragsServices.CreateSendungsanfrage(ref saDTO);
            auftragsServices.PlaneSendungsanfrage(saDTO.SaNr);
            List<TransportplanDTO> pläne = transportplanungsServices.FindTransportplaeneZuSendungsanfrage(saDTO.SaNr);
            Assert.IsTrue(pläne.Count >= 1);

            TransportplanDTO planÜberBhv = pläne.Find((plan) =>
            {
                return plan.TransportplanSchritte.ToList().Find((tps) =>
                {
                    TransportAktivitaetDTO ta = tps as TransportAktivitaetDTO;
                    if (ta != null)
                    {
                        return ta.FuerTransportAufTransportbeziehung == hh_bhv.TbNr;
                    }
                    else
                    {
                        return false;
                    }
                }) != null; 
            });
            Assert.IsTrue(planÜberBhv != null);

            Assert.IsTrue(planÜberBhv.TransportplanSchritte.Count == 2);
            pläne = transportplanungsServices.FindTransportplaeneZuSendungsanfrage(saDTO.SaNr);
            Assert.IsTrue(pläne.Count == 1);
            Assert.IsTrue(pläne[0].TpNr == planÜberBhv.TpNr);

            foreach (TransportplanDTO tpDTO in pläne)
            {
                Sendungsanfrage sa = auftragsServices.FindSendungsanfrage(tpDTO.SaNr).ToEntity();
                auftragsServices.NimmAngebotAn(sa.SaNr);
                sendungServices.ErstelleSendung(tpDTO.TpNr, saDTO.SaNr);
            }

            FrachtabrechnungDTO fab1DTO = new FrachtabrechnungDTO { Frachtauftrag = 1, IstBestaetigt = true };
            buchhaltungServices.PayFrachtabrechnung(ref fab1DTO);
            FrachtabrechnungDTO fab2DTO = new FrachtabrechnungDTO { Frachtauftrag = 2, IstBestaetigt = true };
            buchhaltungServices.PayFrachtabrechnung(ref fab2DTO);

            buchhaltungServiceFuerSendung.ErstelleKundenrechnung(1, 1);

            var tokenSource = new CancellationTokenSource();
            var token = tokenSource.Token;

            var t = Task.Factory.StartNew(
                () =>
                {
                    bankAdapter.EmpfangeZahlungseingaengenAusQueue();
                    token.ThrowIfCancellationRequested();
                },
                token);

            Thread.Sleep(10000);
            bankAdapter.EmpfangeZahlungseingaenge(false);
            Thread.Sleep(5000);

            tokenSource.Cancel();
        }