test_customer_fwd.rb

 1# frozen_string_literal: true
 2
 3require "test_helper"
 4require "customer_fwd"
 5
 6class Rantly
 7	def jid
 8		v = Blather::JID.new(Blather::JID.new(string, string).stripped.to_s)
 9		guard !v.to_s.to_s.empty?
10		v
11	end
12end
13
14class CustomerFwdTest < Minitest::Test
15	property(:for_xmpp) { jid }
16	def for_xmpp(jid)
17		sip = "sip:#{ERB::Util.url_encode(jid.to_s)}@sip.cheogram.com"
18		fwd = CustomerFwd.for(uri: "xmpp:#{jid}", timeout: 10)
19		assert_kind_of CustomerFwd::XMPP, fwd
20		assert_equal sip, fwd.to
21	end
22
23	property(:for_xmpp_sip) { jid }
24	def for_xmpp_sip(jid)
25		sip = "sip:#{ERB::Util.url_encode(jid.to_s)}@sip.cheogram.com"
26		fwd = CustomerFwd.for(uri: sip, timeout: 10)
27		assert_kind_of CustomerFwd::XMPP, fwd
28		assert_equal sip, fwd.to
29	end
30
31	property(:for_tel) { "+#{string(:digit)}" }
32	def for_tel(tel)
33		fwd = CustomerFwd.for(uri: "tel:#{tel}", timeout: 10)
34		assert_kind_of CustomerFwd::Tel, fwd
35		assert_equal tel, fwd.to
36	end
37
38	property(:for_sip) { "#{string(:alnum)}@#{string(:alnum)}.example.com" }
39	def for_sip(sip)
40		fwd = CustomerFwd.for(uri: "sip:#{sip}", timeout: 10)
41		assert_kind_of CustomerFwd::SIP, fwd
42		assert_equal "sip:#{sip}", fwd.to
43	end
44
45	property(:for_bogus) { string }
46	def for_bogus(bogus)
47		assert_raises(RuntimeError) do
48			CustomerFwd.for(uri: "bogus:#{bogus}", timeout: 10)
49		end
50	end
51end