File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -277,6 +277,28 @@ class MessagePackAttrModuleTest
277277 end
278278end
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+
280302class 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
936966end
You can’t perform that action at this time.
0 commit comments