Rename util class, add first usage

This commit is contained in:
Alex Sherman 2021-05-21 11:45:22 +05:00
parent 45dfa57529
commit a0d0ce3e00
5 changed files with 33 additions and 22 deletions

View file

@ -1,2 +1,2 @@
require 'application_service'
require 'xsd/util'
require 'xsd/schema'

View file

@ -1,6 +1,7 @@
module Xsd
class Util < ApplicationService
class Schema < ApplicationService
SCHEMA_PATH = 'lib/schemas/'.freeze
BASE_URL = 'https://epp.tld.ee/schema/'.freeze
attr_reader :xsd_schemas, :for_prefix
@ -10,8 +11,13 @@ module Xsd
@xsd_schemas = Dir.entries(schema_path).select { |f| File.file? File.join(schema_path, f) }
end
def self.filename(*args, &block)
new(*args, &block).call
end
def call
latest(for_prefix)
filename = latest(for_prefix)
BASE_URL + filename
end
private

View file

@ -14,10 +14,10 @@ class EppDomainCreateBaseTest < EppTestCase
request_xml = <<-XML
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<epp xmlns="https://epp.tld.ee/schema/epp-ee-1.0.xsd">
<epp xmlns="#{Xsd::Schema.filename(for_prefix: 'epp-ee')}">
<command>
<create>
<domain:create xmlns:domain="https://epp.tld.ee/schema/domain-eis-1.0.xsd">
<domain:create xmlns:domain="#{Xsd::Schema.filename(for_prefix: 'domain-eis')}">
<domain:name>#{name}</domain:name>
<domain:registrant>#{registrant.code}</domain:registrant>
</domain:create>
@ -31,7 +31,7 @@ class EppDomainCreateBaseTest < EppTestCase
<secDNS:pubKey>#{pub_key}</secDNS:pubKey>
</secDNS:keyData>
</secDNS:create>
<eis:extdata xmlns:eis="https://epp.tld.ee/schema/eis-1.0.xsd">
<eis:extdata xmlns:eis="#{Xsd::Schema.filename(for_prefix: 'eis')}">
<eis:legalDocument type="pdf">#{'test' * 2000}</eis:legalDocument>
</eis:extdata>
</extension>

View file

@ -0,0 +1,21 @@
require 'test_helper'
require 'xsd/schema'
class XsdSchemaTest < ActiveSupport::TestCase
def setup
@schema_path = 'test/fixtures/files/schemas'
super
end
def test_single_part_name
filename = Xsd::Schema.filename(schema_path: @schema_path, for_prefix: 'abcde')
assert_equal Xsd::Schema::BASE_URL + 'abcde-1.2.xsd', filename
end
def test_double_part_name
filename = Xsd::Schema.filename(schema_path: @schema_path, for_prefix: 'abcde-fghij')
assert_equal Xsd::Schema::BASE_URL + 'abcde-fghij-1.3.xsd', filename
end
end

View file

@ -1,16 +0,0 @@
require 'test_helper'
require 'xsd/util'
class XsdUtilTest < ActiveSupport::TestCase
def test_single_part_name
version = Xsd::Util.call(schema_path: 'test/fixtures/files/schemas', for_prefix: 'abcde')
assert_equal 'abcde-1.2.xsd', version
end
def test_double_part_name
version = Xsd::Util.call(schema_path: 'test/fixtures/files/schemas', for_prefix: 'abcde-fghij')
assert_equal 'abcde-fghij-1.3.xsd', version
end
end