public void CompareToTest(Comparison expected, string[] toppings1, string[] toppings2) { var t1 = new Toppings(toppings1); var t2 = new Toppings(toppings2); switch (expected) { case Comparison.Less: Assert.LessOrEqual((int)expected, t1.CompareTo(t2)); break; case Comparison.Same: Assert.AreEqual((int)expected, t1.CompareTo(t2)); break; case Comparison.Greater: Assert.GreaterOrEqual((int)expected, t1.CompareTo(t2)); break; default: throw new ArgumentOutOfRangeException(nameof(expected), expected, null); } }