Sha256: 9b9d9e542c1f6848adcac40b45ef607ba9d87cfb44ebb7474cea77f8d534eba1

Contents?: true

Size: 1.1 KB

Versions: 24

Compression:

Stored size: 1.1 KB

Contents

# frozen_string_literal: true, encoding: ASCII-8BIT

require 'couchbase-orm'
require 'thread'

class IdTestModel < CouchbaseOrm::Base; end

describe CouchbaseOrm::IdGenerator do
    it "should not generate ID clashes" do
        model = IdTestModel.new

        ids1 = []
        thread1 = Thread.new do
            (1..10000).each {
                ids1 << CouchbaseOrm::IdGenerator.next(model)
            }
        end

        ids2 = []
        thread2 = Thread.new do
            (1..10000).each {
                ids2 << CouchbaseOrm::IdGenerator.next(model)
            }
        end

        ids3 = []
        thread3 = Thread.new do
            (1..10000).each {
                ids3 << CouchbaseOrm::IdGenerator.next(model)
            }
        end

        ids4 = []
        thread4 = Thread.new do
            (1..10000).each {
                ids4 << CouchbaseOrm::IdGenerator.next(model)
            }
        end

        thread1.join
        thread2.join
        thread3.join
        thread4.join

        results = [ids1, ids2, ids3, ids4].flatten
        expect(results.uniq).to eq(results)
    end
end

Version data entries

24 entries across 24 versions & 1 rubygems

Version Path
couchbase-orm-2.0.4 spec/id_generator_spec.rb
couchbase-orm-2.0.3 spec/id_generator_spec.rb
couchbase-orm-2.0.2 spec/id_generator_spec.rb
couchbase-orm-2.0.1 spec/id_generator_spec.rb
couchbase-orm-2.0.0 spec/id_generator_spec.rb
couchbase-orm-1.1.1 spec/id_generator_spec.rb
couchbase-orm-1.1.0 spec/id_generator_spec.rb
couchbase-orm-1.0.0 spec/id_generator_spec.rb
couchbase-orm-0.2.1 spec/id_generator_spec.rb
couchbase-orm-0.2.0 spec/id_generator_spec.rb
couchbase-orm-0.1.2 spec/id_generator_spec.rb
couchbase-orm-0.1.1 spec/id_generator_spec.rb
couchbase-orm-0.1.0 spec/id_generator_spec.rb
couchbase-orm-0.0.12 spec/id_generator_spec.rb
couchbase-orm-0.0.11 spec/id_generator_spec.rb
couchbase-orm-0.0.10 spec/id_generator_spec.rb
couchbase-orm-0.0.9 spec/id_generator_spec.rb
couchbase-orm-0.0.8 spec/id_generator_spec.rb
couchbase-orm-0.0.6 spec/id_generator_spec.rb
couchbase-orm-0.0.5 spec/id_generator_spec.rb