test_backend_sgx.rb

 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