]> gitweb.michael.orlitzky.com - mailshears.git/blobdiff - test/rm_account_test.rb
Add a test suite which just creates/deletes databases for now.
[mailshears.git] / test / rm_account_test.rb
diff --git a/test/rm_account_test.rb b/test/rm_account_test.rb
new file mode 100644 (file)
index 0000000..b2d6174
--- /dev/null
@@ -0,0 +1,82 @@
+require 'pg'
+require 'test/unit'
+require 'common/configuration'
+
+class RmAccountTest < Test::Unit::TestCase
+
+  TESTCONF_PATH = 'test/mailshears.test.conf.yml'
+
+  def connect_superuser()
+    db_host = 'localhost'
+    db_port = 5432
+    db_opts = nil
+    db_tty = nil
+    db_name = 'postgres'
+    db_user = 'postgres'
+    db_pass = nil
+
+    connection = PGconn.connect(db_host,
+                                db_port,
+                                db_opts,
+                                db_tty,
+                                db_name,
+                                db_user,
+                                db_pass)
+
+    return connection
+  end
+
+
+  def test_dummy
+    assert(true)
+  end
+
+  def setup
+    # Create databases using from the test configuration file.
+    cfg = Configuration.new(TESTCONF_PATH)
+    connection = connect_superuser()
+
+    cfg.plugins.each do |plugin|
+      plugin_dbname = cfg.send("#{plugin}_dbname")
+      query = "CREATE DATABASE #{plugin_dbname};"
+      connection.query(query)
+
+      plugin_dbhost = cfg.send("#{plugin}_dbhost")
+      plugin_dbport = cfg.send("#{plugin}_dbport")
+      plugin_dbopts = cfg.send("#{plugin}_dbopts")
+      plugin_dbtty  = cfg.send("#{plugin}_dbtty")
+      plugin_dbuser = cfg.send("#{plugin}_dbuser")
+      plugin_dbpass = cfg.send("#{plugin}_dbpass")
+
+      plugin_conn = PGconn.connect(plugin_dbhost,
+                                   plugin_dbport,
+                                   plugin_dbopts,
+                                   plugin_dbtty,
+                                   plugin_dbname,
+                                   plugin_dbuser,
+                                   plugin_dbpass)
+
+      sql = File.open("test/sql/#{plugin}.sql").read()
+      plugin_conn.query(sql)
+      plugin_conn.close()
+    end
+
+    connection.close()
+  end
+
+
+  def teardown
+    # Destroy databases using from the test configuration file.
+    cfg = Configuration.new(TESTCONF_PATH)
+    connection = connect_superuser()
+
+    cfg.plugins.each do |plugin|
+      plugin_dbname = cfg.send("#{plugin}_dbname")
+      query = "DROP DATABASE #{plugin_dbname};"
+      connection.query(query)
+    end
+
+    connection.close()
+  end
+
+end