HBASE-14067 bundle ruby files for hbase shell into a jar.
[hbase.git] / hbase-shell / src / test / ruby / shell / list_procedures_test.rb
bloba9a38fe9e73465e3b3ddbeae4d24b9e86f4abfb7
3 # Licensed to the Apache Software Foundation (ASF) under one
4 # or more contributor license agreements.  See the NOTICE file
5 # distributed with this work for additional information
6 # regarding copyright ownership.  The ASF licenses this file
7 # to you under the Apache License, Version 2.0 (the
8 # "License"); you may not use this file except in compliance
9 # with the License.  You may obtain a copy of the License at
11 #     http://www.apache.org/licenses/LICENSE-2.0
13 # Unless required by applicable law or agreed to in writing, software
14 # distributed under the License is distributed on an "AS IS" BASIS,
15 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 # See the License for the specific language governing permissions and
17 # limitations under the License.
20 require 'hbase_constants'
21 require 'hbase_shell'
23 module Hbase
24   class ListProceduresTest < Test::Unit::TestCase
25     include TestHelpers
26     include HBaseConstants
28     def setup
29       setup_hbase
31       @master = $TEST_CLUSTER.getHBaseClusterInterface.getMaster
32       @executor = @master.getMasterProcedureExecutor
34       @list_procedures = Shell::Commands::ListProcedures.new(@shell)
35     end
37     def teardown
38       shutdown
39     end
41     def create_procedure_regexp(table_name)
42       regexp_string = '[0-9]+ .*ShellTestProcedure SUCCESS.*' \
43         "\[{\"value\"=>\"#{table_name}\"}\]";
44       Regexp.new(regexp_string)
45     end
47     define_test 'list procedures' do
48       procedure = org.apache.hadoop.hbase.client.procedure.ShellTestProcedure.new
49       procedure.tableNameString = 'table1'
51       proc_id = @executor.submitProcedure(procedure)
52       sleep(0.1) until @executor.isFinished(proc_id)
54       output = capture_stdout { @list_procedures.command }
56       regexp = create_procedure_regexp('table1')
57       matching_lines = 0
59       lines = output.split(/\n/)
60       lines.each do |line|
61         if regexp.match(line)
62           matching_lines += 1
63         end
64       end
66       assert_equal(1, matching_lines)
67     end
68   end
69 end