Files
soneta-erp-skills/Soneta.Skills.Test/CRM/Kontrahenci/TworzenieKontrahentaTest.cs
T
Marcin Wojas 01de89b7b5 kontrahent.md
2026-06-05 15:48:46 +02:00

71 lines
2.4 KiB
C#

using AwesomeAssertions;
using NUnit.Framework;
using Soneta.Core;
using Soneta.CRM;
namespace Soneta.Skills.Test.CRM.Kontrahenci;
/// <summary>
/// W3 — Tworzenie kontrahenta.
/// Testy pokazują utworzenie rekordu z minimalnym kompletem danych w transakcji edycyjnej
/// oraz trwały zapis (SaveDispose) i ponowny odczyt z nowej sesji. Pokrywają warianty:
/// podmiot gospodarczy krajowy, podmiot unijny oraz osoba fizyczna (finalny).
/// </summary>
[TestFixture]
public class TworzenieKontrahentaTest : KontrahentTestBase
{
[Test]
[Description("Tworzy krajowy podmiot gospodarczy z NIP i zapisuje go trwale w bazie.")]
public void TworzeniePodmiotuKrajowego_ZapisujeRekord()
{
var kod = UnikalnyKod();
var k = UtworzKontrahenta(kod, "Krajowa Firma Sp. z o.o.");
InTransaction(() =>
{
k.PodatnikVAT = true;
k.NIP = "1234563218"; // ustawienie NIP synchronizuje EuVAT
});
SaveDispose();
// Ponowny odczyt z nowej sesji potwierdza trwały zapis.
var zapisany = Crm.Kontrahenci.WgKodu[kod];
zapisany.Should().NotBeNull();
zapisany.Nazwa.Should().Be("Krajowa Firma Sp. z o.o.");
zapisany.StatusPodmiotu.Should().Be(StatusPodmiotu.PodmiotGospodarczy);
zapisany.RodzajPodmiotu.Should().Be(RodzajPodmiotu.Krajowy);
zapisany.PodatnikVAT.Should().BeTrue();
}
[Test]
[Description("Tworzy podmiot unijny (RodzajPodmiotu.Unijny).")]
public void TworzeniePodmiotuUnijnego_UstawiaRodzajUnijny()
{
var kod = UnikalnyKod();
UtworzKontrahenta(kod, "EU Trading GmbH",
status: StatusPodmiotu.PodmiotGospodarczy,
rodzaj: RodzajPodmiotu.Unijny);
SaveDispose();
var zapisany = Crm.Kontrahenci.WgKodu[kod];
zapisany.Should().NotBeNull();
zapisany.RodzajPodmiotu.Should().Be(RodzajPodmiotu.Unijny);
}
[Test]
[Description("Tworzy osobę fizyczną (StatusPodmiotu.Finalny).")]
public void TworzenieOsobyFizycznej_UstawiaStatusFinalny()
{
var kod = UnikalnyKod();
UtworzKontrahenta(kod, "Jan Kowalski",
status: StatusPodmiotu.Finalny,
rodzaj: RodzajPodmiotu.Krajowy);
SaveDispose();
var zapisany = Crm.Kontrahenci.WgKodu[kod];
zapisany.Should().NotBeNull();
zapisany.StatusPodmiotu.Should().Be(StatusPodmiotu.Finalny);
}
}