require 'test_helper' class ListTest < Minitest::Test describe "API Call: list" do before do api_url = 'http://api.sailthru.com' @secret = 'my_secret' @api_key = 'my_api_key' @sailthru_client = Sailthru::Client.new(@api_key, @secret, api_url) @api_call_url = sailthru_api_call_url(api_url, 'list') end it "can get all lists meta data" do query_string = create_json_payload(@api_key, @secret, {}) stub_get(@api_call_url + '?' + query_string, 'list_get_all.json') response = @sailthru_client.get_lists assert_equal(response['lists'].length, 2) refute_nil(response['lists'][0]['name']) end it "can get list information" do list = 'list1' query_string = create_json_payload(@api_key, @secret, {'list' => list}) stub_get(@api_call_url + '?' + query_string, 'list_get_valid.json') response = @sailthru_client.get_list(list) assert_equal(response['list'], list) refute_nil response['type'] end it "gets empty response for invalid list in json format" do list = 'invalidlistname' params = {:list => list} query_string = create_json_payload(@api_key, @secret, params) stub_get(@api_call_url + '?' + query_string, 'list_get_invalid.json') response = @sailthru_client.get_list(list) refute_nil response['errormsg'] refute_nil response['error'] end it "can save list information" do list = 'new-list2' primary = 1 options = { 'primary' => primary } stub_post(@api_call_url, 'list_save_valid.json') response = @sailthru_client.save_list(list, options) assert_equal(response['list'], list) end it "cannot delete invalid list" do list = 'invalid-list' params = {'list' => list} query_string = create_json_payload(@api_key, @secret, params) stub_delete(@api_call_url + '?' + query_string, 'list_delete_invalid.json') response = @sailthru_client.delete_list(list) refute_nil response['error'] end it "can delete valid list" do list = 'my-list' params = {:list => list} query_string = create_json_payload(@api_key, @secret, params) stub_delete(@api_call_url + '?' + query_string, 'list_delete_valid.json') response = @sailthru_client.delete_list(list) assert_equal(list, response['list']) end end end