spec/functional/adapter/adapter_spec.rb in bigbroda-0.0.7 vs spec/functional/adapter/adapter_spec.rb in bigbroda-0.1.0.pre

- old
+ new

@@ -44,160 +44,162 @@ def change remove_column :users, :published end end -class User < ActiveRecord::Base +class User < ActiveRecord::Base validates :name, presence: true has_many :posts scope :admins , ->{where(admin: true)} end -class Post < ActiveRecord::Base +class Post < ActiveRecord::Base validates :title, presence: true belongs_to :user end def create_tables - @table = GoogleBigquery::Table.create(@project, @name, @table_body ) - + @table = BigBroda::Table.create(@project, @name, @table_body ) + @rows = {"rows"=> [ { "insertId"=> Time.now.to_i.to_s, "json"=> { "name"=> "User #{Time.now.to_s}" } } ]} - - GoogleBigquery::TableData.create(@project, @name, @table_name , @rows ) + + BigBroda::TableData.create(@project, @name, @table_name , @rows ) end describe "ActiveRecord Adapter", :vcr => { :allow_unused_http_interactions => true } do let(:migration) { CreateUsers.new} let(:posts_migration) { CreatePosts.new} let(:add_col_migration) { AddPublishedToUser.new} let(:remove_col_migration) { RemovePublishedToUser.new} - before :all do + before :all do VCR.use_cassette("ActiveRecord_Adapter/authorize_config") do config_setup - @auth = GoogleBigquery::Auth.new + @auth = BigBroda::Auth.new @auth.authorize @name = "rspec_schema" @project = config_options["email"].match(/(\d*)/)[0] @table_name = "users" @table_body = { "tableReference"=> { "projectId"=> @project, "datasetId"=> @name, - "tableId"=> @table_name}, - "schema"=> [:fields=>[ + "tableId"=> @table_name}, + "schema"=> [:fields=>[ {:name=> "id", :type=> "string"}, {:name=> "name", :type=> "string", :mode => "REQUIRED"}, {:name=> "age", :type=> "integer"}, {:name=> "weight", :type=> "float"}, {:name=> "is_magic", :type=> "boolean"} ] ] } ActiveRecord::Base.establish_connection( - :adapter => 'bigquery', + :adapter => 'bigquery', :project => @project, :database => @name ) end end - before :each do + before :each do VCR.use_cassette("ActiveRecord_Adapter/create_each") do - GoogleBigquery::Dataset.create(@project, + BigBroda::Dataset.create(@project, {"datasetReference"=> { "datasetId" => @name }} ) - create_tables + create_tables end end - after :each do + after :each do VCR.use_cassette("ActiveRecord_Adapter/after_each") do - GoogleBigquery::Dataset.delete(@project, @name) + BigBroda::Dataset.delete(@project, @name) end end - describe "adapter" do + describe "adapter" do it "simple quering", :vcr do #sleep 50 #binding.pry #User.select("name, id").where("name contains ?", "frank").count #User.select("name, id").where("name contains ?", "frank") #User.select("name, id") #User.create(name: "frank capra") #User.find_by(id: "some-id-1393025921") #User.where("id =? and name= ?", "some-id-1393025921", "User 2014-02-21 20:38:41 -0300") + expect(User.count).to be 1 expect(User.first).to be_an_instance_of User expect(User.all.size).to be 1 end end describe "migrations" do - - before :each do + + before :each do VCR.use_cassette("ActiveRecord_Adapter/after_each") do - GoogleBigquery::Table.delete(@project, @name, "users") - migration.up; User.reset_column_information + BigBroda::Table.delete(@project, @name, "users") + migration.up; User.reset_column_information end end - - describe '#up', vcr: {:record => :new_episodes} do + + describe '#up', vcr: {:record => :new_episodes} do it 'adds the created_at & updated_at column', :vcr do User.columns_hash.should have_key('created_at') User.columns_hash.should have_key('updated_at') end end describe '#down', vcr: {:record => :new_episodes} do - before { - migration.down; User.reset_column_information + before { + migration.down; User.reset_column_information } - + it 'adds the email_at_utc_hour column' do User.should_not be_table_exists end end - #describe "add column", vcr: {:record => :new_episodes} do - # before { - # add_col_migration.change; User.reset_column_information + #describe "add column", vcr: {:record => :new_episodes} do + # before { + # add_col_migration.change; User.reset_column_information # } - + # it 'adds published column' do # #binding.pry # User.columns_hash.should have_key('published') # end #end - describe "remove column", vcr: {:record => :new_episodes} do - before { - add_col_migration.change; User.reset_column_information + describe "remove column", vcr: {:record => :new_episodes} do + before { + add_col_migration.change; User.reset_column_information } - + it 'should raise error' do expect{remove_col_migration.change}.to raise_error end end - describe "associations", vcr: {:record => :new_episodes} do - before { - posts_migration.up; Post.reset_column_information + describe "associations", vcr: {:record => :new_episodes} do + before { + posts_migration.up; Post.reset_column_information } - it "users_posts" do + it "users_posts" do + #binding.pry User.create(name: "ALF") #sleep 50 post = User.first.posts.create(title: "yeah") #sleep 50 expect(User.first).to respond_to(:id) \ No newline at end of file