public void When_checked_changes_chart_refreshes()
        {
            var dbInfo = MockRepository.GenerateStub<IDBInfo>();
            var chart = MockRepository.GenerateStub<IRefreshChartBinding>();
            var item = new DBInfoListItem(dbInfo, chart);

            item.IsChecked = true;

            chart.AssertWasCalled(x => x.RefreshChartBinding());
        }
        public void Analyse_click_shows_details_view()
        {
            var mocks = new MainViewModelMocks();
            var model = new MainViewModel(mocks.SqlQueryExecutorMock, mocks.MainViewMock,
                                          mocks.WindowsIdentityProviderMock, mocks.DBInfoBuilderMock);

            var dbInfo1 = MockRepository.GenerateStub<IDBInfo>();
            dbInfo1.Stub(x => x.Name).Return("testName");
            var dbInfoViewItem1 = new DBInfoListItem(dbInfo1, null);
            mocks.MainViewMock.Stub(x => x.SelectedItem).Return(dbInfoViewItem1);

            model.Analyse.Execute(null);

            mocks.MainViewMock.AssertWasCalled(x => x.CreateDetailsWindow());
            mocks.DatabaseDetailsWindowMock.AssertWasCalled(x => x.ShowDialog());
            Assert.IsInstanceOfType(mocks.DatabaseDetailsWindowMock.DataContext, typeof(DatabaseDetailsViewModel));
        }
        private void AnalyseClicked()
        {
            DBInfoListItem item = _mainView.SelectedItem;

            if (item == null)
            {
                _mainView.Dialogs.Info("Please select database to analyse");
                return;
            }

            IDatabaseDetailsWindow detailsWindow = _mainView.CreateDetailsWindow();

            using (var viewModel = new DatabaseDetailsViewModel(_sqlExecutor, item.Item.ConnString, item.Item.Name, detailsWindow))
            {
                detailsWindow.DataContext = viewModel;
                detailsWindow.ShowDialog();
            }
        }
        public void Only_checked_databases_shows_on_chart()
        {
            var mocks = new MainViewModelMocks();
            var model = new MainViewModel(mocks.SqlQueryExecutorMock, mocks.MainViewMock,
                                          mocks.WindowsIdentityProviderMock, mocks.DBInfoBuilderMock);

            var chart = MockRepository.GenerateStub<IRefreshChartBinding>();
            var dbInfo1 = MockRepository.GenerateStub<IDBInfo>();
            var dbInfoViewItem1 = new DBInfoListItem(dbInfo1, chart);
            dbInfoViewItem1.IsChecked = true;

            var dbInfo2 = MockRepository.GenerateStub<IDBInfo>();
            var dbInfoViewItem2 = new DBInfoListItem(dbInfo2, chart);
            dbInfoViewItem2.IsChecked = false;

            model.AllDataBases.Add(dbInfoViewItem1);
            model.AllDataBases.Add(dbInfoViewItem2);

            Assert.AreEqual(1, model.DataBasesForChart.Count);
            Assert.AreEqual(dbInfoViewItem1, model.DataBasesForChart[0]);
        }