1# frozen_string_literal: true
2
3require "test_helper"
4require "bwmsgsv2_repo"
5require "backend_sgx"
6require "trivial_backend_sgx_repo"
7require "customer"
8
9BackendSgx::IQ_MANAGER = Minitest::Mock.new
10IBRRepo::IQ_MANAGER = Minitest::Mock.new
11
12class BackendSgxTest < Minitest::Test
13 def test_registered
14 IBRRepo::IQ_MANAGER.expect(
15 :write,
16 EMPromise.resolve(Blather::Stanza::Iq::IBR.new.tap { |ibr|
17 ibr.registered = true
18 }),
19 [Matching.new do |ibr|
20 assert_equal :get, ibr.type
21 assert_equal "customer_test@component", ibr.from.to_s
22 end]
23 )
24 sgx = Bwmsgsv2Repo.new(redis: FakeRedis.new).get("test").sync
25 assert sgx.registered?
26 end
27 em :test_registered
28
29 def test_registered_not_registered
30 IBRRepo::IQ_MANAGER.expect(
31 :write,
32 EMPromise.resolve(Blather::Stanza::Iq::IBR.new.tap { |ibr|
33 ibr.registered = false
34 }),
35 [Matching.new do |ibr|
36 assert_equal :get, ibr.type
37 assert_equal "customer_test@component", ibr.from.to_s
38 end]
39 )
40 sgx = Bwmsgsv2Repo.new(redis: FakeRedis.new).get("test").sync
41 refute sgx.registered?
42 end
43 em :test_registered_not_registered
44
45 def test_register!
46 BackendSgx::IQ_MANAGER.expect(
47 :write,
48 EMPromise.resolve(OpenStruct.new(error?: false)),
49 [Matching.new do |ibr|
50 assert_equal "customer_test@component", ibr.from.to_s
51 assert_equal "test_bw_account", ibr.nick
52 assert_equal "test_bw_user", ibr.username
53 assert_equal "test_bw_password", ibr.password
54 assert_equal "+15555550000", ibr.phone
55 end]
56 )
57 sgx = TrivialBackendSgxRepo.new(redis: FakeRedis.new).get("test").sync
58 sgx.register!("+15555550000")
59 BackendSgx::IQ_MANAGER.verify
60 end
61 em :test_register!
62end