kontrahent.md

This commit is contained in:
Marcin Wojas
2026-06-05 15:48:46 +02:00
parent 67fcc9e996
commit 01de89b7b5
15 changed files with 1596 additions and 0 deletions
@@ -0,0 +1,48 @@
using AwesomeAssertions;
using NUnit.Framework;
namespace Soneta.Skills.Test.CRM.Kontrahenci;
/// <summary>
/// W5 — Bezpieczne usuwanie kontrahenta.
/// Test pokazuje czyste usunięcie świeżo utworzonego rekordu (brak powiązań) oraz alternatywę
/// „miękkiego" wycofania (<c>Blokada=true</c>), zalecaną gdy istnieją dokumenty/rozrachunki.
/// </summary>
[TestFixture]
public class UsuwanieKontrahentaTest : KontrahentTestBase
{
[Test]
[Description("Usunięcie kontrahenta bez powiązań (DeleteRow) usuwa rekord z bazy.")]
public void CzysteUsuniecie_UsuwaRekord()
{
var kod = UnikalnyKod();
UtworzKontrahenta(kod, "Do Usuniecia");
SaveDispose();
var k = Crm.Kontrahenci.WgKodu[kod];
k.Should().NotBeNull();
InTransaction(() => k.Delete());
SaveDispose();
// Po usunięciu indeksator zwraca null.
Crm.Kontrahenci.WgKodu[kod].Should().BeNull();
}
[Test]
[Description("Miękkie wycofanie: zamiast usuwać, ustawiamy Blokada=true (rekord pozostaje).")]
public void MiekkieWycofanie_UstawiaBlokade()
{
var kod = UnikalnyKod();
UtworzKontrahenta(kod, "Do Wycofania");
SaveDispose();
var k = Crm.Kontrahenci.WgKodu[kod];
InTransaction(() => k.Blokada = true);
SaveDispose();
var zapisany = Crm.Kontrahenci.WgKodu[kod];
zapisany.Should().NotBeNull();
zapisany.Blokada.Should().BeTrue();
}
}