Skip to content

Commit 6f96535

Browse files
committed
oid generator technically incorrect because not enough digits.
1 parent 99cb19a commit 6f96535

2 files changed

Lines changed: 10 additions & 2 deletions

File tree

‎lib/resource_generator.rb‎

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -156,9 +156,10 @@ def self.generate_child(type, namespace, embedded=0)
156156
end
157157

158158
def self.random_oid
159+
# Regex: urn:oid:[0-2](\.[1-9]\d*)+ (http://hl7.org/fhir/STU3/datatypes.html#oid)
159160
oid = "urn:oid:2"
160-
SecureRandom.random_number(12).times do |i|
161-
oid = "#{oid}.#{SecureRandom.random_number(500)}"
161+
rand(1..12).times do
162+
oid = "#{oid}.#{rand(1..500)}"
162163
end
163164
oid
164165
end

‎test/unit/resource_generator_test.rb‎

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,4 +46,11 @@ def check_valid_namespaces(resource, namespace)
4646
return resource.instance_values.values.all? { |v| check_valid_namespaces(v, namespace) }
4747
end
4848

49+
def test_valid_oid_generator
50+
500.times do
51+
random_oid = Crucible::Tests::ResourceGenerator.random_oid
52+
assert /urn:oid:[0-2](\.[1-9]\d*)+/.match?(random_oid), "Randomly generated #{random_oid} does not appear to be a valid oid."
53+
end
54+
end
55+
4956
end

0 commit comments

Comments
 (0)