@@ -47,6 +47,71 @@ public async Task SafaricomPinlessProxy_ProcessSaleMessage_TopupSuccessful_SaleM
4747 operatorResponse . ResponseMessage . ShouldBe ( "Topup Successful" ) ;
4848 }
4949
50+ [ Theory ]
51+ [ InlineData ( "amount" ) ]
52+ [ InlineData ( "Amount" ) ]
53+ [ InlineData ( "AMOUNT" ) ]
54+ public async Task SafaricomPinlessProxy_ProcessSaleMessage_MetadataCasingTests_Amount_TopupSuccessful_SaleMessageIsProcessed ( String amountFieldName )
55+ {
56+ HttpResponseMessage responseMessage = new HttpResponseMessage
57+ {
58+ StatusCode = HttpStatusCode . OK ,
59+ Content = new StringContent ( TestData . SuccessfulSafaricomTopup )
60+ } ;
61+
62+ SafaricomConfiguration safaricomConfiguration = TestData . SafaricomConfiguration ;
63+ HttpClient httpClient = SetupMockHttpClient ( responseMessage ) ;
64+
65+ IOperatorProxy safaricomPinlessproxy = new SafaricomPinlessProxy ( safaricomConfiguration , httpClient ) ;
66+
67+ OperatorResponse operatorResponse = await safaricomPinlessproxy . ProcessSaleMessage ( TestData . TokenResponse ( ) . AccessToken ,
68+ TestData . TransactionId ,
69+ TestData . OperatorIdentifier1 ,
70+ TestData . Merchant ,
71+ TestData . TransactionDateTime ,
72+ TestData . TransactionReference ,
73+ TestData . AdditionalTransactionMetaData ( amountName : amountFieldName ) ,
74+ CancellationToken . None ) ;
75+
76+ operatorResponse . ShouldNotBeNull ( ) ;
77+ operatorResponse . IsSuccessful . ShouldBeTrue ( ) ;
78+ operatorResponse . ResponseCode . ShouldBe ( "200" ) ;
79+ operatorResponse . ResponseMessage . ShouldBe ( "Topup Successful" ) ;
80+ }
81+
82+ [ Theory ]
83+ [ InlineData ( "customeraccountnumber" ) ]
84+ [ InlineData ( "customerAccountNumber" ) ]
85+ [ InlineData ( "CustomerAccountNumber" ) ]
86+ [ InlineData ( "CUSTOMERACCOUNTNUMBER" ) ]
87+ public async Task SafaricomPinlessProxy_ProcessSaleMessage_MetadataCasingTests_CustomerAccountNumber_TopupSuccessful_SaleMessageIsProcessed ( String customerAccountNumberFieldName )
88+ {
89+ HttpResponseMessage responseMessage = new HttpResponseMessage
90+ {
91+ StatusCode = HttpStatusCode . OK ,
92+ Content = new StringContent ( TestData . SuccessfulSafaricomTopup )
93+ } ;
94+
95+ SafaricomConfiguration safaricomConfiguration = TestData . SafaricomConfiguration ;
96+ HttpClient httpClient = SetupMockHttpClient ( responseMessage ) ;
97+
98+ IOperatorProxy safaricomPinlessproxy = new SafaricomPinlessProxy ( safaricomConfiguration , httpClient ) ;
99+
100+ OperatorResponse operatorResponse = await safaricomPinlessproxy . ProcessSaleMessage ( TestData . TokenResponse ( ) . AccessToken ,
101+ TestData . TransactionId ,
102+ TestData . OperatorIdentifier1 ,
103+ TestData . Merchant ,
104+ TestData . TransactionDateTime ,
105+ TestData . TransactionReference ,
106+ TestData . AdditionalTransactionMetaData ( customerAccountNumberName : customerAccountNumberFieldName ) ,
107+ CancellationToken . None ) ;
108+
109+ operatorResponse . ShouldNotBeNull ( ) ;
110+ operatorResponse . IsSuccessful . ShouldBeTrue ( ) ;
111+ operatorResponse . ResponseCode . ShouldBe ( "200" ) ;
112+ operatorResponse . ResponseMessage . ShouldBe ( "Topup Successful" ) ;
113+ }
114+
50115 [ Fact ]
51116 public async Task SafaricomPinlessProxy_ProcessSaleMessage_TopupFailed_SaleMessageIsProcessed ( )
52117 {
0 commit comments