Sha256: 113281dbb7b6c6eaf58fc9fcb1b42429eb3be6c89d4c862ae2e975ebe52857b5

Contents?: true

Size: 1002 Bytes

Versions: 21

Compression:

Stored size: 1002 Bytes

Contents

require 'spec_helper'
describe Upsert do
  describe "is thread-safe" do
    it "is safe to use one-by-one" do
      upsert = Upsert.new $conn, :pets
      assert_creates(Pet, [{:name => 'Jerry', :gender => 'neutered'}]) do
        ts = []
        10.times do
          ts << Thread.new do
            sleep 0.2
            upsert.row({:name => 'Jerry'}, :gender => 'male')
            upsert.row({:name => 'Jerry'}, :gender => 'neutered')
          end
          ts.each { |t| t.join }
        end
      end
    end
    it "is safe to use batch" do
      assert_creates(Pet, [{:name => 'Jerry', :gender => 'neutered'}]) do
        Upsert.batch($conn, :pets) do |upsert|
          ts = []
          10.times do
            ts << Thread.new do
              sleep 0.2
              upsert.row({:name => 'Jerry'}, :gender => 'male')
              upsert.row({:name => 'Jerry'}, :gender => 'neutered')
            end
            ts.each { |t| t.join }
          end
        end
      end
    end
  end
end

Version data entries

21 entries across 21 versions & 1 rubygems

Version Path
upsert-2.2.1 spec/threaded_spec.rb
upsert-2.2.0 spec/threaded_spec.rb
upsert-2.1.2 spec/threaded_spec.rb
upsert-2.1.1 spec/threaded_spec.rb
upsert-2.1.0 spec/threaded_spec.rb
upsert-2.0.4 spec/threaded_spec.rb
upsert-2.0.3 spec/threaded_spec.rb
upsert-2.0.2 spec/threaded_spec.rb
upsert-2.0.1 spec/threaded_spec.rb
upsert-2.0.0 spec/threaded_spec.rb
upsert-1.2.0 spec/threaded_spec.rb
upsert-1.1.7 spec/threaded_spec.rb
upsert-1.1.6 spec/threaded_spec.rb
upsert-1.1.5 spec/threaded_spec.rb
upsert-1.1.4 spec/threaded_spec.rb
upsert-1.1.3 spec/threaded_spec.rb
upsert-1.1.1 spec/threaded_spec.rb
upsert-1.1.0 spec/threaded_spec.rb
upsert-1.0.2 spec/threaded_spec.rb
upsert-0.5.0 spec/threaded_spec.rb