class Books::FakeAuthorityClient
Test class that provides a fake RPC client for books authority. Useful for tests, it provides real SSKG generation. It does not do the full suite of verification.
Public Class Methods
new( raise_on_self_register:false, raise_on_verify:false)
click to toggle source
# File lib/books/fake_authority_client.rb, line 10 def initialize( raise_on_self_register:false, raise_on_verify:false) @sskgs = {} @raise_on_self_register = raise_on_self_register end
Public Instance Methods
generate_sskg(req)
click to toggle source
# File lib/books/fake_authority_client.rb, line 38 def generate_sskg(req) { root_sskg_token: Base64.decode64("gqhwb3NpdGlvbgClbm9kZXORgqVzdGF0ZcQg/z6NXBXEZRXi1qKfcsmSmu5x2HCYgbT9ZC97IVJyqWymaGVpZ2h0Pw=="), first_key: Base64.decode64("gqhwb3NpdGlvbgGlbm9kZXOSgqVzdGF0ZcQgd1N+3oVeOJri1Jz8k0fBHSMv6YejZcT8EjW0ixZwoAOmaGVpZ2h0PoKlc3RhdGXEILIzf84dcqwznf807/8DVWJNE/Pj5MTkILqeTOOCaK3GpmhlaWdodD4="), } end
https_rpc(rpc, req)
click to toggle source
# File lib/books/fake_authority_client.rb, line 17 def https_rpc(rpc, req) case rpc when :generate_sskg generate_sskg(req) when :verify_book verify_book(req) when :register_self register_self(req) else raise "Invalid RPC method #{rpc}" end end
register_self(req)
click to toggle source
# File lib/books/fake_authority_client.rb, line 30 def register_self(req) raise "Client already registered" if @raise_on_self_register end
verify_book(req)
click to toggle source
# File lib/books/fake_authority_client.rb, line 34 def verify_book(req) raise "Book has been tampered with" if @raise_on_verify end