require File.expand_path(File.dirname(__FILE__) + "/../../test_helper") describe ::Inch::CLI::CommandParser do before do Dir.chdir fixture_path(:simple) @command_parser = ::Inch::CLI::CommandParser end it "should run without args" do out, err = capture_io do @command = @command_parser.run end refute out.empty?, "there should be some output" assert err.empty?, "there should be no errors" assert_equal ::Inch::CLI::Command::Suggest, @command.class end it "should run Command::Suggest with filelist in args" do out, err = capture_io do @command = @command_parser.run("suggest", "lib/**/*.rb", "app/**/*.rb") end refute out.empty?, "there should be some output" assert err.empty?, "there should be no errors" assert_equal ::Inch::CLI::Command::Suggest, @command.class end it "should run Command::Suggest with only filelist in args" do out, err = capture_io do @command = @command_parser.run("lib/**/*.rb", "app/**/*.rb") end refute out.empty?, "there should be some output" assert err.empty?, "there should be no errors" assert_equal ::Inch::CLI::Command::Suggest, @command.class end it "should run Command::Suggest with only switches in args" do out, err = capture_io do @command = @command_parser.run("--no-color") end refute out.empty?, "there should be some output" assert err.empty?, "there should be no errors" assert_equal ::Inch::CLI::Command::Suggest, @command.class end it "should run Command::List with filelist in args" do out, err = capture_io do @command = @command_parser.run("list", "lib/**/*.rb", "app/**/*.rb") end refute out.empty?, "there should be some output" assert err.empty?, "there should be no errors" assert_equal ::Inch::CLI::Command::List, @command.class end it "should run Command::Show with filelist in args" do out, err = capture_io do @command = @command_parser.run("show", "Foo") end refute out.empty?, "there should be some output" assert err.empty?, "there should be no errors" assert_equal ::Inch::CLI::Command::Show, @command.class end it "should output info when run with --help" do out, err = capture_io do @command = @command_parser.run("--help") end refute out.empty?, "there should be some output" assert_match /\bUsage\b.+inch/, out assert err.empty?, "there should be no errors" end end