diff --git a/Directory.Packages.props b/Directory.Packages.props
index da2010d..4487f04 100644
--- a/Directory.Packages.props
+++ b/Directory.Packages.props
@@ -5,9 +5,9 @@
-
+
-
+
@@ -15,33 +15,33 @@
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
-
+
-
-
+
+
-
-
-
-
-
+
+
+
+
+
@@ -49,10 +49,10 @@
-
-
-
+
+
+
-
+
\ No newline at end of file
diff --git a/TransactionProcessorACL.IntegrationTests/SaleTransaction/SalesTransaction.feature.cs b/TransactionProcessorACL.IntegrationTests/SaleTransaction/SalesTransaction.feature.cs
index db16210..a668b1a 100644
--- a/TransactionProcessorACL.IntegrationTests/SaleTransaction/SalesTransaction.feature.cs
+++ b/TransactionProcessorACL.IntegrationTests/SaleTransaction/SalesTransaction.feature.cs
@@ -111,330 +111,330 @@ public void ScenarioInitialize(global::Reqnroll.ScenarioInfo scenarioInfo, globa
{
#line 4
#line hidden
- global::Reqnroll.Table table1 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table93 = new global::Reqnroll.Table(new string[] {
"Role Name"});
- table1.AddRow(new string[] {
+ table93.AddRow(new string[] {
"Merchant"});
#line 6
- await testRunner.GivenAsync("the following security roles exist", ((string)(null)), table1, "Given ");
+ await testRunner.GivenAsync("the following security roles exist", ((string)(null)), table93, "Given ");
#line hidden
- global::Reqnroll.Table table2 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table94 = new global::Reqnroll.Table(new string[] {
"Name",
"DisplayName",
"Description"});
- table2.AddRow(new string[] {
+ table94.AddRow(new string[] {
"transactionProcessor",
"Transaction Processor REST Scope",
"A scope for Transaction Processor REST"});
- table2.AddRow(new string[] {
+ table94.AddRow(new string[] {
"transactionProcessorACL",
"Transaction Processor ACL REST Scope",
"A scope for Transaction Processor ACL REST"});
#line 10
- await testRunner.GivenAsync("I create the following api scopes", ((string)(null)), table2, "Given ");
+ await testRunner.GivenAsync("I create the following api scopes", ((string)(null)), table94, "Given ");
#line hidden
- global::Reqnroll.Table table3 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table95 = new global::Reqnroll.Table(new string[] {
"Name",
"DisplayName",
"Secret",
"Scopes",
"UserClaims"});
- table3.AddRow(new string[] {
+ table95.AddRow(new string[] {
"transactionProcessor",
"Transaction Processor REST",
"Secret1",
"transactionProcessor",
"merchantId, estateId, role"});
- table3.AddRow(new string[] {
+ table95.AddRow(new string[] {
"transactionProcessorACL",
"Transaction Processor ACL REST",
"Secret1",
"transactionProcessorACL",
"merchantId, estateId, role"});
#line 15
- await testRunner.GivenAsync("the following api resources exist", ((string)(null)), table3, "Given ");
+ await testRunner.GivenAsync("the following api resources exist", ((string)(null)), table95, "Given ");
#line hidden
- global::Reqnroll.Table table4 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table96 = new global::Reqnroll.Table(new string[] {
"ClientId",
"ClientName",
"Secret",
"Scopes",
"GrantTypes"});
- table4.AddRow(new string[] {
+ table96.AddRow(new string[] {
"serviceClient",
"Service Client",
"Secret1",
"transactionProcessor,transactionProcessorACL",
"client_credentials"});
- table4.AddRow(new string[] {
+ table96.AddRow(new string[] {
"merchantClient",
"Merchant Client",
"Secret1",
"transactionProcessorACL",
"password"});
#line 20
- await testRunner.GivenAsync("the following clients exist", ((string)(null)), table4, "Given ");
+ await testRunner.GivenAsync("the following clients exist", ((string)(null)), table96, "Given ");
#line hidden
- global::Reqnroll.Table table5 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table97 = new global::Reqnroll.Table(new string[] {
"ClientId"});
- table5.AddRow(new string[] {
+ table97.AddRow(new string[] {
"serviceClient"});
#line 25
await testRunner.GivenAsync("I have a token to access the estate management and transaction processor acl reso" +
- "urces", ((string)(null)), table5, "Given ");
+ "urces", ((string)(null)), table97, "Given ");
#line hidden
- global::Reqnroll.Table table6 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table98 = new global::Reqnroll.Table(new string[] {
"AccountNumber",
"AccountName",
"DueDate",
"Amount"});
- table6.AddRow(new string[] {
+ table98.AddRow(new string[] {
"12345678",
"Test Account 1",
"Today",
"100.00"});
#line 29
- await testRunner.GivenAsync("the following bills are available at the PataPawa PostPaid Host", ((string)(null)), table6, "Given ");
+ await testRunner.GivenAsync("the following bills are available at the PataPawa PostPaid Host", ((string)(null)), table98, "Given ");
#line hidden
- global::Reqnroll.Table table7 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table99 = new global::Reqnroll.Table(new string[] {
"Username",
"Password"});
- table7.AddRow(new string[] {
+ table99.AddRow(new string[] {
"operatora",
"1234567898"});
#line 33
- await testRunner.GivenAsync("the following users are available at the PataPawa PrePay Host", ((string)(null)), table7, "Given ");
+ await testRunner.GivenAsync("the following users are available at the PataPawa PrePay Host", ((string)(null)), table99, "Given ");
#line hidden
- global::Reqnroll.Table table8 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table100 = new global::Reqnroll.Table(new string[] {
"MeterNumber",
"CustomerName"});
- table8.AddRow(new string[] {
+ table100.AddRow(new string[] {
"00000001",
"Customer 1"});
- table8.AddRow(new string[] {
+ table100.AddRow(new string[] {
"00000002",
"Customer 2"});
- table8.AddRow(new string[] {
+ table100.AddRow(new string[] {
"00000003",
"Customer 3"});
#line 37
- await testRunner.GivenAsync("the following meters are available at the PataPawa PrePay Host", ((string)(null)), table8, "Given ");
+ await testRunner.GivenAsync("the following meters are available at the PataPawa PrePay Host", ((string)(null)), table100, "Given ");
#line hidden
#line 43
await testRunner.GivenAsync("I initialise the Agency Banking Host", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given ");
#line hidden
- global::Reqnroll.Table table9 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table101 = new global::Reqnroll.Table(new string[] {
"Type",
"Code",
"Name",
"Currency"});
- table9.AddRow(new string[] {
+ table101.AddRow(new string[] {
"LIABILITY",
"200100",
"Agent Float GL",
"KES"});
- table9.AddRow(new string[] {
+ table101.AddRow(new string[] {
"LIABILITY",
"200200",
"Settlement Suspense GL",
"KES"});
- table9.AddRow(new string[] {
+ table101.AddRow(new string[] {
"EXPENSE",
"400100",
"Agent Commission GL",
"KES"});
- table9.AddRow(new string[] {
+ table101.AddRow(new string[] {
"LIABILITY",
"200300",
"Reversal GL",
"KES"});
- table9.AddRow(new string[] {
+ table101.AddRow(new string[] {
"INCOME",
"400200",
"Fee Income GL",
"KES"});
#line 45
- await testRunner.GivenAsync("I create the following accounts", ((string)(null)), table9, "Given ");
+ await testRunner.GivenAsync("I create the following accounts", ((string)(null)), table101, "Given ");
#line hidden
- global::Reqnroll.Table table10 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table102 = new global::Reqnroll.Table(new string[] {
"AccountNumber",
"BankCode",
"Currency",
"AccountName"});
- table10.AddRow(new string[] {
+ table102.AddRow(new string[] {
"999000001",
"001",
"KES",
"Main Settlement Account"});
#line 53
- await testRunner.GivenAsync("I create the settlement account", ((string)(null)), table10, "Given ");
+ await testRunner.GivenAsync("I create the settlement account", ((string)(null)), table102, "Given ");
#line hidden
- global::Reqnroll.Table table11 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table103 = new global::Reqnroll.Table(new string[] {
"CustomerId",
"FullName",
"PhoneNumber",
"NationalId",
"AccountNumber"});
- table11.AddRow(new string[] {
+ table103.AddRow(new string[] {
"CUST001",
"Test Customer 1",
"0712345678",
"12345678",
"12345678"});
#line 57
- await testRunner.GivenAsync("I create the following customers", ((string)(null)), table11, "Given ");
+ await testRunner.GivenAsync("I create the following customers", ((string)(null)), table103, "Given ");
#line hidden
- global::Reqnroll.Table table12 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table104 = new global::Reqnroll.Table(new string[] {
"EstateName"});
- table12.AddRow(new string[] {
+ table104.AddRow(new string[] {
"Test Estate 1"});
- table12.AddRow(new string[] {
+ table104.AddRow(new string[] {
"Test Estate 2"});
#line 61
- await testRunner.GivenAsync("I have created the following estates", ((string)(null)), table12, "Given ");
+ await testRunner.GivenAsync("I have created the following estates", ((string)(null)), table104, "Given ");
#line hidden
- global::Reqnroll.Table table13 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table105 = new global::Reqnroll.Table(new string[] {
"EstateName",
"OperatorName",
"RequireCustomMerchantNumber",
"RequireCustomTerminalNumber"});
- table13.AddRow(new string[] {
+ table105.AddRow(new string[] {
"Test Estate 1",
"Safaricom",
"True",
"True"});
- table13.AddRow(new string[] {
+ table105.AddRow(new string[] {
"Test Estate 1",
"Voucher",
"True",
"True"});
- table13.AddRow(new string[] {
+ table105.AddRow(new string[] {
"Test Estate 1",
"PataPawa PostPay",
"False",
"False"});
- table13.AddRow(new string[] {
+ table105.AddRow(new string[] {
"Test Estate 1",
"PataPawa PrePay",
"False",
"False"});
- table13.AddRow(new string[] {
+ table105.AddRow(new string[] {
"Test Estate 1",
"AgencyBanking",
"False",
"False"});
- table13.AddRow(new string[] {
+ table105.AddRow(new string[] {
"Test Estate 2",
"Safaricom",
"True",
"True"});
- table13.AddRow(new string[] {
+ table105.AddRow(new string[] {
"Test Estate 2",
"Voucher",
"True",
"True"});
- table13.AddRow(new string[] {
+ table105.AddRow(new string[] {
"Test Estate 2",
"PataPawa PostPay",
"False",
"False"});
- table13.AddRow(new string[] {
+ table105.AddRow(new string[] {
"Test Estate 2",
"PataPawa PrePay",
"False",
"False"});
- table13.AddRow(new string[] {
+ table105.AddRow(new string[] {
"Test Estate 2",
"AgencyBanking",
"False",
"False"});
#line 66
- await testRunner.GivenAsync("I have created the following operators", ((string)(null)), table13, "Given ");
+ await testRunner.GivenAsync("I have created the following operators", ((string)(null)), table105, "Given ");
#line hidden
- global::Reqnroll.Table table14 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table106 = new global::Reqnroll.Table(new string[] {
"EstateName",
"OperatorName"});
- table14.AddRow(new string[] {
+ table106.AddRow(new string[] {
"Test Estate 1",
"Safaricom"});
- table14.AddRow(new string[] {
+ table106.AddRow(new string[] {
"Test Estate 1",
"Voucher"});
- table14.AddRow(new string[] {
+ table106.AddRow(new string[] {
"Test Estate 1",
"PataPawa PostPay"});
- table14.AddRow(new string[] {
+ table106.AddRow(new string[] {
"Test Estate 1",
"PataPawa PrePay"});
- table14.AddRow(new string[] {
+ table106.AddRow(new string[] {
"Test Estate 1",
"AgencyBanking"});
- table14.AddRow(new string[] {
+ table106.AddRow(new string[] {
"Test Estate 2",
"Safaricom"});
- table14.AddRow(new string[] {
+ table106.AddRow(new string[] {
"Test Estate 2",
"Voucher"});
- table14.AddRow(new string[] {
+ table106.AddRow(new string[] {
"Test Estate 2",
"PataPawa PostPay"});
- table14.AddRow(new string[] {
+ table106.AddRow(new string[] {
"Test Estate 2",
"PataPawa PrePay"});
- table14.AddRow(new string[] {
+ table106.AddRow(new string[] {
"Test Estate 2",
"AgencyBanking"});
#line 79
- await testRunner.AndAsync("I have assigned the following operators to the estates", ((string)(null)), table14, "And ");
+ await testRunner.AndAsync("I have assigned the following operators to the estates", ((string)(null)), table106, "And ");
#line hidden
- global::Reqnroll.Table table15 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table107 = new global::Reqnroll.Table(new string[] {
"EstateName",
"OperatorName",
"ContractDescription"});
- table15.AddRow(new string[] {
+ table107.AddRow(new string[] {
"Test Estate 1",
"Safaricom",
"Safaricom Contract"});
- table15.AddRow(new string[] {
+ table107.AddRow(new string[] {
"Test Estate 1",
"Voucher",
"Hospital 1 Contract"});
- table15.AddRow(new string[] {
+ table107.AddRow(new string[] {
"Test Estate 1",
"PataPawa PostPay",
"PataPawa PostPay Contract"});
- table15.AddRow(new string[] {
+ table107.AddRow(new string[] {
"Test Estate 1",
"PataPawa PrePay",
"PataPawa PrePay Contract"});
- table15.AddRow(new string[] {
+ table107.AddRow(new string[] {
"Test Estate 1",
"AgencyBanking",
"AgencyBanking Contract"});
- table15.AddRow(new string[] {
+ table107.AddRow(new string[] {
"Test Estate 2",
"Safaricom",
"Safaricom Contract"});
- table15.AddRow(new string[] {
+ table107.AddRow(new string[] {
"Test Estate 2",
"Voucher",
"Hospital 1 Contract"});
- table15.AddRow(new string[] {
+ table107.AddRow(new string[] {
"Test Estate 2",
"PataPawa PostPay",
"PataPawa PostPay Contract"});
- table15.AddRow(new string[] {
+ table107.AddRow(new string[] {
"Test Estate 2",
"PataPawa PrePay",
"PataPawa PrePay Contract"});
- table15.AddRow(new string[] {
+ table107.AddRow(new string[] {
"Test Estate 2",
"AgencyBanking",
"AgencyBanking Contract"});
#line 92
- await testRunner.GivenAsync("I create a contract with the following values", ((string)(null)), table15, "Given ");
+ await testRunner.GivenAsync("I create a contract with the following values", ((string)(null)), table107, "Given ");
#line hidden
- global::Reqnroll.Table table16 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table108 = new global::Reqnroll.Table(new string[] {
"EstateName",
"OperatorName",
"ContractDescription",
@@ -442,7 +442,7 @@ await testRunner.GivenAsync("I have a token to access the estate management and
"DisplayText",
"Value",
"ProductType"});
- table16.AddRow(new string[] {
+ table108.AddRow(new string[] {
"Test Estate 1",
"Safaricom",
"Safaricom Contract",
@@ -450,7 +450,7 @@ await testRunner.GivenAsync("I have a token to access the estate management and
"Custom",
"",
"MobileTopup"});
- table16.AddRow(new string[] {
+ table108.AddRow(new string[] {
"Test Estate 1",
"Voucher",
"Hospital 1 Contract",
@@ -458,7 +458,7 @@ await testRunner.GivenAsync("I have a token to access the estate management and
"10 KES",
"",
"Voucher"});
- table16.AddRow(new string[] {
+ table108.AddRow(new string[] {
"Test Estate 1",
"PataPawa PostPay",
"PataPawa PostPay Contract",
@@ -466,7 +466,7 @@ await testRunner.GivenAsync("I have a token to access the estate management and
"Bill Pay (Post)",
"",
"BillPayment"});
- table16.AddRow(new string[] {
+ table108.AddRow(new string[] {
"Test Estate 1",
"PataPawa PrePay",
"PataPawa PrePay Contract",
@@ -474,7 +474,7 @@ await testRunner.GivenAsync("I have a token to access the estate management and
"Bill Pay (Pre)",
"",
"BillPayment"});
- table16.AddRow(new string[] {
+ table108.AddRow(new string[] {
"Test Estate 1",
"AgencyBanking",
"AgencyBanking Contract",
@@ -482,7 +482,7 @@ await testRunner.GivenAsync("I have a token to access the estate management and
"Balance Enquiry",
"",
"MobileTopup"});
- table16.AddRow(new string[] {
+ table108.AddRow(new string[] {
"Test Estate 1",
"AgencyBanking",
"AgencyBanking Contract",
@@ -490,7 +490,7 @@ await testRunner.GivenAsync("I have a token to access the estate management and
"Deposit",
"",
"MobileTopup"});
- table16.AddRow(new string[] {
+ table108.AddRow(new string[] {
"Test Estate 1",
"AgencyBanking",
"AgencyBanking Contract",
@@ -498,7 +498,7 @@ await testRunner.GivenAsync("I have a token to access the estate management and
"Withdrawal",
"",
"MobileTopup"});
- table16.AddRow(new string[] {
+ table108.AddRow(new string[] {
"Test Estate 1",
"AgencyBanking",
"AgencyBanking Contract",
@@ -506,7 +506,7 @@ await testRunner.GivenAsync("I have a token to access the estate management and
"Mini Statement",
"",
"MobileTopup"});
- table16.AddRow(new string[] {
+ table108.AddRow(new string[] {
"Test Estate 2",
"Safaricom",
"Safaricom Contract",
@@ -514,7 +514,7 @@ await testRunner.GivenAsync("I have a token to access the estate management and
"Custom",
"",
"MobileTopup"});
- table16.AddRow(new string[] {
+ table108.AddRow(new string[] {
"Test Estate 2",
"Voucher",
"Hospital 1 Contract",
@@ -522,7 +522,7 @@ await testRunner.GivenAsync("I have a token to access the estate management and
"10 KES",
"",
"Voucher"});
- table16.AddRow(new string[] {
+ table108.AddRow(new string[] {
"Test Estate 2",
"PataPawa PostPay",
"PataPawa PostPay Contract",
@@ -530,7 +530,7 @@ await testRunner.GivenAsync("I have a token to access the estate management and
"Bill Pay (Post)",
"",
"BillPayment"});
- table16.AddRow(new string[] {
+ table108.AddRow(new string[] {
"Test Estate 2",
"PataPawa PrePay",
"PataPawa PrePay Contract",
@@ -538,7 +538,7 @@ await testRunner.GivenAsync("I have a token to access the estate management and
"Bill Pay (Pre)",
"",
"BillPayment"});
- table16.AddRow(new string[] {
+ table108.AddRow(new string[] {
"Test Estate 2",
"AgencyBanking",
"AgencyBanking Contract",
@@ -546,7 +546,7 @@ await testRunner.GivenAsync("I have a token to access the estate management and
"Balance Enquiry",
"",
"MobileTopup"});
- table16.AddRow(new string[] {
+ table108.AddRow(new string[] {
"Test Estate 2",
"AgencyBanking",
"AgencyBanking Contract",
@@ -554,7 +554,7 @@ await testRunner.GivenAsync("I have a token to access the estate management and
"Deposit",
"",
"MobileTopup"});
- table16.AddRow(new string[] {
+ table108.AddRow(new string[] {
"Test Estate 2",
"AgencyBanking",
"AgencyBanking Contract",
@@ -562,7 +562,7 @@ await testRunner.GivenAsync("I have a token to access the estate management and
"Withdrawal",
"",
"MobileTopup"});
- table16.AddRow(new string[] {
+ table108.AddRow(new string[] {
"Test Estate 2",
"AgencyBanking",
"AgencyBanking Contract",
@@ -571,9 +571,9 @@ await testRunner.GivenAsync("I have a token to access the estate management and
"",
"MobileTopup"});
#line 105
- await testRunner.WhenAsync("I create the following Products", ((string)(null)), table16, "When ");
+ await testRunner.WhenAsync("I create the following Products", ((string)(null)), table108, "When ");
#line hidden
- global::Reqnroll.Table table17 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table109 = new global::Reqnroll.Table(new string[] {
"EstateName",
"OperatorName",
"ContractDescription",
@@ -581,7 +581,7 @@ await testRunner.GivenAsync("I have a token to access the estate management and
"CalculationType",
"FeeDescription",
"Value"});
- table17.AddRow(new string[] {
+ table109.AddRow(new string[] {
"Test Estate 1",
"Safaricom",
"Safaricom Contract",
@@ -589,7 +589,7 @@ await testRunner.GivenAsync("I have a token to access the estate management and
"Fixed",
"Merchant Commission",
"2.50"});
- table17.AddRow(new string[] {
+ table109.AddRow(new string[] {
"Test Estate 1",
"PataPawa PostPay",
"PataPawa PostPay Contract",
@@ -597,7 +597,7 @@ await testRunner.GivenAsync("I have a token to access the estate management and
"Percentage",
"Merchant Commission",
"0.50"});
- table17.AddRow(new string[] {
+ table109.AddRow(new string[] {
"Test Estate 1",
"PataPawa PrePay",
"PataPawa PrePay Contract",
@@ -605,7 +605,7 @@ await testRunner.GivenAsync("I have a token to access the estate management and
"Percentage",
"Merchant Commission",
"0.50"});
- table17.AddRow(new string[] {
+ table109.AddRow(new string[] {
"Test Estate 2",
"Safaricom",
"Safaricom Contract",
@@ -613,7 +613,7 @@ await testRunner.GivenAsync("I have a token to access the estate management and
"Percentage",
"Merchant Commission",
"0.85"});
- table17.AddRow(new string[] {
+ table109.AddRow(new string[] {
"Test Estate 2",
"PataPawa PostPay",
"PataPawa PostPay Contract",
@@ -621,7 +621,7 @@ await testRunner.GivenAsync("I have a token to access the estate management and
"Percentage",
"Merchant Commission",
"0.50"});
- table17.AddRow(new string[] {
+ table109.AddRow(new string[] {
"Test Estate 2",
"PataPawa PrePay",
"PataPawa PrePay Contract",
@@ -630,9 +630,9 @@ await testRunner.GivenAsync("I have a token to access the estate management and
"Merchant Commission",
"0.50"});
#line 124
- await testRunner.WhenAsync("I add the following Transaction Fees", ((string)(null)), table17, "When ");
+ await testRunner.WhenAsync("I add the following Transaction Fees", ((string)(null)), table109, "When ");
#line hidden
- global::Reqnroll.Table table18 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table110 = new global::Reqnroll.Table(new string[] {
"MerchantName",
"AddressLine1",
"Town",
@@ -643,7 +643,7 @@ await testRunner.GivenAsync("I have a token to access the estate management and
"EmailAddress",
"EstateName",
"EnableAgencyBanking"});
- table18.AddRow(new string[] {
+ table110.AddRow(new string[] {
"Test Merchant 1",
"Address Line 1",
"TestTown",
@@ -654,7 +654,7 @@ await testRunner.GivenAsync("I have a token to access the estate management and
"testcontact1@merchant1.co.uk",
"Test Estate 1",
"True"});
- table18.AddRow(new string[] {
+ table110.AddRow(new string[] {
"Test Merchant 2",
"Address Line 1",
"TestTown",
@@ -665,7 +665,7 @@ await testRunner.GivenAsync("I have a token to access the estate management and
"testcontact2@merchant2.co.uk",
"Test Estate 1",
"False"});
- table18.AddRow(new string[] {
+ table110.AddRow(new string[] {
"Test Merchant 3",
"Address Line 1",
"TestTown",
@@ -677,242 +677,242 @@ await testRunner.GivenAsync("I have a token to access the estate management and
"Test Estate 2",
"False"});
#line 133
- await testRunner.GivenAsync("I create the following merchants", ((string)(null)), table18, "Given ");
+ await testRunner.GivenAsync("I create the following merchants", ((string)(null)), table110, "Given ");
#line hidden
- global::Reqnroll.Table table19 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table111 = new global::Reqnroll.Table(new string[] {
"OperatorName",
"MerchantName",
"MerchantNumber",
"TerminalNumber",
"EstateName"});
- table19.AddRow(new string[] {
+ table111.AddRow(new string[] {
"Safaricom",
"Test Merchant 1",
"00000001",
"10000001",
"Test Estate 1"});
- table19.AddRow(new string[] {
+ table111.AddRow(new string[] {
"Voucher",
"Test Merchant 1",
"00000001",
"10000001",
"Test Estate 1"});
- table19.AddRow(new string[] {
+ table111.AddRow(new string[] {
"PataPawa PostPay",
"Test Merchant 1",
"00000001",
"10000001",
"Test Estate 1"});
- table19.AddRow(new string[] {
+ table111.AddRow(new string[] {
"PataPawa PrePay",
"Test Merchant 1",
"00000001",
"10000001",
"Test Estate 1"});
- table19.AddRow(new string[] {
+ table111.AddRow(new string[] {
"AgencyBanking",
"Test Merchant 1",
"00000001",
"10000001",
"Test Estate 1"});
- table19.AddRow(new string[] {
+ table111.AddRow(new string[] {
"Safaricom",
"Test Merchant 2",
"00000002",
"10000002",
"Test Estate 1"});
- table19.AddRow(new string[] {
+ table111.AddRow(new string[] {
"Voucher",
"Test Merchant 2",
"00000002",
"10000002",
"Test Estate 1"});
- table19.AddRow(new string[] {
+ table111.AddRow(new string[] {
"PataPawa PostPay",
"Test Merchant 2",
"00000001",
"10000001",
"Test Estate 1"});
- table19.AddRow(new string[] {
+ table111.AddRow(new string[] {
"PataPawa PrePay",
"Test Merchant 2",
"00000001",
"10000001",
"Test Estate 1"});
- table19.AddRow(new string[] {
+ table111.AddRow(new string[] {
"AgencyBanking",
"Test Merchant 2",
"00000001",
"10000001",
"Test Estate 1"});
- table19.AddRow(new string[] {
+ table111.AddRow(new string[] {
"Safaricom",
"Test Merchant 3",
"00000003",
"10000003",
"Test Estate 2"});
- table19.AddRow(new string[] {
+ table111.AddRow(new string[] {
"Voucher",
"Test Merchant 3",
"00000003",
"10000003",
"Test Estate 2"});
- table19.AddRow(new string[] {
+ table111.AddRow(new string[] {
"PataPawa PostPay",
"Test Merchant 3",
"00000001",
"10000001",
"Test Estate 2"});
- table19.AddRow(new string[] {
+ table111.AddRow(new string[] {
"PataPawa PrePay",
"Test Merchant 3",
"00000001",
"10000001",
"Test Estate 2"});
- table19.AddRow(new string[] {
+ table111.AddRow(new string[] {
"AgencyBanking",
"Test Merchant 3",
"00000001",
"10000001",
"Test Estate 2"});
#line 139
- await testRunner.GivenAsync("I have assigned the following operator to the merchants", ((string)(null)), table19, "Given ");
+ await testRunner.GivenAsync("I have assigned the following operator to the merchants", ((string)(null)), table111, "Given ");
#line hidden
- global::Reqnroll.Table table20 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table112 = new global::Reqnroll.Table(new string[] {
"DeviceIdentifier",
"MerchantName",
"EstateName"});
- table20.AddRow(new string[] {
+ table112.AddRow(new string[] {
"123456780",
"Test Merchant 1",
"Test Estate 1"});
- table20.AddRow(new string[] {
+ table112.AddRow(new string[] {
"123456781",
"Test Merchant 2",
"Test Estate 1"});
- table20.AddRow(new string[] {
+ table112.AddRow(new string[] {
"123456782",
"Test Merchant 3",
"Test Estate 2"});
#line 157
- await testRunner.GivenAsync("I have assigned the following devices to the merchants", ((string)(null)), table20, "Given ");
+ await testRunner.GivenAsync("I have assigned the following devices to the merchants", ((string)(null)), table112, "Given ");
#line hidden
- global::Reqnroll.Table table21 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table113 = new global::Reqnroll.Table(new string[] {
"EstateName",
"MerchantName",
"ContractDescription"});
- table21.AddRow(new string[] {
+ table113.AddRow(new string[] {
"Test Estate 1",
"Test Merchant 1",
"Safaricom Contract"});
- table21.AddRow(new string[] {
+ table113.AddRow(new string[] {
"Test Estate 1",
"Test Merchant 1",
"Hospital 1 Contract"});
- table21.AddRow(new string[] {
+ table113.AddRow(new string[] {
"Test Estate 1",
"Test Merchant 1",
"PataPawa PostPay Contract"});
- table21.AddRow(new string[] {
+ table113.AddRow(new string[] {
"Test Estate 1",
"Test Merchant 1",
"PataPawa PrePay Contract"});
- table21.AddRow(new string[] {
+ table113.AddRow(new string[] {
"Test Estate 1",
"Test Merchant 1",
"AgencyBanking Contract"});
- table21.AddRow(new string[] {
+ table113.AddRow(new string[] {
"Test Estate 1",
"Test Merchant 2",
"Safaricom Contract"});
- table21.AddRow(new string[] {
+ table113.AddRow(new string[] {
"Test Estate 1",
"Test Merchant 2",
"Hospital 1 Contract"});
- table21.AddRow(new string[] {
+ table113.AddRow(new string[] {
"Test Estate 1",
"Test Merchant 2",
"PataPawa PostPay Contract"});
- table21.AddRow(new string[] {
+ table113.AddRow(new string[] {
"Test Estate 1",
"Test Merchant 2",
"PataPawa PrePay Contract"});
- table21.AddRow(new string[] {
+ table113.AddRow(new string[] {
"Test Estate 1",
"Test Merchant 2",
"AgencyBanking Contract"});
- table21.AddRow(new string[] {
+ table113.AddRow(new string[] {
"Test Estate 2",
"Test Merchant 3",
"Safaricom Contract"});
- table21.AddRow(new string[] {
+ table113.AddRow(new string[] {
"Test Estate 2",
"Test Merchant 3",
"Hospital 1 Contract"});
- table21.AddRow(new string[] {
+ table113.AddRow(new string[] {
"Test Estate 2",
"Test Merchant 3",
"PataPawa PostPay Contract"});
- table21.AddRow(new string[] {
+ table113.AddRow(new string[] {
"Test Estate 2",
"Test Merchant 3",
"PataPawa PrePay Contract"});
- table21.AddRow(new string[] {
+ table113.AddRow(new string[] {
"Test Estate 2",
"Test Merchant 3",
"AgencyBanking Contract"});
#line 163
- await testRunner.WhenAsync("I add the following contracts to the following merchants", ((string)(null)), table21, "When ");
+ await testRunner.WhenAsync("I add the following contracts to the following merchants", ((string)(null)), table113, "When ");
#line hidden
- global::Reqnroll.Table table22 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table114 = new global::Reqnroll.Table(new string[] {
"Reference",
"Amount",
"DateTime",
"MerchantName",
"EstateName"});
- table22.AddRow(new string[] {
+ table114.AddRow(new string[] {
"Deposit1",
"365.00",
"Today",
"Test Merchant 1",
"Test Estate 1"});
- table22.AddRow(new string[] {
+ table114.AddRow(new string[] {
"Deposit1",
"110.00",
"Today",
"Test Merchant 2",
"Test Estate 1"});
- table22.AddRow(new string[] {
+ table114.AddRow(new string[] {
"Deposit1",
"110.00",
"Today",
"Test Merchant 3",
"Test Estate 2"});
#line 181
- await testRunner.GivenAsync("I make the following manual merchant deposits", ((string)(null)), table22, "Given ");
+ await testRunner.GivenAsync("I make the following manual merchant deposits", ((string)(null)), table114, "Given ");
#line hidden
- global::Reqnroll.Table table23 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table115 = new global::Reqnroll.Table(new string[] {
"EmailAddress",
"Password",
"GivenName",
"FamilyName",
"EstateName",
"MerchantName"});
- table23.AddRow(new string[] {
+ table115.AddRow(new string[] {
"merchantuser@testmerchant1.co.uk",
"123456",
"TestMerchant",
"User1",
"Test Estate 1",
"Test Merchant 1"});
- table23.AddRow(new string[] {
+ table115.AddRow(new string[] {
"merchantuser@testmerchant2.co.uk",
"123456",
"TestMerchant",
"User2",
"Test Estate 1",
"Test Merchant 2"});
- table23.AddRow(new string[] {
+ table115.AddRow(new string[] {
"merchantuser@testmerchant3.co.uk",
"123456",
"TestMerchant",
@@ -920,7 +920,7 @@ await testRunner.GivenAsync("I have a token to access the estate management and
"Test Estate 2",
"Test Merchant 3"});
#line 187
- await testRunner.GivenAsync("I have created the following security users", ((string)(null)), table23, "Given ");
+ await testRunner.GivenAsync("I have created the following security users", ((string)(null)), table115, "Given ");
#line hidden
}
@@ -959,7 +959,7 @@ await testRunner.GivenAsync("I have a token to access the estate management and
"erchant \"Test Merchant 1\" for Estate \"Test Estate 1\" with client \"merchantClient" +
"\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given ");
#line hidden
- global::Reqnroll.Table table24 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table116 = new global::Reqnroll.Table(new string[] {
"DateTime",
"TransactionNumber",
"TransactionType",
@@ -978,7 +978,7 @@ await testRunner.GivenAsync("I have a token to access the estate management and
"AccountNumber",
"CustomerName",
"MeterNumber"});
- table24.AddRow(new string[] {
+ table116.AddRow(new string[] {
"Today",
"1",
"Sale",
@@ -997,7 +997,7 @@ await testRunner.GivenAsync("I have a token to access the estate management and
"",
"",
""});
- table24.AddRow(new string[] {
+ table116.AddRow(new string[] {
"Today",
"4",
"Sale",
@@ -1016,7 +1016,7 @@ await testRunner.GivenAsync("I have a token to access the estate management and
"",
"",
""});
- table24.AddRow(new string[] {
+ table116.AddRow(new string[] {
"Today",
"5",
"Sale",
@@ -1035,7 +1035,7 @@ await testRunner.GivenAsync("I have a token to access the estate management and
"",
"",
""});
- table24.AddRow(new string[] {
+ table116.AddRow(new string[] {
"Today",
"8",
"Sale",
@@ -1054,7 +1054,7 @@ await testRunner.GivenAsync("I have a token to access the estate management and
"12345678",
"",
""});
- table24.AddRow(new string[] {
+ table116.AddRow(new string[] {
"Today",
"9",
"Sale",
@@ -1073,7 +1073,7 @@ await testRunner.GivenAsync("I have a token to access the estate management and
"12345678",
"Mr Test Customer",
""});
- table24.AddRow(new string[] {
+ table116.AddRow(new string[] {
"Today",
"10",
"Sale",
@@ -1092,7 +1092,7 @@ await testRunner.GivenAsync("I have a token to access the estate management and
"",
"",
"00000001"});
- table24.AddRow(new string[] {
+ table116.AddRow(new string[] {
"Today",
"11",
"Sale",
@@ -1111,7 +1111,7 @@ await testRunner.GivenAsync("I have a token to access the estate management and
"00000001",
"Customer 1",
"00000001"});
- table24.AddRow(new string[] {
+ table116.AddRow(new string[] {
"Today",
"12",
"Sale",
@@ -1130,7 +1130,7 @@ await testRunner.GivenAsync("I have a token to access the estate management and
"12345678",
"",
""});
- table24.AddRow(new string[] {
+ table116.AddRow(new string[] {
"Today",
"13",
"Sale",
@@ -1149,7 +1149,7 @@ await testRunner.GivenAsync("I have a token to access the estate management and
"12345678",
"",
""});
- table24.AddRow(new string[] {
+ table116.AddRow(new string[] {
"Today",
"14",
"Sale",
@@ -1168,7 +1168,7 @@ await testRunner.GivenAsync("I have a token to access the estate management and
"12345678",
"",
""});
- table24.AddRow(new string[] {
+ table116.AddRow(new string[] {
"Today",
"15",
"Sale",
@@ -1188,14 +1188,14 @@ await testRunner.GivenAsync("I have a token to access the estate management and
"",
""});
#line 196
- await testRunner.WhenAsync("I perform the following transactions", ((string)(null)), table24, "When ");
+ await testRunner.WhenAsync("I perform the following transactions", ((string)(null)), table116, "When ");
#line hidden
#line 211
await testRunner.GivenAsync("I am logged in as \"merchantuser@testmerchant2.co.uk\" with password \"123456\" for M" +
"erchant \"Test Merchant 2\" for Estate \"Test Estate 1\" with client \"merchantClient" +
"\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given ");
#line hidden
- global::Reqnroll.Table table25 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table117 = new global::Reqnroll.Table(new string[] {
"DateTime",
"TransactionNumber",
"TransactionType",
@@ -1210,7 +1210,7 @@ await testRunner.GivenAsync("I have a token to access the estate management and
"ProductName",
"RecipientEmail",
"RecipientMobile"});
- table25.AddRow(new string[] {
+ table117.AddRow(new string[] {
"Today",
"2",
"Sale",
@@ -1225,7 +1225,7 @@ await testRunner.GivenAsync("I have a token to access the estate management and
"Variable Topup",
"",
""});
- table25.AddRow(new string[] {
+ table117.AddRow(new string[] {
"Today",
"6",
"Sale",
@@ -1241,14 +1241,14 @@ await testRunner.GivenAsync("I have a token to access the estate management and
"",
"123456789"});
#line 212
- await testRunner.WhenAsync("I perform the following transactions", ((string)(null)), table25, "When ");
+ await testRunner.WhenAsync("I perform the following transactions", ((string)(null)), table117, "When ");
#line hidden
#line 217
await testRunner.GivenAsync("I am logged in as \"merchantuser@testmerchant3.co.uk\" with password \"123456\" for M" +
"erchant \"Test Merchant 3\" for Estate \"Test Estate 2\" with client \"merchantClient" +
"\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given ");
#line hidden
- global::Reqnroll.Table table26 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table118 = new global::Reqnroll.Table(new string[] {
"DateTime",
"TransactionNumber",
"TransactionType",
@@ -1263,7 +1263,7 @@ await testRunner.GivenAsync("I have a token to access the estate management and
"ProductName",
"RecipientEmail",
"RecipientMobile"});
- table26.AddRow(new string[] {
+ table118.AddRow(new string[] {
"Today",
"3",
"Sale",
@@ -1278,7 +1278,7 @@ await testRunner.GivenAsync("I have a token to access the estate management and
"Variable Topup",
"",
""});
- table26.AddRow(new string[] {
+ table118.AddRow(new string[] {
"Today",
"7",
"Sale",
@@ -1294,58 +1294,58 @@ await testRunner.GivenAsync("I have a token to access the estate management and
"test@recipient.co.uk",
""});
#line 218
- await testRunner.WhenAsync("I perform the following transactions", ((string)(null)), table26, "When ");
+ await testRunner.WhenAsync("I perform the following transactions", ((string)(null)), table118, "When ");
#line hidden
- global::Reqnroll.Table table27 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table119 = new global::Reqnroll.Table(new string[] {
"EstateName",
"MerchantName",
"TransactionNumber",
"TransactionType",
"ResponseCode",
"ResponseMessage"});
- table27.AddRow(new string[] {
+ table119.AddRow(new string[] {
"Test Estate 1",
"Test Merchant 1",
"1",
"Sale",
"0000",
"SUCCESS"});
- table27.AddRow(new string[] {
+ table119.AddRow(new string[] {
"Test Estate 1",
"Test Merchant 2",
"2",
"Sale",
"0000",
"SUCCESS"});
- table27.AddRow(new string[] {
+ table119.AddRow(new string[] {
"Test Estate 2",
"Test Merchant 3",
"3",
"Sale",
"0000",
"SUCCESS"});
- table27.AddRow(new string[] {
+ table119.AddRow(new string[] {
"Test Estate 1",
"Test Merchant 1",
"4",
"Sale",
"0000",
"SUCCESS"});
- table27.AddRow(new string[] {
+ table119.AddRow(new string[] {
"Test Estate 1",
"Test Merchant 1",
"5",
"Sale",
"0000",
"SUCCESS"});
- table27.AddRow(new string[] {
+ table119.AddRow(new string[] {
"Test Estate 1",
"Test Merchant 2",
"6",
"Sale",
"0000",
"SUCCESS"});
- table27.AddRow(new string[] {
+ table119.AddRow(new string[] {
"Test Estate 2",
"Test Merchant 3",
"7",
@@ -1353,7 +1353,7 @@ await testRunner.GivenAsync("I have a token to access the estate management and
"0000",
"SUCCESS"});
#line 223
- await testRunner.ThenAsync("the sale transaction response should contain the following information", ((string)(null)), table27, "Then ");
+ await testRunner.ThenAsync("the sale transaction response should contain the following information", ((string)(null)), table119, "Then ");
#line hidden
}
await this.ScenarioCleanupAsync();
diff --git a/TransactionProcessorACL/Bootstrapper/MiddlewareRegistry.cs b/TransactionProcessorACL/Bootstrapper/MiddlewareRegistry.cs
index a0121c9..50eaabe 100644
--- a/TransactionProcessorACL/Bootstrapper/MiddlewareRegistry.cs
+++ b/TransactionProcessorACL/Bootstrapper/MiddlewareRegistry.cs
@@ -1,5 +1,6 @@
using Microsoft.OpenApi;
using Shared.Authorisation;
+using Shared.Monitoring;
namespace TransactionProcessorACL.Bootstrapper
{
@@ -38,6 +39,7 @@ public MiddlewareRegistry()
this.ConfigurePasswordTokenHandling();
this.ConfigureJsonOptions();
this.ConfigureControllers();
+ this.AddUptimeKuma();
}
///
diff --git a/TransactionProcessorACL/Startup.cs b/TransactionProcessorACL/Startup.cs
index 6465d9d..8cdf0f8 100644
--- a/TransactionProcessorACL/Startup.cs
+++ b/TransactionProcessorACL/Startup.cs
@@ -4,6 +4,7 @@
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
+using Shared.Monitoring;
using SimpleResults;
using TransactionProcessorACL.Endpoints;
@@ -66,12 +67,20 @@ public void ConfigureContainer(ServiceRegistry services)
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
- public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerFactory loggerFactory)
+ public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerFactory loggerFactory,
+ IHostApplicationLifetime lifetime, IHost host)
{
UseDevelopmentExceptionPage(app, env);
InitializeLogger(loggerFactory);
ConfigureMiddleware(app);
ConfigureEndpoints(app);
+
+ lifetime.ApplicationStarted.Register(() =>
+ {
+ host.RegisterWithUptimeKumaAsync()
+ .GetAwaiter()
+ .GetResult();
+ });
}
private static void UseDevelopmentExceptionPage(IApplicationBuilder app,
diff --git a/TransactionProcessorACL/appsettings.json b/TransactionProcessorACL/appsettings.json
index ea5d594..730c2be 100644
--- a/TransactionProcessorACL/appsettings.json
+++ b/TransactionProcessorACL/appsettings.json
@@ -3,7 +3,7 @@
"ClientId": "serviceClient",
"ClientSecret": "d192cbc46d834d0da90e8a9d50ded543",
"SecurityServiceTokenRetryCount": 3,
- "MinimumSupportedApplicationVersion": "1.0.5",
+ "MinimumSupportedApplicationVersion": "1.0.5",
"EstateReportingApi": "http://127.0.0.1:5011"
},
"AuditSettings": {
@@ -11,5 +11,12 @@
},
"SecurityConfiguration": {
"ApiName": "transactionProcessorACL"
+ },
+ "UptimeKuma": {
+ "Monitor": {
+ "Name": "Transaction Processor ACL",
+ "Url": "http://localhost:5003/health",
+ "IntervalInSeconds": 60
+ }
}
}