Skip to content

Commit fc51e0d

Browse files
committed
Add specs for namespaced defaults
1 parent ce5a767 commit fc51e0d

1 file changed

Lines changed: 30 additions & 0 deletions

File tree

spec/serializable_spec.cr

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -277,6 +277,28 @@ class MessagePackAttrModuleTest
277277
end
278278
end
279279

280+
module MessagePackNamespace
281+
struct FooRequest
282+
include MessagePack::Serializable
283+
284+
getter foo : Foo
285+
getter bar = Bar.new
286+
end
287+
288+
struct Foo
289+
include MessagePack::Serializable
290+
getter id = "id:foo"
291+
end
292+
293+
struct Bar
294+
include MessagePack::Serializable
295+
getter id = "id:bar"
296+
297+
def initialize # Allow for default value above
298+
end
299+
end
300+
end
301+
280302
class MessagePackAttrModuleTest2 < MessagePackAttrModuleTest
281303
property bar : Int32
282304

@@ -933,4 +955,12 @@ describe "MessagePack mapping" do
933955
created.as(Discriminator::Created).created_at.should eq time
934956
updated.as(Discriminator::Updated).updated_at.should eq time
935957
end
958+
959+
describe "namespaced classes" do
960+
it "lets default values use the object's own namespace" do
961+
request = MessagePackNamespace::FooRequest.from_msgpack({foo: {} of String => String}.to_msgpack)
962+
request.foo.id.should eq "id:foo"
963+
request.bar.id.should eq "id:bar"
964+
end
965+
end
936966
end

0 commit comments

Comments
 (0)