@@ -90,6 +90,44 @@ public void SingleBatchForLessOrEqual10Entries()
90
90
} ) ;
91
91
}
92
92
93
+ [ Test ]
94
+ public void SingleBatchEvenWhenSingleMessageNotFittingIntoBatchDueToMessageSize ( )
95
+ {
96
+ var preparedMessages = new [ ]
97
+ {
98
+ new SqsPreparedMessage { MessageId = Guid . NewGuid ( ) . ToString ( ) , Destination = "destination1" , QueueUrl = "https://destination1" , Body = GenerateBody ( 256 ) } ,
99
+ } ;
100
+ PrecalculateSize ( preparedMessages ) ;
101
+
102
+ var batches = SqsPreparedMessageBatcher . Batch ( preparedMessages ) ;
103
+
104
+ Assert . Multiple ( ( ) =>
105
+ {
106
+ Assert . That ( batches , Has . Count . EqualTo ( 1 ) ) ;
107
+ Assert . That ( batches . ElementAt ( 0 ) . BatchRequest . Entries , Has . Count . EqualTo ( 1 ) ) ;
108
+ } ) ;
109
+ }
110
+
111
+ [ Test ]
112
+ public void BatchPerMessageNotFittingIntoBatchDueToMessageSize ( )
113
+ {
114
+ var preparedMessages = new [ ]
115
+ {
116
+ new SqsPreparedMessage { MessageId = Guid . NewGuid ( ) . ToString ( ) , Destination = "destination1" , QueueUrl = "https://destination1" , Body = GenerateBody ( 256 ) } ,
117
+ new SqsPreparedMessage { MessageId = Guid . NewGuid ( ) . ToString ( ) , Destination = "destination1" , QueueUrl = "https://destination1" , Body = GenerateBody ( 256 ) } ,
118
+ } ;
119
+ PrecalculateSize ( preparedMessages ) ;
120
+
121
+ var batches = SqsPreparedMessageBatcher . Batch ( preparedMessages ) ;
122
+
123
+ Assert . Multiple ( ( ) =>
124
+ {
125
+ Assert . That ( batches , Has . Count . EqualTo ( 2 ) ) ;
126
+ Assert . That ( batches . ElementAt ( 0 ) . BatchRequest . Entries , Has . Count . EqualTo ( 1 ) ) ;
127
+ Assert . That ( batches . ElementAt ( 1 ) . BatchRequest . Entries , Has . Count . EqualTo ( 1 ) ) ;
128
+ } ) ;
129
+ }
130
+
93
131
[ Test ]
94
132
public void MultipleBatchesForGreaterThan10Entries ( )
95
133
{
@@ -116,7 +154,7 @@ public void MultipleBatchesForGreaterThan10Entries()
116
154
117
155
Assert . Multiple ( ( ) =>
118
156
{
119
- Assert . That ( batches . Count ( ) , Is . EqualTo ( 2 ) ) ;
157
+ Assert . That ( batches , Has . Count . EqualTo ( 2 ) ) ;
120
158
Assert . That ( batches . ElementAt ( 0 ) . BatchRequest . Entries , Has . Count . EqualTo ( 10 ) ) ;
121
159
Assert . That ( batches . ElementAt ( 1 ) . BatchRequest . Entries , Has . Count . EqualTo ( 3 ) ) ;
122
160
} ) ;
@@ -182,7 +220,7 @@ public void MultipleBatchesForMessagesNotFittingIntoBatchDueToMessageSize()
182
220
183
221
Assert . Multiple ( ( ) =>
184
222
{
185
- Assert . That ( batches . Count ( ) , Is . EqualTo ( 7 ) ) ;
223
+ Assert . That ( batches , Has . Count . EqualTo ( 7 ) ) ;
186
224
Assert . That ( batches . ElementAt ( 0 ) . BatchRequest . Entries , Has . Count . EqualTo ( 1 ) ) ;
187
225
Assert . That ( batches . ElementAt ( 1 ) . BatchRequest . Entries , Has . Count . EqualTo ( 1 ) ) ;
188
226
Assert . That ( batches . ElementAt ( 2 ) . BatchRequest . Entries , Has . Count . EqualTo ( 4 ) ) ;
@@ -253,7 +291,7 @@ public void MultipleBatchesForMessagesWithMessageIdNotFittingIntoBatchDueToMessa
253
291
254
292
Assert . Multiple ( ( ) =>
255
293
{
256
- Assert . That ( batches . Count ( ) , Is . EqualTo ( 7 ) ) ;
294
+ Assert . That ( batches , Has . Count . EqualTo ( 7 ) ) ;
257
295
Assert . That ( batches . ElementAt ( 0 ) . BatchRequest . Entries , Has . Count . EqualTo ( 1 ) ) ;
258
296
Assert . That ( batches . ElementAt ( 1 ) . BatchRequest . Entries , Has . Count . EqualTo ( 1 ) ) ;
259
297
Assert . That ( batches . ElementAt ( 2 ) . BatchRequest . Entries , Has . Count . EqualTo ( 4 ) ) ;
@@ -304,7 +342,7 @@ public void BatchPerDestination_MultipleBatchesForGreaterThan10Entries()
304
342
305
343
Assert . Multiple ( ( ) =>
306
344
{
307
- Assert . That ( batches . Count ( ) , Is . EqualTo ( 4 ) ) ;
345
+ Assert . That ( batches , Has . Count . EqualTo ( 4 ) ) ;
308
346
Assert . That ( batches . ElementAt ( 0 ) . BatchRequest . Entries , Has . Count . EqualTo ( 10 ) ) ;
309
347
Assert . That ( batches . ElementAt ( 1 ) . BatchRequest . Entries , Has . Count . EqualTo ( 3 ) ) ;
310
348
Assert . That ( batches . ElementAt ( 2 ) . BatchRequest . Entries , Has . Count . EqualTo ( 10 ) ) ;
0 commit comments