blob: 5daf9fa7cd56db5d97cde57d69a41a32a39b5999 [file]
#
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
require 'hbase_constants'
require 'hbase/table'
require 'shell'
##
# Tests whether all registered commands have a help and command method
class ShellCommandsTest < Test::Unit::TestCase
Shell.commands.each do |name, klass|
define_test "#{name} command class #{klass} should respond to help" do
assert_respond_to(klass.new(nil), :help)
end
define_test "#{name} command class #{klass} should respond to :command" do
assert_respond_to(klass.new(nil), :command)
end
end
end
##
# Tests commands from the point of view of the shell to validate
# that the error messages returned to the user are correct
class ShellCloneSnapshotTest < Test::Unit::TestCase
include Hbase::TestHelpers
def setup
setup_hbase
@shell.interactive = false
# Create test table
@test_name = 'hbase_shell_tests_table'
drop_test_table(@test_name)
create_test_table(@test_name)
# Test snapshot name
@create_test_snapshot = 'hbase_shell_tests_snapshot'
drop_test_snapshot
end
def teardown
drop_test_table(@test_name)
drop_test_snapshot
shutdown
end
define_test 'Clone snapshot with table that already exists' do
existing_table = 'existing_table'
create_test_table(existing_table)
admin.snapshot(@test_name, @create_test_snapshot)
error = assert_raise(RuntimeError) do
@shell.command(:clone_snapshot, @create_test_snapshot, existing_table)
end
assert_match(/Table already exists: existing_table!/, error.message)
end
define_test 'Clone snapshot with unknown namespace' do
clone_table = 'does_not_exist:test_clone_snapshot_table'
admin.snapshot(@test_name, @create_test_snapshot)
error = assert_raise(RuntimeError) do
@shell.command(:clone_snapshot, @create_test_snapshot, clone_table)
end
assert_match(/Unknown namespace: does_not_exist!/, error.message)
end
end