Sha256: 1889315c07dc6cf7fa622c131215325f1f23c60db8ad1b0b73958f66ac638e04

Contents?: true

Size: 748 Bytes

Versions: 3

Compression:

Stored size: 748 Bytes

Contents

require 'avro_turf/test/fake_confluent_schema_registry_server'
require 'avro-resolution_canonical_form'

module AvroSchemaRegistry
  class FakeServer < FakeConfluentSchemaRegistryServer
    get '/subjects/:subject/fingerprints/:fingerprint' do
      subject = params[:subject]
      halt(404, SCHEMA_NOT_FOUND) unless SUBJECTS.key?(subject)

      fingerprint = params[:fingerprint]
      fingerprint = fingerprint.to_i.to_s(16) if /^\d+$/ =~ fingerprint

      schema_id = SCHEMAS.find_index do |schema|
        Avro::Schema.parse(schema).sha256_resolution_fingerprint.to_s(16) == fingerprint
      end

      halt(404, SCHEMA_NOT_FOUND) unless schema_id && SUBJECTS[subject].include?(schema_id)

      { id: schema_id }.to_json
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
avro_schema_registry-client-0.3.0 lib/avro_schema_registry/test/fake_server.rb
avro_schema_registry-client-0.2.0 lib/avro_schema_registry/test/fake_server.rb
avro_schema_registry-client-0.1.0 lib/avro_schema_registry/test/fake_server.rb