# frozen_string_literal: true require "test_helper" require "auto_top_up_repo" class AutoTopUpRepoTest < Minitest::Test def setup @redis = Minitest::Mock.new @db = Minitest::Mock.new @repo = AutoTopUpRepo.new(redis: @redis, db: @db) end property(:find) { string } def find(customer_id) @redis.expect( :get, nil, ["jmp_customer_auto_top_up_amount-#{customer_id}"] ) @repo.find(customer_id) assert_mock @redis end property(:put_valid_amount) { range(15, 9999999) } def put_valid_amount(amount) @redis.expect( :set, nil, ["jmp_customer_auto_top_up_amount-somecustomer", amount] ) @repo.put("somecustomer", amount) assert_mock @redis end property(:put_invalid_amount) { branch [:range, 1, 14], [:range, -999, -1] } def put_invalid_amount(amount) @repo.put("somecustomer", amount) assert_mock @redis end def test_put_zero @redis.expect( :del, nil, ["jmp_customer_auto_top_up_amount-somecustomer"] ) @repo.put("somecustomer", 0) assert_mock @redis end end