# 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