Sha256: 2059dec7e566d2493ef756ee570d77fb321343551f4c5388c385dcbdd09b49a6

Contents?: true

Size: 1.34 KB

Versions: 1

Compression:

Stored size: 1.34 KB

Contents

module Padrino
  module Generators
    module Components
      module Tests

        module ShouldaGen
          SHOULDA_SETUP = (<<-TEST).gsub(/^ {10}/, '')
          class Test::Unit::TestCase
            include Rack::Test::Methods

            def app
              CLASS_NAME.tap { |app| app.set :environment, :test }
            end
          end
          TEST

          def setup_test
            require_dependencies 'test/unit', 'shoulda', :env => :testing
            insert_test_suite_setup SHOULDA_SETUP
          end

          SHOULDA_CONTROLLER_TEST = (<<-TEST).gsub(/^ {10}/, '')
          require File.dirname(__FILE__) + '/../test_config.rb'

          class !NAME!ControllerTest < Test::Unit::TestCase
            context "!NAME!Controller" do
              setup do
                get '/'
              end

              should "return hello world text" do
                assert_equal "Hello World", last_response.body
              end
            end
          end
          TEST

          # Generates a controller test given the controllers name
          def generate_controller_test(name, root)
            shoulda_contents = SHOULDA_CONTROLLER_TEST.gsub(/!NAME!/, name.to_s.camelize)
            create_file File.join(root, "test/controllers/#{name}_controller_test.rb"), shoulda_contents
          end

        end

      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
padrino-gen-0.1.2 lib/generators/components/tests/shoulda_test_gen.rb