Inheritance: IMightBeAbleToHelp
        public void ShouldTellUsItCantHelpIfThereIsMoreThanOneSpace()
        {
            // Given some cells with actuals and some without
            var cellsWithActuals = CreateCellsWithActuals(1, 2, 3, 4, 5, 6, 7);
            var cellsWithout = new List<Cell> {new Cell(new CellId(-1, -1)), new Cell(new CellId(-1, -1))};

            // When we pass all of them to the rule
            var allCells = new List<Cell>();
            allCells.AddRange(cellsWithActuals);
            allCells.AddRange(cellsWithout);

            var rule = new OnlyOneSpace();
            var hint = rule.HelpWith(allCells);

            // Then the rule should tell us that it can't help
            Assert.AreEqual(Hint.None, hint);
        }
        public void ShouldProvideAHintIfTheNineCellsOnlyHaveOneSpace()
        {
            // Given eight cells with Actuals
            var cellsWithActuals = CreateCellsWithActuals(1, 2, 3, 4, 5, 6, 7, 8);

            // And one without
            var cellWithout = new Cell(new CellId(-1, -1));

            // When we pass all of them to the rule
            var allCells = new List<Cell>();
            allCells.AddRange(cellsWithActuals);
            allCells.Add(cellWithout);

            var rule = new OnlyOneSpace();
            var hint = rule.HelpWith(allCells);

            // Then the rule should give us back some text about the only empty cell having to be the 9,
            // containing all 9 cells in the hint.
            Assert.IsTrue(hint.Text.Contains("only one"));
            Assert.IsTrue(hint.Text.Contains("9"));
            CollectionAssert.AreEquivalent(hint.CellIds, allCells.Select(c => c.Id));
        }