Sha256: 09304e8b7926d99042dac885364ec798f25cb3ac02177c143eb3ddb61677c1e8

Contents?: true

Size: 1.12 KB

Versions: 1

Compression:

Stored size: 1.12 KB

Contents

require File.join(File.dirname(__FILE__), '..', 'og', 'CONFIG.rb')

require 'test/unit'

require 'og'
require 'glue/revisable'

class TestOgRevisable < Test::Unit::TestCase # :nodoc: all

  class Article
    is Revisable
    property :body, String, :revisable => true
    property :title, String
    
    def initialize(t, b)
      @title, @body = t, b
    end
  end

  $og1.manage_classes(Article)

  def test_all
    a = Article.create('hello', 'world')
    a.revise do |a|
      a.body = 'wow!'
    end
    a.revise do |a|
      a.body = 'nice'
    end
    a.revise do |a|
      a.body = 'it'
    end
    
    assert_equal 3, a.revisions.count
    
    rev = a.get_revision(2)
    assert_equal 'wow!', rev.body
    
    a.rollback(2)
    assert_equal 'wow!', a.body
    
    a.rollback(1)
    assert_equal 'world', a.body
    
    a.rollback(3)
    assert_equal 'nice', a.body

    assert_equal 6, a.revisions.count
    
    a.revise do |a|
      a.title = 'kicks'
      a.body = 'ass'
    end

    assert_equal 7, a.revisions.count
    
    # The automatically generated class.
    
    assert_equal 7, Article::Revision.count
  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
og-0.28.0 test/glue/tc_revisable.rb