test/unit/trust/controller/resource_test.rb in trust-0.6.0 vs test/unit/trust/controller/resource_test.rb in trust-0.6.1
- old
+ new
@@ -206,46 +206,86 @@
@properties.belongs_to :parent
@resource_info = stub('ResourceInfo')
@parent_info = stub(:object => 6, :name => :parent)
@resource_info.expects(:relation).with(@parent_info).returns(Child)
@resource_info.stubs(:name).returns(:child)
- Trust::Controller::Resource.any_instance.expects(:extract_resource_info).with('child', {}).returns(@resource_info)
- Trust::Controller::Resource.any_instance.expects(:extract_parent_info).with({:parent => nil}, {}, @request).returns(@parent_info)
end
- should 'instantiate properly' do
- @resource = Trust::Controller::Resource.new(@controller, @properties, 'new',{}, @request)
+ context 'Plain' do
+ setup do
+ Trust::Controller::Resource.any_instance.expects(:extract_resource_info).with('child', {}).returns(@resource_info)
+ Trust::Controller::Resource.any_instance.expects(:extract_parent_info).with({:parent => nil}, {}, @request).returns(@parent_info)
+ end
+ should 'instantiate properly' do
+ @resource = Trust::Controller::Resource.new(@controller, @properties, 'new',{}, @request)
+ end
+ should 'discover variable names' do
+ @resource = Trust::Controller::Resource.new(@controller, @properties, 'new',{}, @request)
+ @resource_info.expects(:plural_name).returns(:children)
+ assert_equal :child, @resource.send(:instance_name)
+ assert_equal :parent, @resource.send(:parent_name)
+ assert_equal :children, @resource.send(:plural_instance_name)
+ end
+ should 'have access to instances' do
+ @resource = Trust::Controller::Resource.new(@controller, @properties, 'new',{}, @request)
+ @resource.expects(:plural_instance_name).twice.returns(:children)
+ @resource.instances = [1]
+ assert_equal [1], @resource.instances
+ assert_equal [1], @controller.instance_variable_get(:@children)
+ end
+ should 'have access to instantiated' do
+ @resource = Trust::Controller::Resource.new(@controller, @properties, 'new',{}, @request)
+ @resource.expects(:instances).returns(1)
+ assert_equal 1, @resource.instantiated
+ @resource.expects(:instances).returns(nil)
+ @resource.expects(:instance).returns(2)
+ assert_equal 2, @resource.instantiated
+ end
+ should 'load as expected' do
+ @resource = Trust::Controller::Resource.new(@controller, @properties, 'new',{}, @request)
+ @resource_info.stubs(:params).returns({})
+ @controller.expects(:respond_to?).with(:build).returns(false)
+ @resource.load
+ assert_equal 6, @controller.instance_variable_get(:@parent)
+ assert_equal 6, @resource.parent
+ assert @controller.instance_variable_get(:@child).is_a?(Child)
+ assert @resource.instance.is_a?(Child)
+ end
end
- should 'discover variable names' do
- @resource = Trust::Controller::Resource.new(@controller, @properties, 'new',{}, @request)
- @resource_info.expects(:plural_name).returns(:children)
- assert_equal :child, @resource.send(:instance_name)
- assert_equal :parent, @resource.send(:parent_name)
- assert_equal :children, @resource.send(:plural_instance_name)
+ context 'Member actions' do
+ setup do
+ Trust::Controller::Resource.any_instance.expects(:extract_resource_info).with('child', { :id => 1 }).returns(@resource_info)
+ Trust::Controller::Resource.any_instance.expects(:extract_parent_info).with({:parent => nil}, { :id => 1 }, @request).returns(@parent_info)
+ end
+ should 'load as expected' do
+ @resource = Trust::Controller::Resource.new(@controller, @properties, 'member',{ :id => 1 }, @request)
+ @properties.actions :member => [:member]
+ @resource_info.stubs(:params).returns({})
+ @controller.expects(:respond_to?).with(:build).returns(false)
+ Child.expects(:find).with(1).returns(Child.new)
+ @resource.load
+ assert_equal 6, @controller.instance_variable_get(:@parent)
+ assert_equal 6, @resource.parent
+ assert @controller.instance_variable_get(:@child).is_a?(Child)
+ assert @resource.instance.is_a?(Child)
+ end
end
- should 'have access to instances' do
- @resource = Trust::Controller::Resource.new(@controller, @properties, 'new',{}, @request)
- @resource.expects(:plural_instance_name).twice.returns(:children)
- @resource.instances = [1]
- assert_equal [1], @resource.instances
- assert_equal [1], @controller.instance_variable_get(:@children)
- end
- should 'have access to instantiated' do
- @resource = Trust::Controller::Resource.new(@controller, @properties, 'new',{}, @request)
- @resource.expects(:instances).returns(1)
- assert_equal 1, @resource.instantiated
- @resource.expects(:instances).returns(nil)
- @resource.expects(:instance).returns(2)
- assert_equal 2, @resource.instantiated
- end
- should 'load as expected' do
- @resource = Trust::Controller::Resource.new(@controller, @properties, 'new',{}, @request)
- @resource_info.stubs(:params).returns({})
- @controller.expects(:respond_to?).with(:build).returns(false)
- @resource.load
- assert_equal 6, @controller.instance_variable_get(:@parent)
- assert_equal 6, @resource.parent
- assert @controller.instance_variable_get(:@child).is_a?(Child)
- assert @resource.instance.is_a?(Child)
+ context 'Nested resources' do
+ setup do
+ Trust::Controller::Resource.any_instance.expects(:extract_resource_info).with('child', { :child_id => 1 }).returns(@resource_info)
+ Trust::Controller::Resource.any_instance.expects(:extract_parent_info).with({:parent => nil}, { :child_id => 1 }, @request).returns(@parent_info)
+ end
+ should 'load as expected' do
+ @resource = Trust::Controller::Resource.new(@controller, @properties, 'member',{ :child_id => 1 }, @request)
+ @properties.actions :member => [:member]
+ @resource_info.stubs(:params).returns({})
+ @controller.expects(:respond_to?).with(:build).returns(false)
+ Child.expects(:find).with(1).returns(Child.new)
+ @resource.load
+ assert_equal 6, @controller.instance_variable_get(:@parent)
+ assert_equal 6, @resource.parent
+ assert @controller.instance_variable_get(:@child).is_a?(Child)
+ assert @resource.instance.is_a?(Child)
+ end
end
end
end