Skip to content

Commit 14a8959

Browse files
authored
Add missing node mapper for document types (#2313)
Add missing node mapper for document types in collections in trait codegen. Also applies formatting to trait codegen smithy models.
1 parent 25f4023 commit 14a8959

File tree

45 files changed

+149
-130
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

45 files changed

+149
-130
lines changed

smithy-trait-codegen/src/it/java/software/amazon/smithy/traitcodegen/test/CreatesTraitTest.java

+13
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,13 @@
99
import com.example.traits.enums.IntEnumTrait;
1010
import com.example.traits.enums.StringEnumTrait;
1111
import com.example.traits.enums.SuitTrait;
12+
import com.example.traits.lists.DocumentListTrait;
1213
import com.example.traits.lists.ListMember;
1314
import com.example.traits.lists.NumberListTrait;
1415
import com.example.traits.lists.StringListTrait;
1516
import com.example.traits.lists.StructureListTrait;
1617
import com.example.traits.maps.MapValue;
18+
import com.example.traits.maps.StringDocumentMapTrait;
1719
import com.example.traits.maps.StringStringMapTrait;
1820
import com.example.traits.maps.StringToStructMapTrait;
1921
import com.example.traits.mixins.StructWithMixinTrait;
@@ -81,6 +83,10 @@ static Stream<Arguments> createTraitTests() {
8183
ListMember.builder().a("first").b(1).c("other").build().toNode(),
8284
ListMember.builder().a("second").b(2).c("more").build().toNode()
8385
)),
86+
Arguments.of(DocumentListTrait.ID, ArrayNode.fromNodes(
87+
ObjectNode.builder().withMember("a", "b").build(),
88+
ObjectNode.builder().withMember("c", "d").withMember("e", "f").build()
89+
)),
8490
// Maps
8591
Arguments.of(StringStringMapTrait.ID, StringStringMapTrait.builder()
8692
.putValues("a", "first").putValues("b", "other").build().toNode()
@@ -90,6 +96,13 @@ static Stream<Arguments> createTraitTests() {
9096
.putValues("two", MapValue.builder().a("bar").b(4).build())
9197
.build().toNode()
9298
),
99+
Arguments.of(StringDocumentMapTrait.ID, StringDocumentMapTrait.builder()
100+
.putValues("a", ObjectNode.builder().withMember("a", "a").build().toNode())
101+
.putValues("b", ObjectNode.builder().withMember("b", "b").build().toNode())
102+
.putValues("string", Node.from("stuff"))
103+
.putValues("number", Node.from(1))
104+
.build().toNode()
105+
),
93106
// Mixins
94107
Arguments.of(StructureListWithMixinMemberTrait.ID,
95108
ArrayNode.fromNodes(ObjectNode.builder().withMember("a", "a").withMember("d", "d").build())),

smithy-trait-codegen/src/it/java/software/amazon/smithy/traitcodegen/test/LoadsFromModelTest.java

+14
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,12 @@
1616
import com.example.traits.idref.IdRefStructTrait;
1717
import com.example.traits.idref.IdRefStructWithNestedIdsTrait;
1818
import com.example.traits.idref.NestedIdRefHolder;
19+
import com.example.traits.lists.DocumentListTrait;
1920
import com.example.traits.lists.ListMember;
2021
import com.example.traits.lists.NumberListTrait;
2122
import com.example.traits.lists.StructureListTrait;
2223
import com.example.traits.maps.MapValue;
24+
import com.example.traits.maps.StringDocumentMapTrait;
2325
import com.example.traits.maps.StringStringMapTrait;
2426
import com.example.traits.maps.StringToStructMapTrait;
2527
import com.example.traits.mixins.ListMemberWithMixin;
@@ -115,6 +117,11 @@ static Stream<Arguments> loadsModelTests() {
115117
MapUtils.of("getValues", ListUtils.of(
116118
ListMember.builder().a("first").b(1).c("other").build(),
117119
ListMember.builder().a("second").b(2).c("more").build()))),
120+
Arguments.of("lists/document-list-trait.smithy", DocumentListTrait.class,
121+
MapUtils.of("getValues", ListUtils.of(
122+
ObjectNode.builder().withMember("a", "a").build().toNode(),
123+
ObjectNode.builder().withMember("b", "b").withMember("c", 1).build().toNode(),
124+
Node.from("string")))),
118125
// Maps
119126
Arguments.of("maps/string-string-map-trait.smithy", StringStringMapTrait.class,
120127
MapUtils.of("getValues", MapUtils.of("a", "stuff",
@@ -123,6 +130,13 @@ static Stream<Arguments> loadsModelTests() {
123130
MapUtils.of("getValues", MapUtils.of(
124131
"one", MapValue.builder().a("foo").b(2).build(),
125132
"two", MapValue.builder().a("bar").b(4).build()))),
133+
Arguments.of("maps/string-to-document-map-trait.smithy", StringDocumentMapTrait.class,
134+
MapUtils.of("getValues", MapUtils.of(
135+
"a", ObjectNode.builder().withMember("a", "a").build().toNode(),
136+
"b", ObjectNode.builder().withMember("b", "b").withMember("c", 1).build().toNode(),
137+
"c", Node.from("stuff"),
138+
"d", Node.from(1)
139+
))),
126140
// Mixins
127141
Arguments.of("mixins/struct-with-mixin-member.smithy", StructureListWithMixinMemberTrait.class,
128142
MapUtils.of("getValues", ListUtils.of(

smithy-trait-codegen/src/it/resources/software/amazon/smithy/traitcodegen/test/defaults/defaults.smithy

+1-2
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,4 @@ namespace test.smithy.traitcodegen
55
use test.smithy.traitcodegen.defaults#StructDefaults
66

77
@StructDefaults
8-
structure myStruct {
9-
}
8+
structure myStruct {}

smithy-trait-codegen/src/it/resources/software/amazon/smithy/traitcodegen/test/documents/document-trait.smithy

+2-6
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,5 @@ namespace test.smithy.traitcodegen
44

55
use test.smithy.traitcodegen.documents#DocumentTrait
66

7-
@DocumentTrait({
8-
metadata: "woo"
9-
more: "yay"
10-
})
11-
structure myStruct {
12-
}
7+
@DocumentTrait({ metadata: "woo", more: "yay" })
8+
structure myStruct {}

smithy-trait-codegen/src/it/resources/software/amazon/smithy/traitcodegen/test/documents/struct-with-nested-document.smithy

+2-6
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,6 @@ namespace test.smithy.traitcodegen
55
use test.smithy.traitcodegen.documents#structWithNestedDocument
66

77
@structWithNestedDocument(
8-
doc: {
9-
foo: "bar"
10-
fizz: "buzz"
11-
}
8+
doc: { foo: "bar", fizz: "buzz" }
129
)
13-
structure myStruct {
14-
}
10+
structure myStruct {}

smithy-trait-codegen/src/it/resources/software/amazon/smithy/traitcodegen/test/enums/enum-trait.smithy

+1-2
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,4 @@ namespace test.smithy.traitcodegen
55
use test.smithy.traitcodegen.enums#StringEnum
66

77
@StringEnum("yes")
8-
structure myStruct {
9-
}
8+
structure myStruct {}

smithy-trait-codegen/src/it/resources/software/amazon/smithy/traitcodegen/test/enums/string-enum-compatibility.smithy

+1-2
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,4 @@ namespace test.smithy.traitcodegen
55
use test.smithy.traitcodegen.enums#Suit
66

77
@Suit("club")
8-
structure myStruct {
9-
}
8+
structure myStruct {}

smithy-trait-codegen/src/it/resources/software/amazon/smithy/traitcodegen/test/errorfiles/number-trait-errors.smithy

-2
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,3 @@ namespace test.smithy.traitcodegen.numbers
99
@ShortTrait("bad")
1010
@DoubleTrait("bad")
1111
structure structWithInvalidStringInput {}
12-
13-

smithy-trait-codegen/src/it/resources/software/amazon/smithy/traitcodegen/test/errorfiles/set-trait-errors.smithy

+2-4
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,7 @@ namespace test.smithy.traitcodegen.uniqueitems
44

55
// Doesnt have unique items. Expect failure
66
@NumberSetTrait([1, 1, 3, 4])
7-
structure repeatedNumberValues {
8-
}
7+
structure repeatedNumberValues {}
98

109
@StringSetTrait(["a", "a", "b"])
11-
structure repeatedStringValues {
12-
}
10+
structure repeatedStringValues {}

smithy-trait-codegen/src/it/resources/software/amazon/smithy/traitcodegen/test/errorfiles/structure-trait-warns.smithy

+6-15
Original file line numberDiff line numberDiff line change
@@ -2,24 +2,15 @@ $version: "2.0"
22

33
namespace test.smithy.traitcodegen.structures
44

5-
65
@structureTrait(
76
fieldA: "first"
87
fieldB: false
9-
fieldC: {
10-
fieldN: "nested"
11-
fieldQ: true
12-
fieldZ: "A"
13-
}
8+
fieldC: { fieldN: "nested", fieldQ: true, fieldZ: "A" }
149
fieldD: ["a", "b", "c"]
15-
fieldE: {
16-
a: "one"
17-
b: "two"
18-
}
19-
fieldF: 100.01,
20-
fieldG: 100,
21-
extraA: 100,
10+
fieldE: { a: "one", b: "two" }
11+
fieldF: 100.01
12+
fieldG: 100
13+
extraA: 100
2214
extraB: 200
2315
)
24-
structure myStruct {
25-
}
16+
structure myStruct {}

smithy-trait-codegen/src/it/resources/software/amazon/smithy/traitcodegen/test/idref/idref-map.smithy

+1-4
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,7 @@ namespace test.smithy.traitcodegen
44

55
use test.smithy.traitcodegen.idref#IdRefMap
66

7-
@IdRefMap(
8-
a: IdRefTarget1
9-
b: IdRefTarget2
10-
)
7+
@IdRefMap(a: IdRefTarget1, b: IdRefTarget2)
118
structure myStruct {}
129

1310
string IdRefTarget1

smithy-trait-codegen/src/it/resources/software/amazon/smithy/traitcodegen/test/idref/idref-struct-with-nested-refs.smithy

+2-7
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,9 @@ namespace test.smithy.traitcodegen
55
use test.smithy.traitcodegen.idref#IdRefStructWithNestedIds
66

77
@IdRefStructWithNestedIds(
8-
idRefHolder: {
9-
id: IdRefTarget1
10-
}
8+
idRefHolder: { id: IdRefTarget1 }
119
idList: [IdRefTarget1, IdRefTarget2]
12-
idMap: {
13-
a: IdRefTarget1
14-
b: IdRefTarget2
15-
}
10+
idMap: { a: IdRefTarget1, b: IdRefTarget2 }
1611
)
1712
structure myStruct {}
1813

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
$version: "2.0"
2+
3+
namespace test.smithy.traitcodegen
4+
5+
use test.smithy.traitcodegen.lists#DocumentListTrait
6+
7+
@DocumentListTrait([
8+
{
9+
a: "a"
10+
}
11+
{
12+
b: "b"
13+
c: 1
14+
}
15+
"string"
16+
])
17+
structure myStruct {}

smithy-trait-codegen/src/it/resources/software/amazon/smithy/traitcodegen/test/lists/number-list-trait.smithy

+1-2
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,4 @@ namespace test.smithy.traitcodegen
55
use test.smithy.traitcodegen.lists#NumberListTrait
66

77
@NumberListTrait([1, 2, 3, 4, 5])
8-
structure myStruct {
9-
}
8+
structure myStruct {}

smithy-trait-codegen/src/it/resources/software/amazon/smithy/traitcodegen/test/lists/string-list-trait.smithy

+1-2
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,4 @@ namespace test.smithy.traitcodegen
55
use test.smithy.traitcodegen.lists#StringListTrait
66

77
@StringListTrait(["a", "b", "c", "d"])
8-
structure myStruct {
9-
}
8+
structure myStruct {}

smithy-trait-codegen/src/it/resources/software/amazon/smithy/traitcodegen/test/lists/struct-list-trait.smithy

+3-3
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,11 @@ use test.smithy.traitcodegen.lists#StructureListTrait
99
a: "first"
1010
b: 1
1111
c: "other"
12-
} {
12+
}
13+
{
1314
a: "second"
1415
b: 2
1516
c: "more"
1617
}
1718
])
18-
structure myStruct {
19-
}
19+
structure myStruct {}

smithy-trait-codegen/src/it/resources/software/amazon/smithy/traitcodegen/test/maps/string-string-map-trait.smithy

+2-7
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,5 @@ namespace test.smithy.traitcodegen
44

55
use test.smithy.traitcodegen.maps#StringStringMap
66

7-
@StringStringMap(
8-
a: "stuff"
9-
b: "other"
10-
c: "more!"
11-
)
12-
structure myStruct {
13-
}
7+
@StringStringMap(a: "stuff", b: "other", c: "more!")
8+
structure myStruct {}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
$version: "2.0"
2+
3+
namespace test.smithy.traitcodegen
4+
5+
use test.smithy.traitcodegen.maps#StringDocumentMap
6+
7+
@StringDocumentMap(
8+
a: { a: "a" }
9+
b: { b: "b", c: 1 }
10+
c: "stuff"
11+
d: 1
12+
)
13+
structure myStruct {}

smithy-trait-codegen/src/it/resources/software/amazon/smithy/traitcodegen/test/maps/string-to-struct-map-trait.smithy

+3-10
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,7 @@ namespace test.smithy.traitcodegen
55
use test.smithy.traitcodegen.maps#StringToStructMap
66

77
@StringToStructMap(
8-
one: {
9-
a: "foo"
10-
b: 2
11-
}
12-
two: {
13-
a: "bar"
14-
b: 4
15-
}
8+
one: { a: "foo", b: 2 }
9+
two: { a: "bar", b: 4 }
1610
)
17-
structure myStruct {
18-
}
11+
structure myStruct {}

smithy-trait-codegen/src/it/resources/software/amazon/smithy/traitcodegen/test/mixins/struct-with-mixin-member.smithy

+2-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@ use test.smithy.traitcodegen.mixins#structureListWithMixinMember
1010
b: 1
1111
c: "other"
1212
d: "mixed-in"
13-
} {
13+
}
14+
{
1415
a: "second"
1516
b: 2
1617
c: "more"

smithy-trait-codegen/src/it/resources/software/amazon/smithy/traitcodegen/test/mixins/struct-with-only-mixin-member.smithy

+2-5
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,5 @@ namespace test.smithy.traitcodegen
44

55
use test.smithy.traitcodegen.mixins#structWithMixin
66

7-
@structWithMixin(
8-
d: "mixed-in"
9-
)
10-
structure myStruct {
11-
}
7+
@structWithMixin(d: "mixed-in")
8+
structure myStruct {}

smithy-trait-codegen/src/it/resources/software/amazon/smithy/traitcodegen/test/names/snake-case-struct.smithy

+2-5
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,5 @@ namespace test.smithy.traitcodegen
44

55
use test.smithy.traitcodegen.names#snake_case_structure
66

7-
@snake_case_structure(
8-
snake_case_member: "stuff"
9-
)
10-
structure myStruct {
11-
}
7+
@snake_case_structure(snake_case_member: "stuff")
8+
structure myStruct {}

smithy-trait-codegen/src/it/resources/software/amazon/smithy/traitcodegen/test/structures/struct-trait.smithy

+4-12
Original file line numberDiff line numberDiff line change
@@ -7,18 +7,10 @@ use test.smithy.traitcodegen.structures#structureTrait
77
@structureTrait(
88
fieldA: "first"
99
fieldB: false
10-
fieldC: {
11-
fieldN: "nested"
12-
fieldQ: true
13-
fieldZ: "A"
14-
}
10+
fieldC: { fieldN: "nested", fieldQ: true, fieldZ: "A" }
1511
fieldD: ["a", "b", "c"]
16-
fieldE: {
17-
a: "one"
18-
b: "two"
19-
}
20-
fieldF: 100.01,
12+
fieldE: { a: "one", b: "two" }
13+
fieldF: 100.01
2114
fieldG: 100
2215
)
23-
structure myStruct {
24-
}
16+
structure myStruct {}

smithy-trait-codegen/src/it/resources/software/amazon/smithy/traitcodegen/test/structures/struct-with-non-existent-collections.smithy

+2-7
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,6 @@ use test.smithy.traitcodegen.structures#structureTrait
77
@structureTrait(
88
fieldA: "first"
99
fieldB: false
10-
fieldC: {
11-
fieldN: "nested"
12-
fieldQ: true
13-
fieldZ: "A"
14-
}
10+
fieldC: { fieldN: "nested", fieldQ: true, fieldZ: "A" }
1511
)
16-
structure myStruct {
17-
}
12+
structure myStruct {}

smithy-trait-codegen/src/it/resources/software/amazon/smithy/traitcodegen/test/uniqueitems/number-set-trait.smithy

+1-2
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,4 @@ namespace test.smithy.traitcodegen
55
use test.smithy.traitcodegen.uniqueitems#NumberSetTrait
66

77
@NumberSetTrait([1, 2, 3, 4])
8-
structure myStruct {
9-
}
8+
structure myStruct {}

smithy-trait-codegen/src/it/resources/software/amazon/smithy/traitcodegen/test/uniqueitems/string-set-trait.smithy

+1-2
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,4 @@ namespace test.smithy.traitcodegen
55
use test.smithy.traitcodegen.uniqueitems#StringSetTrait
66

77
@StringSetTrait(["a", "b", "c", "d"])
8-
structure myStruct {
9-
}
8+
structure myStruct {}

smithy-trait-codegen/src/it/resources/software/amazon/smithy/traitcodegen/test/uniqueitems/struct-set-trait.smithy

+3-3
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,11 @@ use test.smithy.traitcodegen.uniqueitems#StructureSetTrait
99
a: "first"
1010
b: 1
1111
c: "other"
12-
} {
12+
}
13+
{
1314
a: "second"
1415
b: 2
1516
c: "more"
1617
}
1718
])
18-
structure myStruct {
19-
}
19+
structure myStruct {}

0 commit comments

Comments
 (0)