Sha256: 44cb06adc9fdf2936c25e4f28294235e63d6d136d1ffcbd09edacd9380df9d3e

Contents?: true

Size: 1.58 KB

Versions: 1

Compression:

Stored size: 1.58 KB

Contents

$:.unshift File.join(File.dirname(__FILE__), '..', '..', 'lib')

require 'test/unit'
require 'ostruct'

require 'og'
require 'og/mixin/hierarchical'

$og = Og.setup(
	:store => 'mysql',
	:name => 'test',
	:user => 'root',
	:password => 'navelrulez',
	:destroy => true
)

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

	class Comment 
		property :body, String
		property :create_time, Time
		
		include Og::NestedSets

		def initialize(body = nil)
			@body = body
			@create_time = Time.now
		end

		def to_s
			sprintf("%3d %3d %s", @lft, @rgt, @body)
		end
	end

	def test_all
		$og.manage_classes		

		root = Comment.create('root')
		c1 = Comment.new('1')
		root.add_comment c1
		c2 = Comment.new('1.1')
		c1.add_comment c2
		c3 = Comment.new('1.2')
		c1.add_comment c3
		c4 = Comment.new('1.1.1')
		c2.add_comment c4
		c5 = Comment.new('1.2.1')
		c3.add_comment c5
		c6 = Comment.new('1.1.1.1')
		c4.add_comment c6
		c7 = Comment.new('2')
		root.add_comment c7
		c8 = Comment.new('3')
		root.add_comment c8
		c9 = Comment.new('2.1')
		c7.add_comment c9

		c1.reload
		
		Comment.all(:order => "lft, rgt").each { |c|
			puts sprintf("%3d %3d %s", c.lft, c.rgt, c.body)
			# p c	
		}
		puts '--1'
		c1.comments(:order => "lft, rgt").each { |c| puts c.body }
		puts '--2'
		c1.full_comments(:order => "lft, rgt").each { |c| puts c.body }
		puts '--3'
		c1.direct_comments(:order => "lft, rgt").each { |c| puts c.body }

		assert_equal 6, c1.full_comments.size
		assert_equal 5, c1.comments.size
		assert_equal 2, c1.direct_comments.size
		
		c8.reload
		
		assert_equal 'root', c8.parent.body
	end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
og-0.20.0 test/og/mixin/tc_hierarchical.rb