# frozen_string_literal: true
require "test_helper"
require "sip_account"
class SipAccount
public :password, :url
class New
public :password
end
end
class SipAccountTest < Minitest::Test
def setup
@sip = SipAccount.new(
url: "https://api.catapult.inetwork.com/v1/" \
"users/catapult_user/domains/catapult_domain/endpoints/test",
username: "12345",
password: "old password"
)
end
def test_with_random_password
new_sip = @sip.with_random_password
refute_equal @sip.password, new_sip.password
refute_empty new_sip.password
assert_kind_of String, new_sip.password
end
def test_form
form = @sip.form
assert_equal "12345", form.field("username").value
assert_equal "old password", form.field("password").value
assert_equal "host.bwapp.io.example.com", form.field("server").value
end
def test_put
delete = stub_request(:delete, @sip.url).with(
headers: {
"Authorization" => "Basic Y2F0YXB1bHRfdG9rZW46Y2F0YXB1bHRfc2VjcmV0"
}
).to_return(status: 200)
post = stub_request(
:post,
"https://api.catapult.inetwork.com/v1/users/" \
"catapult_user/domains/catapult_domain/endpoints"
).with(
body: open(__dir__ + "/data/catapult_create_sip.json").read.chomp,
headers: {
"Authorization" => "Basic Y2F0YXB1bHRfdG9rZW46Y2F0YXB1bHRfc2VjcmV0",
"Content-Type" => "application/json"
}
).to_return(
status: 201,
headers: { "Location" => "http://example.com/endpoint" }
)
new_sip = @sip.put.sync
assert_equal "http://example.com/endpoint", new_sip.url
assert_requested delete
assert_requested post
end
em :test_put
def test_put_delete_fail
stub_request(:delete, @sip.url).to_return(status: 400)
assert_raises(RuntimeError) { @sip.put.sync }
end
em :test_put_delete_fail
def test_put_post_fail
stub_request(:delete, @sip.url).to_return(status: 200)
stub_request(
:post,
"https://api.catapult.inetwork.com/v1/users/" \
"catapult_user/domains/catapult_domain/endpoints"
).to_return(status: 400)
assert_raises(RuntimeError) { @sip.put.sync }
end
em :test_put_post_fail
class NewTest < Minitest::Test
def setup
@sip = SipAccount::New.new(
username: "12345",
password: "old password"
)
end
def test_with_random_password
new_sip = @sip.with_random_password
refute_equal @sip.password, new_sip.password
refute_empty new_sip.password
assert_kind_of String, new_sip.password
end
def test_put
post = stub_request(
:post,
"https://api.catapult.inetwork.com/v1/users/" \
"catapult_user/domains/catapult_domain/endpoints"
).with(
body: open(__dir__ + "/data/catapult_create_sip.json").read.chomp,
headers: {
"Authorization" => "Basic Y2F0YXB1bHRfdG9rZW46Y2F0YXB1bHRfc2VjcmV0",
"Content-Type" => "application/json"
}
).to_return(
status: 201,
headers: { "Location" => "http://example.com/endpoint" }
)
new_sip = @sip.put.sync
assert_equal "http://example.com/endpoint", new_sip.url
assert_requested post
end
em :test_put
end
end