Sha256: b306400e489bc8c5714111f68468b6a6a4a0d38f280127c779d10879d9264a3b

Contents?: true

Size: 1.1 KB

Versions: 4

Compression:

Stored size: 1.1 KB

Contents

# encoding: utf-8

require 'spec_helper'

describe Adapter::Memory do
  subject { described_class.new(schema) }

  include_context 'relation'

  before do
    subject[name] = relation
  end

  describe '#insert' do
    it 'inserts a new tuple' do
      subject[name].insert([[3], [4]])
      expect(subject[name].to_a).to eq([[1], [2], [3], [4]])
    end
  end

  describe '#replace' do
    it 'replaces with new tuples' do
      subject[name].replace([[2]])
      expect(subject[name].to_a).to eq([[2]])
    end
  end

  describe '#delete' do
    it 'deletes matching tuples' do
      subject[name].delete([[3], [4]])
      expect(subject[name].to_a).to eq([[1], [2]])
    end
  end

  describe '#update' do
    pending 'Design interface' do
      context 'with a Hash argument' do
        it 'updates matching tuples' do
          subject[name].update(id: 2)
          expect(subject[name].to_a).to eq([[2]])
        end
      end
    end

    context 'with a block' do
      it 'updates matching tuples' do
        subject[name].update { |tuple| [2] }
        expect(subject[name].to_a).to eq([[2]])
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
axiom-memory-adapter-0.2.1 spec/integration/axiom/adapter/memory_spec.rb
axiom-memory-adapter-0.2.0 spec/integration/axiom/adapter/memory_spec.rb
axiom-memory-adapter-0.0.3 spec/integration/axiom/adapter/memory_spec.rb
axiom-memory-adapter-0.0.2 spec/integration/axiom/adapter/memory_spec.rb