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