public void SetIsAlternateMethodTest()
        {
            //Mock spreadsheet
            var spreadsheetMock = Mock.Create<SpreadsheetView>(Constructor.Mocked, Behavior.Loose);
            Mock.Arrange(() => spreadsheetMock.GetTopLevelSpreadsheet()).CallOriginal();

            //Call constructor
            var container = new SpreadsheetItemContainer(spreadsheetMock);

            //TopLevelSpreadsheet.AlternateStyle is None
            container.SetIsAlternate();
            Assert.IsFalse(container.IsAlternate);
            Mock.NonPublic.Assert(container, "GetTopLevelCell", Occurs.Never());

            //Owner is a top level spreadsheet
            Mock.Arrange(() => spreadsheetMock.AlternateStyle).Returns(AlternateStyles.Full);
            Mock.Arrange(() => container.IsOdd).Returns(true);
            container.SetIsAlternate();            
            Assert.IsTrue(container.IsAlternate);
            Assert.AreEqual(container.IsAlternate, container.IsOdd);
            Mock.NonPublic.Assert(container, "GetTopLevelCell", Occurs.Never());

            //Top level AlternateStyle is Full
            Mock.Arrange(() => spreadsheetMock.ParentSpreadsheet).Returns(Mock.Create<SpreadsheetView>(Constructor.Mocked));
            Mock.Arrange(() => container.IsOdd).Returns(false);
            container.SetIsAlternate();
            Assert.IsFalse(container.IsAlternate);
            Assert.AreEqual(container.IsAlternate, container.IsOdd);
            Mock.NonPublic.Assert(container, "GetTopLevelCell", Occurs.Never());

            //Otherwise
            Mock.Arrange(() => spreadsheetMock.AlternateStyle).Returns(AlternateStyles.TopLevel);
            var topLevelCell = Mock.Create<Cell>(Constructor.Mocked);
            var topLevelCellContainer = Mock.Create<SpreadsheetItemContainer>(Constructor.Mocked);
            Mock.Arrange(() => topLevelCell.Container).Returns(topLevelCellContainer);
            Mock.Arrange(() => topLevelCellContainer.IsOdd).Returns(true);
            Mock.NonPublic.Arrange<CellBase>(container, "GetTopLevelCell").Returns(topLevelCell);
            container.SetIsAlternate();
            Assert.IsTrue(container.IsAlternate);
            Assert.AreEqual(container.IsAlternate, topLevelCellContainer.IsOdd);
            Mock.NonPublic.Assert(container, "GetTopLevelCell", Occurs.Once());
        }
Example #2
0
 /// <summary>
 /// Populates the cells.
 /// </summary>
 /// <param name="ic">The ic.</param>
 /// <param name="item">The item.</param>
 private static void PopulateCells(SpreadsheetItemContainer ic, IWrap item)
 {
     ic.Item = item;
     ic.IsOdd = ic.Item.Index % 2 != 0;
     ic.SetIsAlternate();
 }