using SameBeat.Domain.Encje; using SameBeat.Domain.Wyjatki; using Xunit; namespace SameBeat.Tests.Unit; public class SlotScenyTests { private static readonly Guid WydarzenieId = Guid.NewGuid(); [Fact] public void Utworz_TworzyWolnySlot() { var slot = SlotSceny.Utworz(WydarzenieId, 1); Assert.Equal(1, slot.NumerSlotu); Assert.Equal(WydarzenieId, slot.WydarzenieId); Assert.Null(slot.UczestnikOczekujacyId); } [Fact] public void Przypisz_UstawiaUczestnika() { var slot = SlotSceny.Utworz(WydarzenieId, 1); var uczestnikId = Guid.NewGuid(); slot.Przypisz(uczestnikId); Assert.Equal(uczestnikId, slot.UczestnikOczekujacyId); } [Fact] public void Zwolnij_CzysciUczestnika() { var slot = SlotSceny.Utworz(WydarzenieId, 1); slot.Przypisz(Guid.NewGuid()); slot.Zwolnij(); Assert.Null(slot.UczestnikOczekujacyId); } [Theory] [InlineData(0)] [InlineData(-1)] public void Utworz_ZNiepoprawnymNumerem_RzucaWyjatekDomenowy(int numerSlotu) { Assert.Throws(() => SlotSceny.Utworz(WydarzenieId, numerSlotu)); } [Fact] public void Utworz_BezWydarzenia_RzucaWyjatekDomenowy() { Assert.Throws(() => SlotSceny.Utworz(Guid.Empty, 1)); } [Fact] public void Przypisz_ZPustymIdUczestnika_RzucaWyjatekDomenowy() { var slot = SlotSceny.Utworz(WydarzenieId, 1); Assert.Throws(() => slot.Przypisz(Guid.Empty)); } }