HBASE-20276 restore original shell REPL functionality where commands can return results
[hbase.git] / hbase-shell / src / test / ruby / shell / noninteractive_test.rb
blob0fae4cbb79a7401cf2240619f74a7f54b15fa497
1 # Licensed to the Apache Software Foundation (ASF) under one
2 # or more contributor license agreements.  See the NOTICE file
3 # distributed with this work for additional information
4 # regarding copyright ownership.  The ASF licenses this file
5 # to you under the Apache License, Version 2.0 (the
6 # "License"); you may not use this file except in compliance
7 # with the License.  You may obtain a copy of the License at
9 #     http://www.apache.org/licenses/LICENSE-2.0
11 # Unless required by applicable law or agreed to in writing, software
12 # distributed under the License is distributed on an "AS IS" BASIS,
13 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 # See the License for the specific language governing permissions and
15 # limitations under the License.
17 require 'hbase_constants'
18 require 'shell'
20 class NonInteractiveTest < Test::Unit::TestCase
21   def setup
22     @hbase = ::Hbase::Hbase.new($TEST_CLUSTER.getConfiguration)
23     @shell = Shell::Shell.new(@hbase, false)
24   end
26   define_test "Shell::Shell noninteractive mode should throw" do
27     # XXX Exception instead of StandardError because we throw things
28     #     that aren't StandardError
29     assert_raise(ArgumentError) do
30       # incorrect number of arguments
31       @shell.command('create', 'foo')
32     end
33     @shell.command('create', 'foo', 'family_1')
34     exception = assert_raise(RuntimeError) do
35       # create a table that exists
36       @shell.command('create', 'foo', 'family_1')
37     end
38     assert_equal("Table already exists: foo!", exception.message)
39   end
40 end