using UnitTestSharp; namespace Ariadne.Generator.UnitTests { public class StepLabelSuppressorTests : TestFixture { public class ReportSuppressionsTests : TestFixture { public void UnusedLabelInAPassage_IsSilenced() { GeneratorRun run = GeneratorRun.Of(@" public partial class Labeled : Arc { protected override void Run(World world) { greet: world.Open.Add(""greeted""); wait: while (!world.Open.Contains(""wait"")) { Yield(); } } }"); CheckEqual(0, run.Compiled.Count); } public void UnusedLabelOutsideAPassage_StillWarns() { GeneratorRun run = GeneratorRun.Of(@" public partial class Helped : Arc { private void Helper(World world) { unused: world.Open.Add(""helped""); } protected override void Run(World world) { Helper(world); } }"); CheckEqual(new[] { "CS0164:unused" }, run.Compiled); } public void UnusedLabelInAnArcWritingItsOwnResume_StillWarns() { GeneratorRun run = GeneratorRun.Of(@" public class HandWritten : Arc { protected override bool __Resume(World world, Ariadne.TickTime time) { unused: return true; } protected override void Run(World world) { } }"); CheckEqual(new[] { "CS0164:unused" }, run.Compiled); } public void UnusedLabelOutsideAScript_StillWarns() { GeneratorRun run = GeneratorRun.Of(@" public class Plain { public void Method(World world) { unused: world.Open.Add(""plain""); } }"); CheckEqual(new[] { "CS0164:unused" }, run.Compiled); } } } }