public void The_DatabaseName_Is_Wired_Up_Correctly_With_Database()
        {
            IDatabaseForm form = MockRepository.GenerateMock <IDatabaseForm>();
            Database      obj  = new Database("Database1");

            ISQLServer2005DatabaseConnector connector = MockRepository.GenerateStub <ISQLServer2005DatabaseConnector>();

            connector.ConnectionInformation = new ConnectionStringHelper
            {
                UserName    = "******",
                Password    = "******",
                ServerName  = "Server",
                UseFileName = false
            };
            connector.DatabaseName = "DatabaseName";
            obj.Loader             = new SQLServer2005DatabaseLoader(connector);

            IMainPanel panel = MockRepository.GenerateMock <IMainPanel>();

            var presenter = new DatabasePresenter(panel, form);

            presenter.AttachToModel(obj);

            form.AssertWasCalled(a => a.SelectedDatabaseType = DatabaseTypes.SQLServer2005);
            form.AssertWasCalled(a => a.SetDatabase("DatabaseName"));
            form.AssertWasCalled(a => a.Username           = "******");
            form.AssertWasCalled(a => a.Password           = "******");
            form.AssertWasCalled(a => a.SelectedServerName = "Server");
            form.AssertWasCalled(a => a.DatabaseHelper     = Arg <IServerAndDatabaseHelper> .Is.NotNull);
        }
        public void Creates_A_New_Database_If_No_Database_Has_Been_Previously_Loaded()
        {
            IDatabaseForm form  = MockRepository.GenerateMock <IDatabaseForm>();
            IMainPanel    panel = MockRepository.GenerateMock <IMainPanel>();

            DatabasePresenter presenter = new DatabasePresenter(panel, form);

            AutoResetEvent arEvent = new AutoResetEvent(false);

            presenter.NewDatabaseCreated += (sender, e) => arEvent.Set();

            Assert.That(presenter.Database, Is.Null);

            form.Stub(t => t.SelectedDatabaseType).Return(DatabaseTypes.SQLCE);
            form.Stub(t => t.SelectedDatabase).Return("1Table3Columns.sdf");

            var raiser = form.GetEventRaiser(t => t.RefreshSchema += null);

            raiser.Raise(form, null);

            Assert.That(arEvent.WaitOne(10000, true), "The test timed out waiting for the NewDatabaseCreated event to be triggered");

            Assert.That(presenter.Database, Is.Not.Null);
            Assert.That(presenter.Database.Name, Is.EqualTo("1Table3Columns"));
        }
        public void The_Presenter_Refreshes_The_Database_And_Attempts_To_Show_The_Results()
        {
            IDatabaseForm form  = MockRepository.GenerateMock <IDatabaseForm>();
            IMainPanel    panel = MockRepository.GenerateMock <IMainPanel>();
            IDatabase     db    = MockRepository.GenerateStub <IDatabase>();

            db.Stub(d => d.Tables).Return(new ReadOnlyCollection <ITable>(new List <ITable>()));

            var presenter = new DatabasePresenter(panel, form);

            presenter.AttachToModel(db);

            AutoResetEvent arEvent = new AutoResetEvent(false);

            presenter.SchemaRefreshed += (sender, e) => arEvent.Set();

            form.Stub(t => t.SelectedDatabaseType).Return(DatabaseTypes.SQLCE);
            form.Stub(t => t.SelectedDatabase).Return("1Table3Columns.sdf");

            var raiser = form.GetEventRaiser(t => t.RefreshSchema += null);

            raiser.Raise(form, null);

            Assert.That(arEvent.WaitOne(10000, true), "The test timed out waiting for the SchemaRefreshed event to be triggered");

            panel.AssertWasCalled(p => p.ShowDatabaseRefreshResults(
                                      Arg <DatabaseMergeResult> .Matches(t => t.TableOperations.Count() == 1)));
        }
        private void buttonFinish_Click(object sender, EventArgs e)
        {
            if (ucDatabaseInformation1.ConnectionStringHelper.CurrentDbType == DatabaseTypes.Unknown)
            {
                MessageBox.Show(this, "Please select a database.", "Missing data", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
            Cursor = Cursors.WaitCursor;

            try
            {
                bool informationFilled = TestConnection(false, ucDatabaseInformation1);

                if (informationFilled == false)
                {
                    return;
                }

                NewProjectForm.SetScreenData(ScreenDataKey, new ScreenData(DatabasePresenter.CreateDatabaseLoader(ucDatabaseInformation1)));

                NewProjectForm.UserChosenAction      = NewProjectFormActions.NewProject;
                NewProjectForm.NewProjectInformation = new LoadExistingDatabaseInfo
                {
                    DatabaseLoader   = DatabasePresenter.CreateDatabaseLoader(ucDatabaseInformation1),
                    ConnStringHelper = ucDatabaseInformation1.GetHelper()
                };

                NewProjectForm.LoadScreen(typeof(SelectDatabaseObjects));
            }
            finally
            {
                Cursor = Cursors.Default;
            }
        }
        public void The_DatabaseName_Is_Wired_Up_Correctly()
        {
            IDatabaseForm form = MockRepository.GenerateMock <IDatabaseForm>();
            Database      obj  = new Database("Database1");

            obj.Loader = DatabaseLoaderFacade.GetSQLCELoader("asdfsdf.sdf");
            IMainPanel panel = MockRepository.GenerateMock <IMainPanel>();

            var presenter = new DatabasePresenter(panel, form);

            presenter.AttachToModel(obj);

            form.AssertWasCalled(a => a.SelectedDatabaseType = DatabaseTypes.SQLCE);
            form.AssertWasCalled(a => a.SetDatabaseFilename("asdfsdf.sdf"));
            form.AssertWasCalled(a => a.DatabaseHelper = Arg <IServerAndDatabaseHelper> .Is.NotNull);
        }
Ejemplo n.º 6
0
        private void Save()
        {
            if (_Database.ConnectionInformation == null)
            {
                IDatabaseLoader dbLoader = DatabasePresenter.CreateDatabaseLoader(ucDatabaseInformation1);

                try
                {
                    _Database = dbLoader.LoadDatabase(dbLoader.DatabaseObjectsToFetch, null);
                }
                catch (DatabaseLoaderException e)
                {
                    #region Save what we can
                    _Database.DatabaseType = ucDatabaseInformation1.SelectedDatabaseType;

                    _Database.ConnectionInformation          = new Helper.ConnectionStringHelper();
                    _Database.ConnectionInformation.FileName = ucDatabaseInformation1.ConnectionStringHelper.FileName;
                    _Database.ConnectionInformation.UseIntegratedSecurity = ucDatabaseInformation1.ConnectionStringHelper.UseIntegratedSecurity;
                    _Database.ConnectionInformation.UserName    = ucDatabaseInformation1.ConnectionStringHelper.UserName;
                    _Database.ConnectionInformation.Password    = ucDatabaseInformation1.ConnectionStringHelper.Password;
                    _Database.ConnectionInformation.Port        = ucDatabaseInformation1.ConnectionStringHelper.Port;
                    _Database.ConnectionInformation.ServerName  = ucDatabaseInformation1.ConnectionStringHelper.ServerName;
                    _Database.ConnectionInformation.ServiceName = ucDatabaseInformation1.ConnectionStringHelper.ServiceName;
                    #endregion

                    //if (e.InnerException != null && e.InnerException.Message.StartsWith("Database cannot be null, the empty string, or string of only whitespace."))
                    //    return;
                    //else
                    //    throw;
                }
            }
            else
            {
                //_Database.Name = ucDatabaseInformation1.ConnectionStringHelper.DatabaseName;
                _Database.DatabaseType = ucDatabaseInformation1.SelectedDatabaseType;
                var connStringHelper = ucDatabaseInformation1.ConnectionStringHelper;

                _Database.ConnectionInformation.FileName = connStringHelper.FileName;
                _Database.ConnectionInformation.UseIntegratedSecurity = connStringHelper.UseIntegratedSecurity;
                _Database.ConnectionInformation.UserName    = connStringHelper.UserName;
                _Database.ConnectionInformation.Password    = connStringHelper.Password;
                _Database.ConnectionInformation.Port        = connStringHelper.Port;
                _Database.ConnectionInformation.ServerName  = connStringHelper.ServerName;
                _Database.ConnectionInformation.ServiceName = connStringHelper.ServiceName;
            }
        }
        internal static bool TestConnection(bool showSuccess, ArchAngel.Providers.EntityModel.UI.PropertyGrids.ucDatabaseInformation dbInfo)
        {
            Monitor.Enter(databaseLock);

            try
            {
                if (!dbInfo.ReadyToProceed())
                {
                    return(false);
                }

                dbInfo.SetDatabaseOperationResults(new DatabaseOperationResults("Testing connection...", true));

                IDatabaseLoader loader = DatabasePresenter.CreateDatabaseLoader(dbInfo);

                try
                {
                    loader.TestConnection();
                    if (showSuccess)
                    {
                        dbInfo.SetDatabaseOperationResults(new DatabaseOperationResults("Connection Test", true));
                    }

                    return(true);
                }
                catch (DatabaseLoaderException e)
                {
                    DatabaseOperationResults results = new DatabaseOperationResults("Connection Test", false, e.ActualMessage);

                    dbInfo.SetDatabaseOperationResults(results);

                    return(false);
                }
            }
            finally
            {
                Monitor.Exit(databaseLock);
            }
        }
        public void A_SQLCEDatabaseLoader_Is_Returned()
        {
            IDatabaseForm form  = MockRepository.GenerateMock <IDatabaseForm>();
            IMainPanel    panel = MockRepository.GenerateMock <IMainPanel>();

            DatabasePresenter presenter = new DatabasePresenter(panel, form);

            form.Stub(t => t.SelectedDatabaseType).Return(DatabaseTypes.SQLCE);
            form.Stub(t => t.SelectedDatabase).Return("1Table3Columns.sdf");

            IDatabaseLoader loader = presenter.CreateDatabaseLoader();

            Assert.That(loader, Is.Not.Null);
            Assert.That(loader, Is.TypeOf(typeof(SQLCEDatabaseLoader)));

            // Will throw an error if the database connection could not be established.
            loader.TestConnection();

            IDatabase db = loader.LoadDatabase();

            Assert.That(db.Name, Is.EqualTo("1Table3Columns"));
            Assert.That(db.Tables, Has.Count(1));             // Basic check to see if we got the correct database back.
        }
        public void A_SQLServer2005DatabaseLoader_Is_Returned()
        {
            IDatabaseForm form  = MockRepository.GenerateMock <IDatabaseForm>();
            IMainPanel    panel = MockRepository.GenerateMock <IMainPanel>();

            DatabasePresenter presenter = new DatabasePresenter(panel, form);

            form.Stub(t => t.SelectedDatabaseType).Return(DatabaseTypes.SQLServer2005);
            form.Stub(t => t.ConnectionStringHelper).Return(new ConnectionStringHelper
            {
                CurrentDbType         = DatabaseTypes.SQLServer2005,
                DatabaseName          = "TestDatabase",
                Password              = "******",
                ServerName            = ".",
                UseFileName           = false,
                UseIntegratedSecurity = false,
                UserName              = "******"
            });

            IDatabaseLoader loader = presenter.CreateDatabaseLoader();

            Assert.That(loader, Is.Not.Null);
            Assert.That(loader, Is.TypeOf(typeof(SQLServer2005DatabaseLoader)));
        }
 private void buttonBack_Click(object sender, EventArgs e)
 {
     NewProjectForm.SetScreenData(ScreenDataKey, new ScreenData(DatabasePresenter.CreateDatabaseLoader(ucDatabaseInformation1)));
     NewProjectForm.LoadScreen(typeof(LoadExistingProject));
 }