84 lines
2.1 KiB
Ruby
84 lines
2.1 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
require "minitest/autorun"
|
|
require "yaml"
|
|
require_relative "../socialcast_api.rb"
|
|
require_relative "./test_data.rb"
|
|
|
|
class TestSocialcastApi < Minitest::Test
|
|
DEBUG = false
|
|
|
|
def initialize(args)
|
|
config = YAML.load_file(File.join(__dir__, "config.ex.yml"))
|
|
@domain = config["domain"]
|
|
@username = config["username"]
|
|
@password = config["password"]
|
|
@kb_id = config["kb_id"]
|
|
@question_id = config["question_id"]
|
|
super args
|
|
end
|
|
|
|
def setup
|
|
@socialcast = SocialcastApi.new @domain, @username, @password
|
|
end
|
|
|
|
def test_initialize
|
|
assert_equal @domain, @socialcast.domain
|
|
assert_equal @username, @socialcast.username
|
|
assert_equal @password, @socialcast.password
|
|
end
|
|
|
|
def test_base_url
|
|
assert_equal "https://demo.socialcast.com/api", @socialcast.base_url
|
|
end
|
|
|
|
def test_headers
|
|
headers = @socialcast.headers
|
|
assert_equal "Basic ZW1pbHlAc29jaWFsY2FzdC5jb206ZGVtbw==", headers[:Authorization]
|
|
assert_equal "application/json", headers[:Accept]
|
|
end
|
|
|
|
def test_list_users
|
|
users = @socialcast.list_users
|
|
expected = JSON.parse(USERS)["users"].sort { |u| u["id"] }
|
|
assert_equal 15, users.size
|
|
assert_equal expected[0], users[0]
|
|
end
|
|
|
|
def test_list_users_next_page
|
|
users = @socialcast.list_users(page: 2)
|
|
assert_equal 0, users.size
|
|
end
|
|
|
|
def test_list_messages
|
|
messages = @socialcast.list_messages
|
|
expected = JSON.parse(MESSAGES)["messages"].sort { |m| m["id"] }
|
|
assert_equal 20, messages.size
|
|
check_keys expected[0], messages[0]
|
|
end
|
|
|
|
def test_messages_next_page
|
|
messages = @socialcast.list_messages(page: 2)
|
|
expected = JSON.parse(MESSAGES_PG_2)["messages"].sort { |m| m["id"] }
|
|
assert_equal 20, messages.size
|
|
check_keys expected[0], messages[0]
|
|
end
|
|
|
|
private
|
|
|
|
def check_keys(expected, actual)
|
|
msg = "### caller[0]:\nKey not found in actual keys: #{actual.keys}\n"
|
|
expected.keys.each { |k| assert (actual.keys.include? k), "#{k}" }
|
|
end
|
|
|
|
def debug(message, show = false)
|
|
if show || DEBUG
|
|
puts "### " + caller[0]
|
|
puts ""
|
|
puts message
|
|
puts ""
|
|
puts ""
|
|
end
|
|
end
|
|
end
|