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

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

            //PrepareCells
            var cell1 = Mock.Create<Cell>(Constructor.Mocked);
            Mock.Arrange(() => cell1.IsSelected).Returns(false);
            var cell2 = Mock.Create<Cell>(Constructor.Mocked);
            Mock.Arrange(() => cell2.IsSelected).Returns(true);

            container.Cells.Add(cell1);
            container.Cells.Add(cell2);

            //Assert IsSelected
            container.RaiseSelectionChanged();
            Assert.IsTrue(container.IsSelected);

            //If row indicator column is visible
            Mock.Arrange(() => spreadsheetMock.RowIndicatorVisibility).Returns(Visibility.Visible);
            container.RaiseSelectionChanged();
            Mock.Assert(() => cell1.RaisePropertyChanged("IsRowSelected"), Occurs.Once());
            Mock.Assert(() => cell1.RaisePropertyChanged("Foreground"), Occurs.Once());
            Mock.Assert(() => cell2.RaisePropertyChanged("IsRowSelected"), Occurs.Never());
            Mock.Assert(() => cell2.RaisePropertyChanged("Foreground"), Occurs.Never());

            //Owner.ParentCell is not null
            var parentCell = Mock.Create<StackCell>(Constructor.Mocked);
            var parentCellContainer = Mock.Create<SpreadsheetItemContainer>(Constructor.Mocked);
            Mock.Arrange(() => parentCellContainer.RaiseSelectionChanged()).MustBeCalled();
            Mock.Arrange(() => parentCell.Container).Returns(parentCellContainer);
            Mock.Arrange(() => spreadsheetMock.ParentCell).Returns(parentCell);
            container.RaiseSelectionChanged();
            Mock.Assert(parentCellContainer);
        }