# frozen_string_literal: true require "test_helper" require "customer_fwd" class Rantly def jid v = Blather::JID.new(Blather::JID.new(string, string).stripped.to_s) guard !v.to_s.to_s.empty? v end end class CustomerFwdTest < Minitest::Test def test_too_big_timeout fwd = CustomerFwd.for(uri: "xmpp:test@example.com", timeout: 500) assert_equal 300, fwd.timeout.to_i end property(:for_xmpp) { jid } def for_xmpp(jid) sip = "sip:#{ERB::Util.url_encode(jid.to_s)}@sip.cheogram.com" fwd = CustomerFwd.for(uri: "xmpp:#{jid}", timeout: 10) assert_kind_of CustomerFwd::XMPP, fwd assert_equal sip, fwd.to end property(:for_xmpp_sip) { jid } def for_xmpp_sip(jid) sip = "sip:#{ERB::Util.url_encode(jid.to_s)}@sip.cheogram.com" fwd = CustomerFwd.for(uri: sip, timeout: 10) assert_kind_of CustomerFwd::XMPP, fwd assert_equal sip, fwd.to end property(:for_tel) { "+#{string(:digit)}" } def for_tel(tel) fwd = CustomerFwd.for(uri: "tel:#{tel}", timeout: 10) assert_kind_of CustomerFwd::Tel, fwd assert_equal tel, fwd.to end property(:for_sip) { "#{string(:alnum)}@#{string(:alnum)}.example.com" } def for_sip(sip) fwd = CustomerFwd.for(uri: "sip:#{sip}", timeout: 10) assert_kind_of CustomerFwd::SIP, fwd assert_equal "sip:#{sip}", fwd.to end property(:for_bogus) { string } def for_bogus(bogus) assert_raises(RuntimeError) do CustomerFwd.for(uri: "bogus:#{bogus}", timeout: 10) end end end