Sha256: 2f7e8ee300ac4958a3f96dd76654ea08e9d861e03a6257f44d1d22ca5d35e957

Contents?: true

Size: 1.32 KB

Versions: 7

Compression:

Stored size: 1.32 KB

Contents

describe "shared_tcp", proxy: :Shared do
  moneta_build do
    tempdir = self.tempdir
    Moneta.build do
      use(:Shared, port: 9001) do
        adapter :GDBM, file: File.join(tempdir, 'shared_tcp')
      end
    end
  end

  shared_examples :shared_tcp do
    moneta_specs ADAPTER_SPECS.with_each_key

    it 'shares values' do
      store['shared_key'] = 'shared_value'
      second = new_store
      second.key?('shared_key').should be true
      second['shared_key'].should == 'shared_value'
      second.close
    end
  end

  # The first store initialised will be running the server
  context "running as the server" do
    before do
      store.load('dummy')
      expect(store.server?).to be true
    end

    include_examples :shared_tcp

    it 'has the underlying adapter' do
      store.load('dummy')
      expect(store.adapter.adapter).to be_a Moneta::Adapters::GDBM
    end
  end

  context "running as a client" do
    let!(:server_store) do
      new_store.tap { |store| store.load('dummy') } # Makes a connection
    end

    before do
      store.load('dummy')
      expect(store.server?).to be false
    end

    after do
      server_store.close
    end

    include_examples :shared_tcp

    it 'has a client adapter' do
      store.load('dummy')
      expect(store.adapter).to be_a Moneta::Adapters::Client
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
moneta-1.5.2 spec/moneta/proxies/shared/shared_tcp_spec.rb
moneta-1.5.1 spec/moneta/proxies/shared/shared_tcp_spec.rb
moneta-1.5.0 spec/moneta/proxies/shared/shared_tcp_spec.rb
moneta-1.4.2 spec/moneta/proxies/shared/shared_tcp_spec.rb
moneta-1.4.1 spec/moneta/proxies/shared/shared_tcp_spec.rb
moneta-1.4.0 spec/moneta/proxies/shared/shared_tcp_spec.rb
moneta-1.3.0 spec/moneta/proxies/shared/shared_tcp_spec.rb