Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

148 lines (118 sloc) 4.54 kb
require File.expand_path('test_helper', File.dirname(__FILE__))
class Subfaculty
end
class Speciality
end
module Plan
class Group
end
class Education
end
end
class GroupsController < InheritedResources::Base
defaults :resource_class => Plan::Group, :finder => :find_by_slug
belongs_to :subfaculty, :shallow => true do
belongs_to :speciality
end
end
class EducationsController < InheritedResources::Base
defaults :resource_class => Plan::Education
belongs_to :subfaculty, :shallow => true do
belongs_to :speciality do
belongs_to :group, :parent_class => Plan::Group,
:instance_name => :plan_group,
:param => :group_id,
:finder => :find_by_slug
end
end
end
class NestedModelWithShallowTest < ActionController::TestCase
tests GroupsController
def setup
mock_speciality.expects(:subfaculty).returns(mock_subfaculty)
mock_subfaculty.expects(:to_param).returns('13')
Subfaculty.expects(:find).with('13').returns(mock_subfaculty)
mock_subfaculty.expects(:specialities).returns(Speciality)
mock_speciality.expects(:groups).returns(Plan::Group)
@controller.stubs(:resource_url).returns('/')
@controller.stubs(:collection_url).returns('/')
end
def test_assigns_subfaculty_and_speciality_and_group_on_edit
should_find_parents
get :edit, :id => 'forty_two'
assert_equal mock_subfaculty, assigns(:subfaculty)
assert_equal mock_speciality, assigns(:speciality)
assert_equal mock_group, assigns(:group)
end
def test_expose_a_newly_create_group_with_speciality
Speciality.expects(:find).with('37').twice.returns(mock_speciality)
Plan::Group.expects(:build).with({'these' => 'params'}).returns(mock_group(:save => true))
post :create, :speciality_id => '37', :group => {'these' => 'params'}
assert_equal mock_group, assigns(:group)
end
def test_expose_a_update_group_with_speciality
should_find_parents
mock_group.expects(:update_attributes).with('these' => 'params').returns(true)
post :update, :id => 'forty_two', :group => {'these' => 'params'}
assert_equal mock_group, assigns(:group)
end
protected
def should_find_parents
Plan::Group.expects(:find_by_slug).with('forty_two').returns(mock_group)
mock_group.expects(:speciality).returns(mock_speciality)
mock_speciality.expects(:to_param).returns('37')
Plan::Group.expects(:find_by_slug).with('forty_two').returns(mock_group)
Speciality.expects(:find).with('37').returns(mock_speciality)
end
def mock_group(stubs={})
@mock_group ||= mock(stubs)
end
def mock_speciality(stubs={})
@mock_speciality ||= mock(stubs)
end
def mock_subfaculty(stubs={})
@mock_subfaculty ||= mock(stubs)
end
end
class TwoNestedModelWithShallowTest < ActionController::TestCase
tests EducationsController
def setup
mock_speciality.expects(:subfaculty).returns(mock_subfaculty)
mock_subfaculty.expects(:to_param).returns('13')
Subfaculty.expects(:find).with('13').returns(mock_subfaculty)
mock_subfaculty.expects(:specialities).returns(Speciality)
mock_speciality.expects(:groups).returns(Plan::Group)
@controller.stubs(:resource_url).returns('/')
@controller.stubs(:collection_url).returns('/')
end
def test_assigns_subfaculty_and_speciality_and_group_on_new
should_find_parents
get :new, :group_id => 'forty_two'
assert_equal mock_subfaculty, assigns(:subfaculty)
assert_equal mock_speciality, assigns(:speciality)
assert_equal mock_group, assigns(:plan_group)
assert_equal mock_education, assigns(:education)
end
protected
def should_find_parents
Plan::Group.expects(:find_by_slug).with('forty_two').returns(mock_group)
mock_group.expects(:speciality).returns(mock_speciality)
mock_group.expects(:educations).returns(mock_education)
mock_education.expects(:build).returns(mock_education)
mock_speciality.expects(:to_param).returns('37')
Plan::Group.expects(:find_by_slug).with('forty_two').returns(mock_group)
Speciality.expects(:find).with('37').returns(mock_speciality)
end
def mock_group(stubs={})
@mock_group ||= mock(stubs)
end
def mock_education(stubs={})
@mock_education ||= mock(stubs)
end
def mock_speciality(stubs={})
@mock_speciality ||= mock(stubs)
end
def mock_subfaculty(stubs={})
@mock_subfaculty ||= mock(stubs)
end
end
Jump to Line
Something went wrong with that request. Please try again.