Sha256: 7466a9578317cd3094c42f446b016fb628eb3b2c370f4ae09f06bfb4404f60bc
Contents?: true
Size: 1.81 KB
Versions: 3
Compression:
Stored size: 1.81 KB
Contents
require File.join(File.dirname(__FILE__), '_lib.rb') class MoSQL::Test::Functional::SchemaTest < MoSQL::Test::Functional TEST_MAP = <<EOF --- db: collection: :meta: :table: sqltable :columns: - _id: TEXT - var: INTEGER with_extra_props: :meta: :table: sqltable2 :extra_props: true :columns: - _id: INTEGER EOF before do @map = MoSQL::Schema.new(YAML.load(TEST_MAP)) @sequel.drop_table?(:sqltable) @sequel.drop_table?(:sqltable2) @map.create_schema(@sequel) end def table; @sequel[:sqltable]; end def table2; @sequel[:sqltable2]; end it 'Creates the tables with the right columns' do assert_equal(Set.new([:_id, :var]), Set.new(table.columns)) assert_equal(Set.new([:_id, :_extra_props]), Set.new(table2.columns)) end it 'Can COPY data' do objects = [ {'_id' => "a", 'var' => 0}, {'_id' => "b", 'var' => 1}, {'_id' => "c"}, {'_id' => "d", 'other_var' => "hello"} ] @map.copy_data(@sequel, 'db.collection', objects.map { |o| @map.transform('db.collection', o) } ) assert_equal(4, table.count) rows = table.select.sort_by { |r| r[:_id] } assert_equal(%w[a b c d], rows.map { |r| r[:_id] }) assert_equal(nil, rows[2][:var]) assert_equal(nil, rows[3][:var]) end it 'Can COPY BSON::ObjectIDs' do o = {'_id' => BSON::ObjectId.new, 'var' => 0} @map.copy_data(@sequel, 'db.collection', [ @map.transform('db.collection', o)] ) assert_equal(o['_id'].to_s, table.select.first[:_id]) end it 'Can transform BSON::ObjectIDs' do o = {'_id' => BSON::ObjectId.new, 'var' => 0} row = @map.transform('db.collection', o) table.insert(row) assert_equal(o['_id'].to_s, table.select.first[:_id]) end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
mosql-0.1.2 | test/functional/schema.rb |
mosql-0.1.1 | test/functional/schema.rb |
mosql-0.1.0 | test/functional/schema.rb |