test_backend_sgx.rb

 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
 9IBRRepo::IQ_MANAGER = Minitest::Mock.new
10
11class BackendSgxTest < Minitest::Test
12	def test_registered
13		IBRRepo::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		IBRRepo::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