using JdeScoping.ExcelIO.Models.Reporting; using Shouldly; using Xunit; namespace JdeScoping.ExcelIO.Tests; public class InclusionReasonTests { [Fact] public void InclusionReason_ManuallySpecified_ReturnsManuallySpecified() { var result = new SearchResult { ManuallySpecified = true }; result.InclusionReason.ShouldBe("ManuallySpecified"); } [Fact] public void InclusionReason_Flagged_ReturnsFlagged() { var result = new SearchResult { Flagged = true }; result.InclusionReason.ShouldBe("Flagged"); } [Fact] public void InclusionReason_CardexAndPartsList_ReturnsComponentUsageBoth() { var result = new SearchResult { Cardex = true, PartsList = true }; result.InclusionReason.ShouldBe("ComponentUsage (CARDEX + Parts List)"); } [Fact] public void InclusionReason_CardexOnly_ReturnsComponentUsageCardex() { var result = new SearchResult { Cardex = true, PartsList = false }; result.InclusionReason.ShouldBe("ComponentUsage (CARDEX)"); } [Fact] public void InclusionReason_PartsListOnly_ReturnsComponentUsagePartsList() { var result = new SearchResult { Cardex = false, PartsList = true }; result.InclusionReason.ShouldBe("ComponentUsage (Parts List)"); } [Fact] public void InclusionReason_SplitOrder_ReturnsSplitOrder() { var result = new SearchResult { SplitOrder = true }; result.InclusionReason.ShouldBe("Split order"); } [Fact] public void InclusionReason_NoFlags_ReturnsUnknown() { var result = new SearchResult(); result.InclusionReason.ShouldBe("UNKNOWN"); } [Fact] public void InclusionReason_ManuallySpecified_TakesPrecedenceOverFlagged() { var result = new SearchResult { ManuallySpecified = true, Flagged = true }; result.InclusionReason.ShouldBe("ManuallySpecified"); } [Fact] public void InclusionReason_Flagged_TakesPrecedenceOverCardex() { var result = new SearchResult { Flagged = true, Cardex = true }; result.InclusionReason.ShouldBe("Flagged"); } [Fact] public void InclusionReason_Cardex_TakesPrecedenceOverSplitOrder() { var result = new SearchResult { Cardex = true, SplitOrder = true }; result.InclusionReason.ShouldBe("ComponentUsage (CARDEX)"); } }