test/unit/diagram_test.rb in rails-erd-0.1.1 vs test/unit/diagram_test.rb in rails-erd-0.2.0
- old
+ new
@@ -1,34 +1,57 @@
require File.expand_path("../test_helper", File.dirname(__FILE__))
-require "rails_erd/diagram"
-
class DiagramTest < ActiveSupport::TestCase
+ def setup
+ load "rails_erd/diagram.rb"
+ end
+
def teardown
- FileUtils.rm "ERD.dot" rescue nil
+ RailsERD.send :remove_const, :Diagram
end
- # Diagram generation =======================================================
- test "generate should create output based on domain model" do
- create_model "Foo", :bar => :references do
- belongs_to :bar
+ # Diagram ==================================================================
+ test "create class method should return result of save" do
+ create_simple_domain
+ subclass = Class.new(Diagram) do
+ def save
+ "foobar"
+ end
end
- create_model "Bar"
- RailsERD::Diagram.generate(:file_type => :dot)
- assert File.exists?("ERD.dot")
+ assert_equal "foobar", subclass.create
end
- test "generate should not create output if there are no connected models" do
- RailsERD::Diagram.generate(:file_type => :dot) rescue nil
- assert !File.exists?("ERD.dot")
+ test "create should return result of save" do
+ create_simple_domain
+ diagram = Class.new(Diagram) do
+ def save
+ "foobar"
+ end
+ end.new(Domain.generate)
+ assert_equal "foobar", diagram.create
end
+
+ test "domain sould return given domain" do
+ domain = Object.new
+ assert_same domain, Class.new(Diagram).new(domain).domain
+ end
- test "generate should abort and complain if there are no connected models" do
- message = nil
- begin
- RailsERD::Diagram.generate(:file_type => :dot)
- rescue => e
- message = e.message
+ # Diagram abstractness =====================================================
+ test "create should succeed silently if called on abstract class" do
+ create_simple_domain
+ assert_nothing_raised do
+ Diagram.create
end
- assert_match /No \(connected\) entities found/, message
+ end
+
+ test "create should succeed if called on class that implements process_entity and process_relationship" do
+ create_simple_domain
+ assert_nothing_raised do
+ Class.new(Diagram) do
+ def process_entity(*args)
+ end
+ def process_relationship(*args)
+ end
+ end.create
+ end
end
end