public void TestKorektyCzesciowej() { IList <PozycjaFakturyDC> listaPozycjiFaktury = new List <PozycjaFakturyDC>(); listaPozycjiFaktury.Add(new PozycjaFakturyDC() { Produkt = objectSpace.FindObject <Produkt>(new BinaryOperator(nameof(Produkt.Nazwa), "Gacie")), Ilosc = 5, CenaJednostkowaNetto = 30 }); listaPozycjiFaktury.Add(new PozycjaFakturyDC() { Produkt = objectSpace.FindObject <Produkt>(new BinaryOperator(nameof(Produkt.Nazwa), "Skarpetki")), Ilosc = 5, CenaJednostkowaNetto = 10 });; listaPozycjiFaktury.Add(new PozycjaFakturyDC() { Produkt = objectSpace.FindObject <Produkt>(new BinaryOperator(nameof(Produkt.Nazwa), "Skarpety")), Ilosc = 5, CenaJednostkowaNetto = 20 });; var factory = new InvoiceFactory(objectSpace); var faktura = factory.UtworzFakture(listaPozycjiFaktury); objectSpace.CommitChanges(); Assert.IsNotNull(faktura, "nie utworzono faktury"); Assert.AreEqual(3, faktura.PozycjeFaktury.Count()); Assert.AreEqual(345, faktura.WartoscBrutto); IList <PozycjaKorygujacaFakturyDC> listaPozycjiDoSkorygowania = new List <PozycjaKorygujacaFakturyDC>(); var korektaPusta = factory.UtworzKorekte(faktura, listaPozycjiDoSkorygowania); Assert.IsNull(korektaPusta, "Utworzono korektę chociaż nie powinno"); if (korektaPusta != null) { korektaPusta.Delete(); } objectSpace.CommitChanges(); listaPozycjiDoSkorygowania.Add(new PozycjaKorygujacaFakturyDC() { Produkt = objectSpace.FindObject <Produkt>(new BinaryOperator(nameof(Produkt.Nazwa), "Gacie")), Ilosc = 0, CenaJednostkowaNetto = 30 }); listaPozycjiDoSkorygowania.Add(new PozycjaKorygujacaFakturyDC() { Produkt = objectSpace.FindObject <Produkt>(new BinaryOperator(nameof(Produkt.Nazwa), "Skarpetki")), Ilosc = 0, CenaJednostkowaNetto = 10 }); listaPozycjiDoSkorygowania.Add(new PozycjaKorygujacaFakturyDC() { Produkt = objectSpace.FindObject <Produkt>(new BinaryOperator(nameof(Produkt.Nazwa), "Skarpety")), Ilosc = 0, CenaJednostkowaNetto = 20 }); var korekta = factory.UtworzKorekte(faktura, listaPozycjiDoSkorygowania); Assert.IsNotNull(korekta, "nie utworzono faktury korygujacej"); Assert.AreSame(faktura.Klient, korekta.Klient, "Faktura wystawiona innego klienta niz korekta"); korekta.PrzeliczSumy(); objectSpace.CommitChanges(); Assert.AreEqual(3, korekta.PozycjeFaktury.Count(), "Korekta częsciowa ma zła liczbę pozycji"); var SumaFakturPoKorekcie = objectSpace.GetObjectsQuery <Faktura>().Sum(b => b.WartoscBrutto); Assert.AreEqual(0, SumaFakturPoKorekcie, "Brutto korekty nie zeruje sie z bruttem faktury by objectQuery"); faktura.Delete(); korekta.Delete(); objectSpace.CommitChanges(); }