public void UploadFile()
        {
            DatabaseFileHandler dfh = new DatabaseFileHandler();

            String fileName = "test.txt";
            String path     = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
            String fullPath = System.IO.Path.Combine(path, fileName);

            if (!File.Exists(fullPath))
            {
                using (StreamWriter sw = File.CreateText(fullPath))
                {
                    sw.WriteLine("TEST FILE :)");
                    sw.WriteLine("Maybe it needs lots of text????");
                }
                while (!File.Exists(fullPath))
                {
                    Thread.Sleep(1000);
                }
            }

            int i = dfh.UploadFile(projectID, File.Open(fullPath, FileMode.Open), fileName);

            Assert.AreEqual(1, i);
            File.Delete(fullPath);
        }
        public void DownloadAllFiles()
        {
            DatabaseFileHandler dfh = new DatabaseFileHandler();

            String fileName = "test.txt";
            String path     = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
            String fullPath = System.IO.Path.Combine(path, fileName);

            if (!File.Exists(fullPath))
            {
                using (StreamWriter sw = File.CreateText(fullPath))
                {
                    sw.WriteLine("TEST FILE :)");
                    sw.WriteLine("Maybe it needs lots of text????");
                }
                while (!File.Exists(fullPath))
                {
                    Thread.Sleep(1000);
                }
            }

            int i = dfh.UploadFile(projectID, File.Open(fullPath, FileMode.Open), fileName);

            path = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);

            List <String> fileList = dfh.DownloadAllFiles(projectID, path);

            foreach (String f in fileList)
            {
                if (File.Exists(f))
                {
                    Assert.IsTrue(true);
                    File.Delete(f);
                }
            }

            int fileID = 0;

            ConnectionClass.OpenConnection();
            MySqlCommand comm = ConnectionClass.con.CreateCommand();

            comm.CommandText = "SELECT FileID FROM storedfiles sf WHERE sf.FileName = @fileName AND sf.ProjectID = @id";
            comm.Parameters.AddWithValue("@fileName", fileName);
            comm.Parameters.AddWithValue("@id", projectID);
            using (MySqlDataReader sqlQueryResult = comm.ExecuteReader())
                if (sqlQueryResult != null)
                {
                    sqlQueryResult.Read();
                    fileID = Int32.Parse(sqlQueryResult["FileID"].ToString());
                }
            ConnectionClass.CloseConnection();

            dfh.DeleteFile(fileID);
        }
示例#3
0
        private DatabaseFileHandler InitializeDatabase(InitializationSettings settings)
        {
            var databaseFileHandler = new DatabaseFileHandler(settings.DatabaseName);

            if (settings.EnforceRecreationOfDatabase || !databaseFileHandler.DatabaseExists())
            {
                databaseFileHandler.DeleteDatabaseIfExists();
                databaseFileHandler.CreateNewDatabase();
            }

            return(databaseFileHandler);
        }
示例#4
0
        public async Task Database_CreateAndUpdate_UpdatesRunWithoutException()
        {
            // Arrange
            var exampleFile         = "UpdateTest.db";
            var databaseFileHandler = new DatabaseFileHandler(exampleFile);

            databaseFileHandler.DeleteDatabaseIfExists();
            var testInfrastructure = new TestInfrastructure();

            // Act && Assert

            await testInfrastructure.CreateNewUnittestDatabaseAsync(exampleFile);

            databaseFileHandler.DeleteDatabaseIfExists();
        }
示例#5
0
        public void Database_Create_GetsCreated()
        {
            // Arrange
            var exampleFile         = "CreateFileTest.db";
            var databaseFileHandler = new DatabaseFileHandler(exampleFile);

            databaseFileHandler.DeleteDatabaseIfExists();

            // Act && Assert
            var fullexampleFile = Path.Combine(DataDirectories.GetUserApplicationDatabasesDirectory(), exampleFile);

            Assert.DoesNotThrow(() => databaseFileHandler.CreateNewDatabase());

            Assert.That(File.Exists(fullexampleFile));
            databaseFileHandler.DeleteDatabaseIfExists();
        }
        public void DownloadFile()
        {
            DatabaseFileHandler dfh = new DatabaseFileHandler();

            String path = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);

            List <String> fileList = dfh.DownloadFile(projectID, path);

            foreach (String f in fileList)
            {
                if (File.Exists(f))
                {
                    Assert.IsTrue(true);
                    File.Delete(f);
                }
            }
        }
示例#7
0
        public async Task UpdateDatabaseAsync(IMediator mediator, string database)
        {
            var databaseFileHandler = new DatabaseFileHandler(database);

            foreach (var updateStep in this._updateCoordinator.GetUpdateStepsBeginningFromVersion(new Version(1, 0, 0,
                                                                                                              0)))
            {
                using (var connection = databaseFileHandler.OpenConnection())
                {
                    using (var transaction = connection.BeginTransaction())
                    {
                        var scriptsToRun = updateStep.GetSqlUpdateScripts();
                        foreach (var script in scriptsToRun)
                        {
                            await connection.ExecuteAsync(script);
                        }

                        transaction.Commit();
                    }
                }

                await updateStep.PerformMigrationsAsync(mediator);
            }
        }
示例#8
0
        public void Database_Create_ConnectionCouldBeEstablished()
        {
            // Arrange
            var exampleFile         = "ConnectionAfterCreateTest.db";
            var databaseFileHandler = new DatabaseFileHandler(exampleFile);

            databaseFileHandler.DeleteDatabaseIfExists();

            // Act && Assert
            var fullexampleFile = Path.Combine(DataDirectories.GetUserApplicationDatabasesDirectory(), exampleFile);

            Assert.DoesNotThrow(() => databaseFileHandler.CreateNewDatabase());
            var fileWasCreated      = File.Exists(fullexampleFile);
            var connectionWasOpened = false;

            using (var connection = databaseFileHandler.OpenConnection())
            {
                connectionWasOpened = connection.State == ConnectionState.Open;
            }

            Assert.That(fileWasCreated);
            Assert.That(connectionWasOpened);
            databaseFileHandler.DeleteDatabaseIfExists();
        }
        public void DeleteFile()
        {
            DatabaseFileHandler dfh = new DatabaseFileHandler();

            String fileName = "test.txt";
            String path     = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
            String fullPath = System.IO.Path.Combine(path, fileName);

            if (!File.Exists(fullPath))
            {
                FileStream f = File.Create(fullPath);
                f.Close();
            }

            dfh.UploadFile(projectID, File.Open(fullPath, FileMode.Open), fileName);

            int fileID = 0;

            ConnectionClass.OpenConnection();
            MySqlCommand comm = ConnectionClass.con.CreateCommand();

            comm.CommandText = "SELECT FileID FROM storedfiles sf WHERE sf.FileName = @fileName AND sf.ProjectID = @id";
            comm.Parameters.AddWithValue("@fileName", fileName);
            comm.Parameters.AddWithValue("@id", projectID);
            using (MySqlDataReader sqlQueryResult = comm.ExecuteReader())
                if (sqlQueryResult != null)
                {
                    sqlQueryResult.Read();
                    fileID = Int32.Parse(sqlQueryResult["FileID"].ToString());
                }
            ConnectionClass.CloseConnection();

            int i = dfh.DeleteFile(fileID);

            Assert.AreEqual(1, i);
        }
示例#10
0
        public void viewProjectFiles()
        {
            ConnectionClass.OpenConnection();

            //Add the expected record to the database, which will have a title of "test" and a user ID of "1".
            ProjectManager pm = new ProjectManager();
            //Create and upload test file
            DatabaseFileHandler dfh = new DatabaseFileHandler();

            String fileName = "viewProjectFilesTest.txt";
            String path     = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
            String fullPath = System.IO.Path.Combine(path, fileName);

            if (!File.Exists(fullPath))
            {
                using (StreamWriter sw = File.CreateText(fullPath))
                {
                    sw.WriteLine("TEST FILE :3");
                    sw.WriteLine("Maybe it needs lots of text????");
                }
                while (!File.Exists(fullPath))
                {
                    Thread.Sleep(1000);
                }
            }

            int expectedRowCount = dfh.UploadFile(projectID, File.Open(fullPath, FileMode.Open), fileName);

            //Actual
            DataTable dt             = pm.viewProjectFiles(projectID);
            int       actualRowCount = dt.Rows.Count;

            Assert.AreEqual(expectedRowCount, actualRowCount);

            File.Delete(fullPath);
            DatabaseFileHandler dbfh = new DatabaseFileHandler();

            ConnectionClass.OpenConnection();
            MySqlCommand comm = ConnectionClass.con.CreateCommand();

            comm.CommandText = "SELECT FileID FROM storedfiles sf WHERE sf.FileName = @fileName AND sf.ProjectID = @id";
            comm.Parameters.AddWithValue("@fileName", fileName);
            comm.Parameters.AddWithValue("@id", projectID);

            int fileID = 0;

            using (MySqlDataReader sqlQueryResult = comm.ExecuteReader())
                if (sqlQueryResult != null)
                {
                    sqlQueryResult.Read();
                    fileID = Int32.Parse(sqlQueryResult["FileID"].ToString());
                }
            ConnectionClass.CloseConnection();

            int i = dfh.DeleteFile(fileID);



            //REMEMBER TO DELETE THE PROJECT RECORDS with pete's method
            newProject.DeleteProject(projectID);
        }
示例#11
0
        public void RunAfterAnyTests()
        {
            var fileHandler = new DatabaseFileHandler(ExampleDatabase);

            fileHandler.ArchiveDatabase("Unittests_LastRun.db");
        }
示例#12
0
        private static void DeleteUnittestDatabase(string databaseName)
        {
            var fileHandler = new DatabaseFileHandler(databaseName);

            fileHandler.DeleteDatabaseIfExists();
        }