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