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 + } } }