class DatahubHttpClientTest
Public Instance Methods
test()
click to toggle source
def teardown
# @client.delete_project(@project_name) # @client.delete_topic(@project_name, @topic_name)
end
def test_list_projects
puts @client.list_projects
end
def test_get_project
project_name = "test_project_5" @comment = "test" @client.create_project(project_name, @comment) # project存在 project_map = @client.get_project(project_name) puts project_map assert_equal(project_map["Comment"], @comment) @client.delete_project(project_name) # project不存在 begin project_map = @client.get_project("not_exists_project_name") rescue => e resp = JSON.parse(e.message) assert_equal(resp["ErrorCode"], "NoSuchProject") end
end
def test_create_project
test_project_name = "test_project_3" begin @client.delete_project(test_project_name) rescue => e end comment = "jype" @client.create_project(test_project_name, comment) project = @client.get_project(test_project_name) assert_equal(project["Comment"], comment) # project重复 begin @client.create_project(test_project_name, comment) rescue => e resp = JSON.parse(e.message) assert_equal(resp["ErrorCode"], "ProjectAlreadyExist") end # 清理 @client.delete_project(test_project_name)
end
def test_delete_project
test_project_name = "jyp_production_test_create_project_del" comment = "jype" @client.create_project(test_project_name, comment) project = @client.get_project(test_project_name) assert(project != nil, "project should be not null") @client.delete_project(test_project_name) begin new_project = @client.get_project(test_project_name) rescue => e resp = JSON.parse(e.message) assert_equal(resp["ErrorCode"], "NoSuchProject") end
end
def test_list_topics
puts @client.list_topics(@project_name)
end
def test_write_and_read
@client = DatahubClient.new("", "", "") @datahub_project = @client.get_project("test_project") # @datahub_topic = @datahub_project.get_topic("fluentd_out_6") # abc = @datahub_topic.record_schema # fields = abc.get_fields # puts fields[0].get_name record_schema = RecordSchema.new record_schema.add_field(RecordField.new("id","BIGINT")) record_schema.add_field(RecordField.new("name","STRING")) record_schema.add_field(RecordField.new("gender","BOOLEAN")) record_schema.add_field(RecordField.new("salary","DOUBLE")) record_schema.add_field(RecordField.new("gmt_create","TIMESTAMP")) #@datahub_project.create_topic("test_ruby_sdk_table_70", 12, 5, "TUPLE", record_schema, "test for ruby sdk") my_topic = @datahub_project.get_topic("test_ruby_sdk_table_70") # assert_equal(my_topic.record_schema.get_fields[0].get_name, "id") record_entities = [] record_entity = RecordEntity.new(record_schema) record_entity.setBigInt("id", 1) record_entity.setString("name", "hj") record_entity.set_shard_id("0") record_entities.push(record_entity) my_topic.write_data(record_entities) cursor = my_topic.get_cursor("0") result = my_topic.read_data("0", cursor, 2) puts result
end
def hash_code(str)
str.each_char.reduce(0) do |result, char| [((result << 5) - result) + char.ord].pack('L').unpack('l').first end
end
def test_hash
string1 = "abcdefg,makeboluogggg" puts hash_code(string1)
end
def test_get_topic
actual_topic = @client.get_topic(@project_name, @topic_name) puts actual_topic assert_equal(actual_topic["Comment"], @topic_comment) assert_equal(actual_topic["RecordType"], "TUPLE") assert_equal(actual_topic["ShardCount"], 10)
end
def test_create_topic
record_schema = RecordSchema.new() id = RecordField.new("id", "BIGINT") name = RecordField.new("name", "STRING") age = RecordField.new("age", "BIGINT") record_schema.add_field(id) record_schema.add_field(name) record_schema.add_field(age) topic_comment = "jyp_production_made_in_asia_test_topic_create_topic" topic_name = "jyp_production_made_in_asia_test_topic_create_topic" @client.create_topic(@project_name, topic_name, 4, 7, "TUPLE", record_schema, topic_comment) actual_topic = @client.get_topic(@project_name, topic_name) assert_equal(actual_topic["Comment"], topic_comment) assert_equal(actual_topic["RecordType"], "TUPLE") assert_equal(actual_topic["ShardCount"], 4) # 重复创建 begin @client.create_topic(@project_name, topic_name, 4, 7, "TUPLE", record_schema, topic_comment) rescue => e resp = JSON.parse(e.message) assert_equal(resp["ErrorCode"], "TopicAlreadyExist") end @client.delete_topic(@project_name, topic_name) # 工程不存在 begin @client.create_topic("project_not_exists_aa", topic_name, 4, 7, "TUPLE", record_schema, topic_comment) rescue => e resp = JSON.parse(e.message) assert_equal(resp["ErrorCode"], "NoSuchProject") end # 无效的参数 begin @client.create_topic(@project_name, topic_name, 4, nil, "TUPLE", record_schema, topic_comment) rescue => e resp = JSON.parse(e.message) assert_equal(resp["ErrorCode"], "InvalidParameter") end
end
def test_update_topic
record_schema = RecordSchema.new() id = RecordField.new("id", "BIGINT") name = RecordField.new("name", "STRING") age = RecordField.new("age", "BIGINT") record_schema.add_field(id) record_schema.add_field(name) record_schema.add_field(age) topic_comment = "jyp_production_made_in_asia_test_topic_update_topic" topic_new_comment = "jyp_production_made_in_asia_test_topic_update_topic_new" topic_name = "jyp_production_made_in_asia_test_topic_update_topic" @client.create_topic(@project_name, topic_name, 4, 7, "TUPLE", record_schema, topic_comment) actual_topic = @client.get_topic(@project_name, topic_name) assert_equal(actual_topic["Comment"], topic_comment) @client.update_topic(@project_name, topic_name, 6, topic_new_comment) actual_topic = @client.get_topic(@project_name, topic_name) assert_equal(actual_topic["Comment"], topic_new_comment) assert_equal(actual_topic["Lifecycle"], 6) @client.delete_topic(@project_name, topic_name)
end
def test_delete_topic
record_schema = RecordSchema.new() id = RecordField.new("id", "BIGINT") name = RecordField.new("name", "STRING") age = RecordField.new("age", "BIGINT") record_schema.add_field(id) record_schema.add_field(name) record_schema.add_field(age) topic_comment = "jyp_production_made_in_asia_test_topic_delete_topic" topic_name = "jyp_production_made_in_asia_test_topic_delete_topic" @client.create_topic(@project_name, topic_name, 4, 7, "TUPLE", record_schema, topic_comment) actual_topic = @client.get_topic(@project_name, topic_name) assert(actual_topic != nil, "topic can not be null") @client.delete_topic(@project_name, topic_name) begin actual_topic = @client.get_topic(@project_name, topic_name) rescue => e resp = JSON.parse(e.message) assert_equal(resp["ErrorCode"], "NoSuchTopic") end
end
def test_list_shard
puts @client.list_shards(@project_name, @topic_name)
end # def test_write_data_to_topic
sleep 1 entity = RecordEntity.new(@record_schema) entity.set("id", 123) entity.set("name", "jyp") entity.set("age", 24) entity.set_shard_id("0") record_entities = [] record_entities.push(entity) puts @client.write_data_to_topic(@project_name, @topic_name, record_entities)
end
def test_get_shard_cursor
sleep 1 puts @client.get_shard_cursor(@project_name, @topic_name, "0", 10)
end
def test_read_data_from_shard
sleep 1 record_entities = [] # 写入0号shard entity1 = RecordEntity.new(@record_schema) entity1.set("id", 1111) entity1.set("name", "jyp111") entity1.set("age", 24) entity1.set_shard_id("0") record_entities.push(entity1) # 写入1号shard entity2 = RecordEntity.new(@record_schema) entity2.set("id", 2222) entity2.set("name", "jyp222") entity2.set("age", 25) entity2.set_shard_id("1") record_entities.push(entity2) puts @client.write_data_to_topic(@project_name, @topic_name, record_entities) sleep 1 # 消费0、1shard的数据 puts @client.read_data_from_shard(@project_name, @topic_name, "0", 10, DateTime.now.strftime('%Q'), "OLDEST") puts @client.read_data_from_shard(@project_name, @topic_name, "1", 10, DateTime.now.strftime('%Q'), "OLDEST")
end
# File lib/fluent/plugin/datahub/datahub-http-client-test.rb, line 314 def test @client = DatahubHttpClient.new("", "", "") record_schema = RecordSchema.new record_schema.setEncoding("UTF-8") record_schema.add_field(RecordField.new("id","BIGINT")) record_schema.add_field(RecordField.new("name","STRING")) record_schema.add_field(RecordField.new("gender","BOOLEAN")) record_schema.add_field(RecordField.new("salary","DOUBLE")) record_schema.add_field(RecordField.new("gmt_create","TIMESTAMP")) record_entities = [] record_entity = RecordEntity.new(record_schema) record_entity.setBigInt("id", 1) tmp = "test哈哈中国人" #p tmp.encoding #tmp.force_encoding("ASCII-8BIT") #p tmp.encoding record_entity.setString("name",tmp) record_entity.set_shard_id("1") record_entity.setDouble("salary","10.00") record_entities.push(record_entity) @client.write_data_to_topic("test_project", "datahub_file_result", record_entities) puts "ok" end