Merge pull request #410 from yuki3738/add_priority_validation_to_annotations
Add range validation for `MCP::Annotations#priority` per MCP specification
This commit is contained in:
commit
acec71df74
2 changed files with 28 additions and 0 deletions
|
|
@ -5,6 +5,8 @@ module MCP
|
||||||
attr_reader :audience, :priority, :last_modified
|
attr_reader :audience, :priority, :last_modified
|
||||||
|
|
||||||
def initialize(audience: nil, priority: nil, last_modified: nil)
|
def initialize(audience: nil, priority: nil, last_modified: nil)
|
||||||
|
raise ArgumentError, "The value of priority must be between 0 and 1." if priority && !priority.between?(0, 1)
|
||||||
|
|
||||||
@audience = audience
|
@audience = audience
|
||||||
@priority = priority
|
@priority = priority
|
||||||
@last_modified = last_modified
|
@last_modified = last_modified
|
||||||
|
|
|
||||||
|
|
@ -55,5 +55,31 @@ module MCP
|
||||||
|
|
||||||
assert_equal({ lastModified: timestamp }, annotations.to_h)
|
assert_equal({ lastModified: timestamp }, annotations.to_h)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_valid_priority_at_lower_bound
|
||||||
|
assert_nothing_raised do
|
||||||
|
Annotations.new(priority: 0)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_valid_priority_at_upper_bound
|
||||||
|
assert_nothing_raised do
|
||||||
|
Annotations.new(priority: 1)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_invalid_priority_above_upper_bound
|
||||||
|
exception = assert_raises(ArgumentError) do
|
||||||
|
Annotations.new(priority: 1.5)
|
||||||
|
end
|
||||||
|
assert_equal("The value of priority must be between 0 and 1.", exception.message)
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_invalid_priority_below_lower_bound
|
||||||
|
exception = assert_raises(ArgumentError) do
|
||||||
|
Annotations.new(priority: -0.1)
|
||||||
|
end
|
||||||
|
assert_equal("The value of priority must be between 0 and 1.", exception.message)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue