1
- using System . Collections . Generic ;
1
+ using System ;
2
+ using System . Collections . Generic ;
2
3
using System . Text ;
3
4
using Adyen . ApiSerialization ;
4
5
using Adyen . Model . Checkout ;
5
6
using Adyen . Model . TerminalApi ;
7
+ using Adyen . Model . TerminalApi . Message ;
6
8
using Adyen . Security ;
7
9
using Microsoft . VisualStudio . TestTools . UnitTesting ;
8
10
using Newtonsoft . Json ;
9
11
using Newtonsoft . Json . Serialization ;
12
+ using PaymentRequest = Adyen . Model . TerminalApi . PaymentRequest ;
10
13
using PaymentResponse = Adyen . Model . TerminalApi . PaymentResponse ;
11
14
12
15
namespace Adyen . Test
@@ -88,10 +91,17 @@ public void CheckoutSessionResponseCheckForIdTest()
88
91
}
89
92
90
93
[ TestMethod ]
91
- public void EnsureSaleToPoiMessageSerializationDoesNotDependOnJsonConvertDefaultSettings ( )
94
+ public void SaleToPoiMessageSerializationTest ( )
92
95
{
93
- var saleToPoiMessage = MockPosApiRequest . CreatePosPaymentRequest ( ) ;
94
- var serializedWithEmptyDefaultSettings = GetSerializedSaleToPoiMessage ( saleToPoiMessage ) ;
96
+ var saleToPoiMessage = PosPaymentRequest ;
97
+ var serialized = SerializeSaleToPoiMessage ( saleToPoiMessage ) ;
98
+ Assert . AreEqual ( serialized , ExpectedSaleToPoiMessageJson ) ;
99
+ }
100
+
101
+ [ TestMethod ]
102
+ public void SaleToPoiMessageWithUpdatedJsonConvertDefaultSettingsSerializationTest ( )
103
+ {
104
+ var saleToPoiMessage = PosPaymentRequest ;
95
105
96
106
JsonConvert . DefaultSettings = ( ) => new JsonSerializerSettings
97
107
{
@@ -103,9 +113,9 @@ public void EnsureSaleToPoiMessageSerializationDoesNotDependOnJsonConvertDefault
103
113
104
114
try
105
115
{
106
- var serializedWithUpdatedDefaultSettings = GetSerializedSaleToPoiMessage ( saleToPoiMessage ) ;
116
+ var serialized = SerializeSaleToPoiMessage ( saleToPoiMessage ) ;
107
117
108
- Assert . AreEqual ( serializedWithEmptyDefaultSettings , serializedWithUpdatedDefaultSettings ) ;
118
+ Assert . AreEqual ( serialized , ExpectedSaleToPoiMessageJson ) ;
109
119
}
110
120
finally
111
121
{
@@ -114,10 +124,17 @@ public void EnsureSaleToPoiMessageSerializationDoesNotDependOnJsonConvertDefault
114
124
}
115
125
116
126
[ TestMethod ]
117
- public void EnsureSaleToPoiMessageSecuredSerializationDoesNotDependOnJsonConvertDefaultSettings ( )
127
+ public void SaleToPoiMessageSecuredSerializationTest ( )
118
128
{
119
- var saleToPoiMessage = MockPosApiRequest . CreatePosPaymentRequest ( ) ;
120
- var serializedWithEmptyDefaultSettings = GetSerializedSaleToPoiMessageSecured ( saleToPoiMessage ) ;
129
+ var saleToPoiMessage = PosPaymentRequest ;
130
+ var serialized = SerializeSaleToPoiMessageSecured ( saleToPoiMessage ) ;
131
+ Assert . AreEqual ( serialized , ExpectedSaleToPoiMessageSecuredJson ) ;
132
+ }
133
+
134
+ [ TestMethod ]
135
+ public void SaleToPoiMessageSecuredWithUpdatedJsonConvertDefaultSettingsSerializationTest ( )
136
+ {
137
+ var saleToPoiMessage = PosPaymentRequest ;
121
138
122
139
JsonConvert . DefaultSettings = ( ) => new JsonSerializerSettings
123
140
{
@@ -129,9 +146,9 @@ public void EnsureSaleToPoiMessageSecuredSerializationDoesNotDependOnJsonConvert
129
146
130
147
try
131
148
{
132
- var serializedWithUpdatedDefaultSettings = GetSerializedSaleToPoiMessageSecured ( saleToPoiMessage ) ;
149
+ var serialized = SerializeSaleToPoiMessageSecured ( saleToPoiMessage ) ;
133
150
134
- Assert . AreEqual ( serializedWithEmptyDefaultSettings , serializedWithUpdatedDefaultSettings ) ;
151
+ Assert . AreEqual ( serialized , ExpectedSaleToPoiMessageSecuredJson ) ;
135
152
}
136
153
finally
137
154
{
@@ -144,13 +161,14 @@ private static string GetSaleToPoiMessage(string online)
144
161
return "{\" SaleToPOIResponse\" : {\" PaymentResponse\" : {\" POIData\" : {},\" PaymentResult\" : {\" AuthenticationMethod\" : [\" " + online + "\" ],\" PaymentAcquirerData\" : {\" AcquirerPOIID\" : \" MX925-260390740\" ,\" MerchantID\" : \" PME_POS\" },\" PaymentType\" : \" Normal\" },\" Response\" : {\" Result\" : \" Success\" }},\" MessageHeader\" : {\" ProtocolVersion\" : \" 3.0\" ,\" SaleID\" : \" Appie\" ,\" MessageClass\" : \" Service\" ,\" MessageCategory\" : \" Payment\" ,\" ServiceID\" : \" 20095135\" ,\" POIID\" : \" MX925-260390740\" ,\" MessageType\" : \" Response\" }}}" ;
145
162
}
146
163
147
- private static string GetSerializedSaleToPoiMessage ( SaleToPOIMessage saleToPoiMessage )
164
+ private static string SerializeSaleToPoiMessage ( SaleToPOIMessage saleToPoiMessage )
148
165
{
149
166
var saleToPoiMessageSerializer = new SaleToPoiMessageSerializer ( ) ;
150
167
return saleToPoiMessageSerializer . Serialize ( saleToPoiMessage ) ;
151
168
}
152
169
153
- private static string GetSerializedSaleToPoiMessageSecured ( SaleToPOIMessage saleToPoiMessage )
170
+
171
+ private static string SerializeSaleToPoiMessageSecured ( SaleToPOIMessage saleToPoiMessage )
154
172
{
155
173
var saleToPoiMessageSerializer = new SaleToPoiMessageSerializer ( ) ;
156
174
var serializedSaleToPoiMessage = saleToPoiMessageSerializer . Serialize ( saleToPoiMessage ) ;
@@ -173,5 +191,49 @@ private static string GetSerializedSaleToPoiMessageSecured(SaleToPOIMessage sale
173
191
174
192
return saleToPoiMessageSerializer . Serialize ( saleToPoiMessageSecured ) ;
175
193
}
194
+
195
+ private static SaleToPOIRequest PosPaymentRequest =>
196
+ new SaleToPOIRequest
197
+ {
198
+ MessageHeader = new MessageHeader
199
+ {
200
+ MessageType = MessageType . Request ,
201
+ MessageClass = MessageClassType . Service ,
202
+ MessageCategory = MessageCategoryType . Payment ,
203
+ SaleID = "POSSystemID12345" ,
204
+ POIID = "MX915-284251016" ,
205
+ ServiceID = "12345678"
206
+ } ,
207
+ MessagePayload = new PaymentRequest
208
+ {
209
+ SaleData = new SaleData
210
+ {
211
+ SaleTransactionID = new TransactionIdentification
212
+ {
213
+ TransactionID = "PosAuth" ,
214
+ TimeStamp = new DateTime ( 2025 , 1 , 1 )
215
+ } ,
216
+ TokenRequestedType = TokenRequestedType . Customer ,
217
+ } ,
218
+ PaymentTransaction = new PaymentTransaction
219
+ {
220
+ AmountsReq = new AmountsReq
221
+ {
222
+ Currency = "EUR" ,
223
+ RequestedAmount = 10100
224
+ }
225
+ } ,
226
+ PaymentData = new PaymentData
227
+ {
228
+ PaymentType = PaymentType . Normal
229
+ }
230
+ }
231
+ } ;
232
+
233
+ private static string ExpectedSaleToPoiMessageJson =>
234
+ "{\" SaleToPOIRequest\" :{\" MessageHeader\" :{\" MessageClass\" :\" Service\" ,\" MessageCategory\" :\" Payment\" ,\" MessageType\" :\" Request\" ,\" ServiceID\" :\" 12345678\" ,\" SaleID\" :\" POSSystemID12345\" ,\" POIID\" :\" MX915-284251016\" ,\" ProtocolVersion\" :\" 3.0\" },\" PaymentRequest\" :{\" SaleData\" :{\" SaleTransactionID\" :{\" TransactionID\" :\" PosAuth\" ,\" TimeStamp\" :\" 2025-01-01T00:00:00\" },\" SaleToAcquirerData\" :\" eyJhcHBsaWNhdGlvbkluZm8iOnsiYWR5ZW5MaWJyYXJ5Ijp7Im5hbWUiOiJhZHllbi1kb3RuZXQtYXBpLWxpYnJhcnkiLCJ2ZXJzaW9uIjoiMjYuMC4wIn19fQ==\" ,\" TokenRequestedType\" :\" Customer\" },\" PaymentTransaction\" :{\" AmountsReq\" :{\" Currency\" :\" EUR\" ,\" RequestedAmount\" :10100.0}},\" PaymentData\" :{\" PaymentType\" :\" Normal\" }}}}" ;
235
+
236
+ private static string ExpectedSaleToPoiMessageSecuredJson =>
237
+ "{\" SaleToPOIRequest\" :{\" MessageHeader\" :{\" MessageClass\" :\" Service\" ,\" MessageCategory\" :\" Payment\" ,\" MessageType\" :\" Request\" ,\" ServiceID\" :\" 12345678\" ,\" SaleID\" :\" POSSystemID12345\" ,\" POIID\" :\" MX915-284251016\" ,\" ProtocolVersion\" :\" 3.0\" },\" NexoBlob\" :null,\" SecurityTrailer\" :{\" AdyenCryptoVersion\" :1,\" KeyIdentifier\" :\" CryptoKeyIdentifier12345\" ,\" KeyVersion\" :0,\" Hmac\" :\" 0lPogF5Mg97Nty9ZUuAnb3v8pvZTZvwouxdMp0HV+yQ=\" }}}" ;
176
238
}
177
239
}
0 commit comments