# frozen_string_literal: true
require "test_helper"
require "bwmsgsv2_repo"
require "backend_sgx"
require "trivial_backend_sgx_repo"
BackendSgx::IQ_MANAGER = Minitest::Mock.new
Bwmsgsv2Repo::IQ_MANAGER = Minitest::Mock.new
class BackendSgxTest < Minitest::Test
def test_registered
Bwmsgsv2Repo::IQ_MANAGER.expect(
:write,
EMPromise.resolve(IBR.new.tap { |ibr| ibr.registered = true }),
[Matching.new do |ibr|
assert_equal :get, ibr.type
assert_equal "customer_test@component", ibr.from.to_s
end]
)
sgx = Bwmsgsv2Repo.new(redis: FakeRedis.new).get("test").sync
assert sgx.registered?
end
em :test_registered
def test_registered_not_registered
Bwmsgsv2Repo::IQ_MANAGER.expect(
:write,
EMPromise.resolve(IBR.new.tap { |ibr| ibr.registered = false }),
[Matching.new do |ibr|
assert_equal :get, ibr.type
assert_equal "customer_test@component", ibr.from.to_s
end]
)
sgx = Bwmsgsv2Repo.new(redis: FakeRedis.new).get("test").sync
refute sgx.registered?
end
em :test_registered_not_registered
def test_register!
BackendSgx::IQ_MANAGER.expect(
:write,
EMPromise.resolve(OpenStruct.new(error?: false)),
[Matching.new do |ibr|
assert_equal "customer_test@component", ibr.from.to_s
assert_equal "test_bw_account", ibr.nick
assert_equal "test_bw_user", ibr.username
assert_equal "test_bw_password", ibr.password
assert_equal "+15555550000", ibr.phone
end]
)
sgx = TrivialBackendSgxRepo.new.get("test")
sgx.register!("+15555550000")
BackendSgx::IQ_MANAGER.verify
end
end