Sha256: f7d24b357e48234c5427c3d355744b384c967af29b7458c542c4d98cf5b31e03

Contents?: true

Size: 1.17 KB

Versions: 7

Compression:

Stored size: 1.17 KB

Contents

require 'spec_helper'
require 'model/models/versioned_model'

require 'ronin/model/has_version'

describe Model::HasVersion do
  subject { VersionedModel }

  before(:all) do
    subject.auto_migrate!

    subject.create(
      :version => '1.1',
      :content => 'Foo'
    )

    subject.create(
      :version => '1.1',
      :content => 'Bar'
    )

    subject.create(
      :version => '1.2',
      :content => 'Foo'
    )
  end

  it "should include Ronin::Model" do
    subject.ancestors.should include(Model)
  end

  it "should define a version property" do
    subject.properties.should be_named(:version)
  end

  it "should default the version property to '1.0'" do
    resource = subject.new

    resource.version.should == '0.1'
  end

  it "should allow querying specific revisions" do
    resources = subject.revision('1.1')

    resources.length.should == 2
    resources[0].version.should == '1.1'
    resources[0].content.should == 'Foo'

    resources[1].version.should == '1.1'
    resources[1].content.should == 'Bar'
  end

  it "should allow querying the latest revision" do
    resource = subject.all(:content => 'Foo').latest

    resource.version.should == '1.2'
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
ronin-1.5.0 spec/model/has_version_spec.rb
ronin-1.5.0.rc2 spec/model/has_version_spec.rb
ronin-1.5.0.rc1 spec/model/has_version_spec.rb
ronin-1.4.1 spec/model/has_version_spec.rb
ronin-1.4.0 spec/model/has_version_spec.rb
ronin-1.4.0.rc2 spec/model/has_version_spec.rb
ronin-1.4.0.rc1 spec/model/has_version_spec.rb