using QuestionsApi.Models; using QuestionsApi.Services.Flashcards; using Xunit; namespace QuestionsApi.Tests; public sealed class FlashcardOwnershipTests { [Theory] [InlineData(false, false, true)] [InlineData(false, true, false)] [InlineData(true, false, true)] [InlineData(true, true, true)] public void CanMutate_MatchesTruthTable(bool isSuper, bool targetIsSystem, bool expected) { Assert.Equal(expected, FlashcardOwnershipGuard.CanMutate(isSuper, targetIsSystem)); } [Fact] public void FlashcardDeck_IsSystem_TrueOnlyForTheReservedOwner() { Assert.True(new FlashcardDeck { UserId = FlashcardOwners.System }.IsSystem); Assert.False(new FlashcardDeck { UserId = "a-real-user-id" }.IsSystem); } [Fact] public void FlashcardNote_IsSystem_TrueOnlyForTheReservedOwner() { Assert.True(new FlashcardNote { UserId = FlashcardOwners.System }.IsSystem); Assert.False(new FlashcardNote { UserId = "a-real-user-id" }.IsSystem); } }