Sha256: cddc528b08f216abbcbf2f56317d6fb19655ec62a1e8787a2997174b17f17536

Contents?: true

Size: 1.48 KB

Versions: 1

Compression:

Stored size: 1.48 KB

Contents

require 'spec_helper'

class Mummy
  attr_accessor :attributes

  def initialize(opts = {})
    self.attributes = opts
  end

end

class Dummy < Hash; end

class Rummy < Hash; end

describe JellyBird do

  describe "#define_scheme" do

    it "should be able to define scheme for activerecord like objects" do

      Mummy.define {{
        :name => /\w{3,8}/.gen,
        :number => /\d\d\d\d\d\d/.gen
      }}
      mummy = Mummy.gen
      mummy.should be_kind_of(Mummy)
      mummy.attributes[:name].should =~ /\w{3,8}/
      mummy.attributes[:number].should =~ /\d\d\d\d\d\d/

    end

    it "should be able to define scheme for hashlike objects" do

      Dummy.define {{
        :name => /\w{3,8}/.gen,
        :number => /\d\d\d\d\d\d/.gen
      }}

      Rummy.define {{
        :name => /\w{3,8}/.gen,
        :number => /\d\d\d\d\d\d/.gen
      }}

      dummy = Dummy.gen
      dummy.should be_kind_of(Dummy)
      dummy[:name].should =~ /\w{3,8}/
      dummy[:number].should =~ /\d\d\d\d\d\d/

      rummy = Rummy.gen
      rummy.should be_kind_of(Rummy)
      rummy[:name].should =~ /\w{3,8}/
      rummy[:number].should =~ /\d\d\d\d\d\d/

    end

  end


  describe "#gen" do

    it "should be able to generate object" do
      dummy = Dummy.gen( :name => "test" )
      dummy.should be_kind_of(Dummy)
      dummy[:name].should eql("test")
    end

    it "should not generate same name" do
      500.times do
        Dummy.gen[:name].should_not eql(Dummy.gen[:name])
      end
    end

  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
jelly_bird-0.0.1 spec/jelly_bird/jelly_bird_spec.rb