Sha256: 13a606f0d92aa700cdf0e5da431d6dad9e72455f28b1aefe2f6a85ada7ea5b2d

Contents?: true

Size: 1.23 KB

Versions: 5

Compression:

Stored size: 1.23 KB

Contents

# -*- encoding: utf-8 -*-
shared_examples_for "supports multibyte" do
  it "works one-by-one" do
    assert_creates(Pet, [{:name => 'I♥NY', :gender => 'périferôl'}]) do
      upsert = Upsert.new connection, :pets
      upsert.row({:name => 'I♥NY'}, {:gender => 'périferôl'})
    end
  end
  it "works serially" do
    assert_creates(Pet, [{:name => 'I♥NY', :gender => 'jÚrgen'}]) do
      upsert = Upsert.new connection, :pets
      upsert.row({:name => 'I♥NY'}, {:gender => 'périferôl'})
      upsert.row({:name => 'I♥NY'}, {:gender => 'jÚrgen'})
    end
  end
  it "works batch" do
    assert_creates(Pet, [{:name => 'I♥NY', :gender => 'jÚrgen'}]) do
      Upsert.batch(connection, :pets) do |upsert|
        upsert.row({:name => 'I♥NY'}, {:gender => 'périferôl'})
        upsert.row({:name => 'I♥NY'}, {:gender => 'jÚrgen'})
      end
    end
  end
  it "won't overflow" do
    upsert = Upsert.new connection, :pets
    if upsert.respond_to?(:max_sql_bytesize)
      max = upsert.send(:max_sql_bytesize)
      ticks = max / 3 - 2
      lambda do
        loop do
          upsert.row({:name => 'Jerry'}, :home_address => ("日" * ticks))
          ticks += 1
        end
      end.must_raise Upsert::TooBig
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
upsert-0.3.4 test/shared/multibyte.rb
upsert-0.3.3 test/shared/multibyte.rb
upsert-0.3.2 test/shared/multibyte.rb
upsert-0.3.1 test/shared/multibyte.rb
upsert-0.3.0 test/shared/multibyte.rb