Sha256: 0c0631e9b39aa071ec389baf88d1f987de1679d5ed0adb890bfcb43051f3a369

Contents?: true

Size: 1.24 KB

Versions: 1

Compression:

Stored size: 1.24 KB

Contents

require 'rspec'

require Pathname(__dir__) + '../lib/wyrm/pump.rb'

include Wyrm

describe Pump do
  describe '.quacks_like' do
    it 'recognises method' do
      threequal = Pump.quacks_like( :tap )
      (threequal === Object.new).should be_true
    end

    it 'recognises two methods' do
      threequal = Pump.quacks_like( :tap, :instance_eval )
      (threequal === Object.new).should be_true
    end
  end

  describe '#table_name=' do
    it 'invalidates caches'
  end

  describe '#db=' do
    it 'invalidates caches'
  end

  describe '#codec=' do
    it ':yaml' do
      subject.codec = :yaml
      subject.codec.should be_a(Pump::YamlCodec)
    end

    it ':marshal' do
      subject.codec = :marshal
      subject.codec.should be_a(Pump::MarshalCodec)
    end

    def codec_class
      @codec_class ||=
      Class.new do
        def encode; end
        def decode; end
      end
    end

    it 'codec instance' do
      inst = codec_class.new
      subject.codec = inst
      subject.codec.should == inst
    end

    it 'codec class' do
      subject.codec = codec_class
      subject.codec.should be_a(codec_class)
    end

    it 'raise for unknown' do
      ->{subject.codec = Object.new}.should raise_error(/unknown codec/)
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
wyrm-0.3.0 spec/pump_spec.rb