diff --git a/Rakefile b/Rakefile index 29955274..6adbdd9d 100644 --- a/Rakefile +++ b/Rakefile @@ -1 +1,5 @@ -require "bundler/gem_tasks" +require 'bundler/gem_tasks' +require 'rspec/core/rake_task' + +RSpec::Core::RakeTask.new('spec') +task :default => :spec diff --git a/spec/dump_spec.rb b/spec/dump_spec.rb new file mode 100644 index 00000000..57f10a40 --- /dev/null +++ b/spec/dump_spec.rb @@ -0,0 +1,61 @@ +describe 'Ridgepole::Client#dump' do + it do + test_client do |client| + expect(client.dump).to eq((<<-EOS).chomp) +create_table "departments", primary_key: "dept_no", force: true do |t| + t.string "dept_name", limit: 40, null: false +end + +add_index "departments", ["dept_name"], name: "dept_name", unique: true, using: :btree + +create_table "dept_emp", id: false, force: true do |t| + t.integer "emp_no", null: false + t.string "dept_no", limit: 4, null: false + t.date "from_date", null: false + t.date "to_date", null: false +end + +add_index "dept_emp", ["dept_no"], name: "dept_no", using: :btree +add_index "dept_emp", ["emp_no"], name: "emp_no", using: :btree + +create_table "dept_manager", id: false, force: true do |t| + t.string "dept_no", limit: 4, null: false + t.integer "emp_no", null: false + t.date "from_date", null: false + t.date "to_date", null: false +end + +add_index "dept_manager", ["dept_no"], name: "dept_no", using: :btree +add_index "dept_manager", ["emp_no"], name: "emp_no", using: :btree + +create_table "employees", primary_key: "emp_no", force: true do |t| + t.date "birth_date", null: false + t.string "first_name", limit: 14, null: false + t.string "last_name", limit: 16, null: false + t.string "gender", limit: 1, null: false + t.date "hire_date", null: false +end + +create_table "salaries", id: false, force: true do |t| + t.integer "emp_no", null: false + t.integer "salary", null: false + t.date "from_date", null: false + t.date "to_date", null: false +end + +add_index "salaries", ["emp_no"], name: "emp_no", using: :btree + +create_table "titles", id: false, force: true do |t| + t.integer "emp_no", null: false + t.string "title", limit: 50, null: false + t.date "from_date", null: false + t.date "to_date" +end + +add_index "titles", ["emp_no"], name: "emp_no", using: :btree + EOS + end + + expect(1).to eq(1) + end +end diff --git a/spec/ridgepole_spec.rb b/spec/ridgepole_spec.rb deleted file mode 100644 index f0298df6..00000000 --- a/spec/ridgepole_spec.rb +++ /dev/null @@ -1,5 +0,0 @@ -describe Ridgepole::Client do - it do - expect(1).to eq(1) - end -end diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 549f147c..ee1cfadb 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -1,12 +1,26 @@ require 'ridgepole' -def restore_database - sql_file = File.expand_path('../ridgepole_test.sql', __FILE__) - system("mysql -uroot < #{sql_file}") -end - RSpec.configure do |config| config.before(:each) do restore_database end end + +def restore_database + sql_file = File.expand_path('../ridgepole_test.sql', __FILE__) + system("mysql -uroot < #{sql_file}") +end + +def test_client(config = {}, options = {}) + config = { + adapter: 'mysql2', + database: 'ridgepole_test', + }.merge(config) + + options = { + }.merge(options) + + client = Ridgepole::Client.new(config, options) + + yield(client) +end \ No newline at end of file