using System.Linq;
using AwesomeAssertions;
using NUnit.Framework;
using Soneta.CRM;
namespace Soneta.Skills.Test.CRM.Kontrahenci;
///
/// W13/W14 — Klasyfikacja i powiązania (odczyt kontraktu publicznego).
/// Testy dokumentują dostęp do kolekcji klasyfikacyjnych (Kategorie, Branze,
/// Features) oraz powiązań (Opiekunowie, Podrzedni, PodmiotNadrzedny).
/// Świeżo utworzony, samodzielny kontrahent ma te kolekcje puste i brak podmiotu nadrzędnego —
/// co czyni asercje deterministycznymi.
///
[TestFixture]
public class KlasyfikacjaIPowiazaniaTest : KontrahentTestBase
{
[Test]
[Description("Świeży kontrahent ma dostępne i puste kolekcje klasyfikacyjne; Features != null.")]
public void NowyKontrahent_KolekcjeKlasyfikacjiSaPusteAleDostepne()
{
var kod = UnikalnyKod();
UtworzKontrahenta(kod, "Firma Klasyfikacja");
SaveDispose();
var k = Crm.Kontrahenci.WgKodu[kod];
k.Features.Should().NotBeNull(); // cechy definiowalne — dostęp po nazwie
k.Kategorie.Cast().Should().BeEmpty();
k.Branze.Cast().Should().BeEmpty();
}
[Test]
[Description("Świeży kontrahent nie ma opiekunów, podmiotów podrzędnych ani nadrzędnego.")]
public void NowyKontrahent_BrakPowiazan()
{
var kod = UnikalnyKod();
UtworzKontrahenta(kod, "Firma Powiazania");
SaveDispose();
var k = Crm.Kontrahenci.WgKodu[kod];
k.Opiekunowie.Cast().Should().BeEmpty();
k.Podrzedni.Cast().Should().BeEmpty();
k.PodmiotNadrzedny.Should().BeNull();
}
}