test/oprah/presenter_test.rb in oprah-0.1.2 vs test/oprah/presenter_test.rb in oprah-0.1.3

- old
+ new

@@ -8,10 +8,36 @@ assert_kind_of Oprah::Cache, Presenter.cache assert_equal Presenter.cache, Presenter.cache assert_equal UserPresenter.cache, Presenter.cache end + def test_present + assert_presented present(User.new) + end + + def test_present_no_matching_presenter + object = Object.new + presented = present(object) + + refute_presented presented + assert_equal presented, object + end + + def test_present_only + presenter = present(User.new, only: UserPresenter) + + assert_kind_of UserPresenter, presenter + refute_kind_of EntityPresenter, presenter + + classes = [UserPresenter, EntityPresenter, CommentPresenter] + presenter = present(User.new, only: classes) + + assert_kind_of UserPresenter, presenter + assert_kind_of EntityPresenter, presenter + refute_kind_of CommentPresenter, presenter + end + def test_present_many present_many([User.new, User.new]).each do |presenter| assert_equal "Foo Bar", presenter.name end end @@ -23,9 +49,41 @@ project.comments.each do |comment| assert_kind_of Comment, comment assert_kind_of CommentPresenter, comment end + end + + def test_present_from_instance + view_context = Object.new + presenter = present(User.new, view_context: view_context) + presented = presenter.present(User.new) + + assert_equal view_context.object_id, presented.view_context.object_id + end + + def test_present_many_from_instance + view_context = Object.new + presenter = present(User.new, view_context: view_context) + presented = presenter.present_many([User.new]).first + + assert_equal view_context.object_id, presented.view_context.object_id + end + + def test_present_from_instance_custom_view_context + view_context = Object.new + presenter = present(User.new, view_context: view_context) + presented = presenter.present(User.new, view_context: :ok) + + assert_equal :ok, presented.view_context + end + + def test_present_many_from_instance_custom_view_context + view_context = Object.new + presenter = present(User.new, view_context: view_context) + presented = presenter.present_many([User.new], view_context: :ok).first + + assert_equal :ok, presented.view_context end def test_presents_one project = present(Project.new) owner = project.owner