# decribe_model_factory(model) # {{{
#
# Ensures that a Factory for the specified model can build and create instances of that model.
#
# Arguments:
#   -The 'model' arg must be a model class.
#
# An exception is raised if an argument is invalid.
#
# Example call:
#   describe_model_factory User
#
def describe_model_factory(model)
  raise 'The 1st argument (model) must be a Model class' unless model.is_a? Class

  describe model, "factory" do
    it "should build a valid #{model}" do
      built_model = Object.send "build_#{model.to_s.downcase}"
      built_model.should be_valid
    end 

    it "should create a valid #{model}" do
      created_model = Object.send "create_#{model.to_s.downcase}"
      created_model.should be_valid
      created_model.should == model.find(created_model.id)
      created_model.destroy
    end 
  end 
end # }}}