Pastie now auto-senses if line-wrap is a bad or good idea. Feedback?
## mark a section (Learn more)
# encoding: utf-8 require 'test/helper' class Nanoc3::DependencyTrackerTest < MiniTest::Unit::TestCase include Nanoc3::TestHelpers def test_initialize # Mock items items = [ mock, mock ] # Create tracker = Nanoc3::DependencyTracker.new(items) # Verify no dependencies yet assert_equal [], tracker.dependencies_for(items[0]) assert_equal [], tracker.dependencies_for(items[1]) end def test_record_dependency # Mock items items = [ mock, mock ] # Create tracker = Nanoc3::DependencyTracker.new(items) # Record some dependencies tracker.record_dependency(items[0], items[1]) # Verify dependencies assert_equal [ items[1] ], tracker.dependencies_for(items[0]) end def test_start_and_stop # Mock items items = [ mock, mock ] # Create tracker = Nanoc3::DependencyTracker.new(items) # Start, do something and stop tracker.start Nanoc3::NotificationCenter.post(:visit_started, items[0]) Nanoc3::NotificationCenter.post(:visit_started, items[1]) Nanoc3::NotificationCenter.post(:visit_ended, items[1]) Nanoc3::NotificationCenter.post(:visit_ended, items[0]) tracker.stop # Verify dependencies assert_equal [ items[1] ], tracker.dependencies_for(items[0]) assert_equal [], tracker.dependencies_for(items[1]) end def test_store_graph_and_load_graph_simple # Mock items items = [ mock, mock, mock, mock ] items[0].stubs(:path).returns('/aaa/') items[1].stubs(:path).returns('/bbb/') items[2].stubs(:path).returns('/ccc/') items[3].stubs(:path).returns('/ddd/') # Create tracker = Nanoc3::DependencyTracker.new(items) # Record some dependencies tracker.record_dependency(items[0], items[1]) tracker.record_dependency(items[1], items[2]) tracker.record_dependency(items[1], items[3]) # Store tracker.store_graph assert File.file?(tracker.filename) # Re-create tracker = Nanoc3::DependencyTracker.new(items) # Load tracker.load_graph # Check loaded graph assert_equal [ items[1] ], tracker.dependencies_for(items[0]) assert_equal [ items[2], items[3] ], tracker.dependencies_for(items[1]) assert_equal [], tracker.dependencies_for(items[2]) assert_equal [], tracker.dependencies_for(items[3]) end def test_store_graph_with_custom_filename # Mock items items = [ mock, mock, mock, mock ] items[0].stubs(:path).returns('/aaa/') items[1].stubs(:path).returns('/bbb/') items[2].stubs(:path).returns('/ccc/') items[3].stubs(:path).returns('/ddd/') # Create tracker = Nanoc3::DependencyTracker.new(items) tracker.filename = 'tmp/bob/iguana/bits' # Record some dependencies tracker.record_dependency(items[0], items[1]) tracker.record_dependency(items[1], items[2]) tracker.record_dependency(items[1], items[3]) # Store tracker.store_graph assert File.file?(tracker.filename) assert File.file?('tmp/bob/iguana/bits') end def test_store_graph_and_load_graph_with_removed_items end def test_store_graph_and_load_graph_with_added_items end def test_store_graph_and_load_graph_with_added_and_removed_items end def test_item_with_path # Mock items items = [ mock, mock, mock, mock ] items[0].stubs(:path).returns('/aaa/') items[1].stubs(:path).returns('/bbb/') items[2].stubs(:path).returns('/ccc/') items[3].stubs(:path).returns('/ddd/') # Create tracker = Nanoc3::DependencyTracker.new(items) # Test assert_equal items[0], tracker.send(:item_with_path, '/aaa/') assert_equal items[1], tracker.send(:item_with_path, '/bbb/') assert_equal items[2], tracker.send(:item_with_path, '/ccc/') assert_equal items[3], tracker.send(:item_with_path, '/ddd/') assert_equal nil, tracker.send(:item_with_path, '/123/') end end
This paste will be private.
From the Design Piracy series on my blog: