Sha256: 3b9c9cec0e245bf3a514073fef24663182f2ed9af1a2c62aefdc2e5418d7e0b0

Contents?: true

Size: 1.03 KB

Versions: 3

Compression:

Stored size: 1.03 KB

Contents

require 'spec_helper'

describe MassiveRecord::ORM::Persistence::Operations::Insert do
  include MockMassiveRecordConnection

  let(:record) { TestClass.new("id-1") }
  let(:options) { {:this => 'hash', :has => 'options'} }
  
  subject { described_class.new(record, options) }

  it_should_behave_like "a persistence table operation class"


  describe "#execute" do
    it "ensures that we have table and column families" do
      subject.should_receive(:ensure_that_we_have_table_and_column_families!)
      subject.execute
    end

    it "raises a RecordNotUnique error if we should check it" do
      record.class.should_receive(:check_record_uniqueness_on_create).and_return true 
      record.class.should_receive(:exists?).with(record.id).and_return true
      expect { subject.execute }.to raise_error MassiveRecord::ORM::RecordNotUnique
    end

    it "calls upon store_record_to_database for help with actually insert job" do
      subject.should_receive(:store_record_to_database).with('create')
      subject.execute
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
massive_record-0.2.2 spec/orm/persistence/operations/insert_spec.rb
massive_record-0.2.2.rc2 spec/orm/persistence/operations/insert_spec.rb
massive_record-0.2.2.rc1 spec/orm/persistence/operations/insert_spec.rb