@@ -54,13 +54,43 @@ void shouldAddExtraHeader() {
54
54
55
55
@ Test
56
56
void shouldAddStringMessageAttributes () {
57
+ SqsHeaderMapper mapper = new SqsHeaderMapper ();
58
+ String headerName = "stringAttribute" ;
59
+ String headerValue = "myString" ;
60
+ Message message = Message .builder ().body ("payload" )
61
+ .messageAttributes (
62
+ Map .of (headerName ,
63
+ MessageAttributeValue .builder ().dataType (MessageAttributeDataTypes .STRING )
64
+ .stringValue (headerValue ).build ()))
65
+ .messageId (UUID .randomUUID ().toString ()).build ();
66
+ MessageHeaders headers = mapper .toHeaders (message );
67
+ assertThat (headers .get (headerName )).isEqualTo (headerValue );
68
+ }
69
+
70
+ @ Test
71
+ void shouldAddStringCustomMessageAttributes () {
72
+ SqsHeaderMapper mapper = new SqsHeaderMapper ();
73
+ String headerName = "stringAttribute" ;
74
+ String headerValue = "myString" ;
75
+ Message message = Message .builder ().body ("payload" )
76
+ .messageAttributes (
77
+ Map .of (headerName ,
78
+ MessageAttributeValue .builder ().dataType (MessageAttributeDataTypes .STRING + ".Array" )
79
+ .stringValue (headerValue ).build ()))
80
+ .messageId (UUID .randomUUID ().toString ()).build ();
81
+ MessageHeaders headers = mapper .toHeaders (message );
82
+ assertThat (headers .get (headerName )).isEqualTo (headerValue );
83
+ }
84
+
85
+ @ Test
86
+ void shouldDefaultToStringIfDataTypeUnknownMessageAttributes () {
57
87
SqsHeaderMapper mapper = new SqsHeaderMapper ();
58
88
String headerName = "stringAttribute" ;
59
89
String headerValue = "myString" ;
60
90
Message message = Message .builder ().body ("payload" )
61
91
.messageAttributes (
62
92
Map .of (headerName ,
63
- MessageAttributeValue .builder ().dataType (MessageAttributeDataTypes . STRING )
93
+ MessageAttributeValue .builder ().dataType ("invalid data type" )
64
94
.stringValue (headerValue ).build ()))
65
95
.messageId (UUID .randomUUID ().toString ()).build ();
66
96
MessageHeaders headers = mapper .toHeaders (message );
@@ -69,13 +99,28 @@ void shouldAddStringMessageAttributes() {
69
99
70
100
@ Test
71
101
void shouldAddBinaryMessageAttributes () {
102
+ SqsHeaderMapper mapper = new SqsHeaderMapper ();
103
+ String headerName = "stringAttribute" ;
104
+ SdkBytes headerValue = SdkBytes .fromUtf8String ("myString" );
105
+ Message message = Message .builder ().body ("payload" )
106
+ .messageAttributes (
107
+ Map .of (headerName ,
108
+ MessageAttributeValue .builder ().dataType (MessageAttributeDataTypes .BINARY )
109
+ .binaryValue (headerValue ).build ()))
110
+ .messageId (UUID .randomUUID ().toString ()).build ();
111
+ MessageHeaders headers = mapper .toHeaders (message );
112
+ assertThat (headers .get (headerName )).isEqualTo (headerValue );
113
+ }
114
+
115
+ @ Test
116
+ void shouldAddBinaryCustomMessageAttributes () {
72
117
SqsHeaderMapper mapper = new SqsHeaderMapper ();
73
118
String headerName = "stringAttribute" ;
74
119
SdkBytes headerValue = SdkBytes .fromUtf8String ("myString" );
75
120
Message message = Message .builder ().body ("payload" )
76
121
.messageAttributes (
77
122
Map .of (headerName ,
78
- MessageAttributeValue .builder ().dataType (MessageAttributeDataTypes .BINARY )
123
+ MessageAttributeValue .builder ().dataType (MessageAttributeDataTypes .BINARY + ".protobuf" )
79
124
.binaryValue (headerValue ).build ()))
80
125
.messageId (UUID .randomUUID ().toString ()).build ();
81
126
MessageHeaders headers = mapper .toHeaders (message );
0 commit comments