Sha256: 915ef87a30809a9a5ab8ae34cae3c16fb6e75603809f769d79e384be61f874fa

Contents?: true

Size: 1.98 KB

Versions: 7

Compression:

Stored size: 1.98 KB

Contents

# Generators register themself on the CLI module
require "./lib/roger/generators.rb"
require "test/unit"

module CustomGens
  module Generators

    class MockedGenerator < Roger::Generators::Base

      desc "@mocked description"
      argument :path, :type => :string, :required => false, :desc => "Path to generate mockup into"
      argument :another_arg, :type => :string, :required => false, :desc => "Mocked or what?!"

      def test
        # Somewhat ugly way of checking
        raise NotImplementedError
      end
    end

    class MockedWithProjectGenerator < Roger::Generators::Base

      desc "Returns a project"
      def test
        # Somewhat ugly way of checking
        raise StandardError if @project
      end
    end    

  end
end

module Roger
  class GeneratorTest < Test::Unit::TestCase
    def setup
      @cli = Cli::Base.new
    end

    def test_working_project
      Roger::Generators.register CustomGens::Generators::MockedWithProjectGenerator
      generators = Cli::Generate.new

      assert_raise StandardError do
        generators.invoke "mockedwithproject"
      end
    end

    def test_register_generator
      Roger::Generators.register CustomGens::Generators::MockedGenerator
      assert_includes Cli::Generate.tasks, "mocked"
      assert_equal Cli::Generate.tasks["mocked"].description, "@mocked description"
      assert_equal Cli::Generate.tasks["mocked"].usage, "mocked PATH ANOTHER_ARG"
    end

    def test_default_generator
      assert_includes Cli::Generate.tasks, "new"
    end

    def test_generator_generator
      generators = Cli::Generate.new
      name = "tralal"
      path = "./tmp"
      generators.invoke :generator, [name, path]
      assert File.exist? "#{path}/#{name}_generator.rb"
    end

    def test_invoke_mocked_generator
      Roger::Generators.register CustomGens::Generators::MockedGenerator
      
      generators = Cli::Generate.new
      assert_raise NotImplementedError do
        generators.invoke :mocked
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
roger-0.12.5 test/unit/generators_test.rb
roger-0.12.4 test/unit/generators_test.rb
roger-0.12.3 test/unit/generators_test.rb
roger-0.12.2 test/unit/generators_test.rb
roger-0.12.1 test/unit/generators_test.rb
roger-0.12.0 test/unit/generators_test.rb
roger-0.11.0 test/unit/generators_test.rb