﻿// ------------------------------------------------------------------------------
//  <auto-generated>
//      This code was generated by SpecFlow (http://www.specflow.org/).
//      SpecFlow Version:2.1.0.0
//      SpecFlow Generator Version:2.0.0.0
// 
//      Changes to this file may cause incorrect behavior and will be lost if
//      the code is regenerated.
//  </auto-generated>
// ------------------------------------------------------------------------------
#region Designer generated code
#pragma warning disable
namespace AccountingNET.Tests.Features
{
    using TechTalk.SpecFlow;
    
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("TechTalk.SpecFlow", "2.1.0.0")]
    [System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
    [NUnit.Framework.TestFixtureAttribute()]
    [NUnit.Framework.DescriptionAttribute("Transaction")]
    public partial class TransactionFeature
    {
        
        private TechTalk.SpecFlow.ITestRunner testRunner;
        
        [NUnit.Framework.TestFixtureSetUpAttribute()]
        public virtual void FeatureSetup()
        {
            testRunner = TechTalk.SpecFlow.TestRunnerManager.GetTestRunner();
            TechTalk.SpecFlow.FeatureInfo featureInfo = new TechTalk.SpecFlow.FeatureInfo(new System.Globalization.CultureInfo("en-US"), "Transaction", null, ProgrammingLanguage.CSharp, ((string[])(null)));
            testRunner.OnFeatureStart(featureInfo);
        }
        
        [NUnit.Framework.TestFixtureTearDownAttribute()]
        public virtual void FeatureTearDown()
        {
            testRunner.OnFeatureEnd();
            testRunner = null;
        }
        
        [NUnit.Framework.SetUpAttribute()]
        public virtual void TestInitialize()
        {
        }
        
        [NUnit.Framework.TearDownAttribute()]
        public virtual void ScenarioTearDown()
        {
            testRunner.OnScenarioEnd();
        }
        
        public virtual void ScenarioSetup(TechTalk.SpecFlow.ScenarioInfo scenarioInfo)
        {
            testRunner.OnScenarioStart(scenarioInfo);
        }
        
        public virtual void ScenarioCleanup()
        {
            testRunner.CollectScenarioErrors();
        }
        
        public virtual void FeatureBackground()
        {
            TechTalk.SpecFlow.Table table1 = new TechTalk.SpecFlow.Table(new string[] {
                        "Property",
                        "Value"});
            table1.AddRow(new string[] {
                        "Name",
                        "MyLedger"});
            table1.AddRow(new string[] {
                        "Depth",
                        "3"});
            testRunner.Given("I create a ledger \"L\" with the properties", ((string)(null)), table1, "Given ");
            TechTalk.SpecFlow.Table table2 = new TechTalk.SpecFlow.Table(new string[] {
                        "Number",
                        "Ledger",
                        "Label"});
            table2.AddRow(new string[] {
                        "100",
                        "MyLedger",
                        "Account 100"});
            table2.AddRow(new string[] {
                        "200",
                        "MyLedger",
                        "Account 200"});
            table2.AddRow(new string[] {
                        "300",
                        "MyLedger",
                        "Account 300"});
            table2.AddRow(new string[] {
                        "500",
                        "MyLedger",
                        "Account 500"});
            table2.AddRow(new string[] {
                        "501",
                        "MyLedger",
                        "Account 501"});
            table2.AddRow(new string[] {
                        "510",
                        "MyLedger",
                        "Account 510"});
            table2.AddRow(new string[] {
                        "511",
                        "MyLedger",
                        "Account 511"});
            testRunner.And("I create multiple TAccounts", ((string)(null)), table2, "And ");
        }
        
        [NUnit.Framework.TestAttribute()]
        [NUnit.Framework.DescriptionAttribute("Transaction - Record a transaction on a named account - NF")]
        public virtual void Transaction_RecordATransactionOnANamedAccount_NF()
        {
            TechTalk.SpecFlow.ScenarioInfo scenarioInfo = new TechTalk.SpecFlow.ScenarioInfo("Transaction - Record a transaction on a named account - NF", ((string[])(null)));
            this.ScenarioSetup(scenarioInfo);
            this.FeatureBackground();
            TechTalk.SpecFlow.Table table3 = new TechTalk.SpecFlow.Table(new string[] {
                        "Debit",
                        "Credit",
                        "Amount Debit",
                        "Amount Credit"});
            table3.AddRow(new string[] {
                        "100",
                        "",
                        "50.00",
                        ""});
            table3.AddRow(new string[] {
                        "",
                        "200",
                        "",
                        "50.00"});
            testRunner.When("I record a transaction \"TRANS1\" on ledger \"MyLedger\"", ((string)(null)), table3, "When ");
            testRunner.Then("I receive this ok message: \"Transaction.Recorded.Ok\"", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "Then ");
            testRunner.And("the number of transactions on ledger \"MyLedger\" is \"1\"", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "And ");
            testRunner.And("the number of entries is \"2\" for transaction \"TRANS1\"", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "And ");
            testRunner.And("the number of debit entries is \"1\" for transaction \"TRANS1\"", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "And ");
            testRunner.And("the number of credit entries is \"1\" for transaction \"TRANS1\"", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "And ");
            testRunner.And("the transaction \"TRANS1\" is balanced", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "And ");
            TechTalk.SpecFlow.Table table4 = new TechTalk.SpecFlow.Table(new string[] {
                        "TransDebit",
                        "Debit",
                        "Credit",
                        "TransCredit"});
            table4.AddRow(new string[] {
                        "1",
                        "50.00",
                        "",
                        ""});
            testRunner.And("the content of the TAccount \"100\" on ledger \"MyLedger\" is", ((string)(null)), table4, "And ");
            TechTalk.SpecFlow.Table table5 = new TechTalk.SpecFlow.Table(new string[] {
                        "TransDebit",
                        "Debit",
                        "Credit",
                        "TransCredit"});
            table5.AddRow(new string[] {
                        "",
                        "",
                        "50.00",
                        "1"});
            testRunner.And("the content of the TAccount \"200\" on ledger \"MyLedger\" is", ((string)(null)), table5, "And ");
            this.ScenarioCleanup();
        }
        
        [NUnit.Framework.TestAttribute()]
        [NUnit.Framework.DescriptionAttribute("Transaction - Record a transaction on an anonymous account - NF")]
        public virtual void Transaction_RecordATransactionOnAnAnonymousAccount_NF()
        {
            TechTalk.SpecFlow.ScenarioInfo scenarioInfo = new TechTalk.SpecFlow.ScenarioInfo("Transaction - Record a transaction on an anonymous account - NF", ((string[])(null)));
            this.ScenarioSetup(scenarioInfo);
            this.FeatureBackground();
            TechTalk.SpecFlow.Table table6 = new TechTalk.SpecFlow.Table(new string[] {
                        "Debit",
                        "Credit",
                        "Amount Debit",
                        "Amount Credit"});
            table6.AddRow(new string[] {
                        "10",
                        "",
                        "50.00",
                        ""});
            table6.AddRow(new string[] {
                        "",
                        "20",
                        "",
                        "50.00"});
            testRunner.When("I record a transaction \"TRANS1\" on ledger \"MyLedger\"", ((string)(null)), table6, "When ");
            testRunner.Then("I receive this ok message: \"Transaction.Recorded.Ok\"", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "Then ");
            testRunner.And("the number of transactions on ledger \"MyLedger\" is \"1\"", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "And ");
            testRunner.And("the number of entries is \"2\" for transaction \"TRANS1\"", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "And ");
            testRunner.And("the number of debit entries is \"1\" for transaction \"TRANS1\"", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "And ");
            testRunner.And("the number of credit entries is \"1\" for transaction \"TRANS1\"", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "And ");
            testRunner.And("the transaction \"TRANS1\" is balanced", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "And ");
            TechTalk.SpecFlow.Table table7 = new TechTalk.SpecFlow.Table(new string[] {
                        "TransDebit",
                        "Debit",
                        "Credit",
                        "TransCredit"});
            table7.AddRow(new string[] {
                        "1",
                        "50.00",
                        "",
                        ""});
            testRunner.And("the content of the TAccount \"10\" on ledger \"MyLedger\" is", ((string)(null)), table7, "And ");
            TechTalk.SpecFlow.Table table8 = new TechTalk.SpecFlow.Table(new string[] {
                        "TransDebit",
                        "Debit",
                        "Credit",
                        "TransCredit"});
            table8.AddRow(new string[] {
                        "",
                        "",
                        "50.00",
                        "1"});
            testRunner.And("the content of the TAccount \"20\" on ledger \"MyLedger\" is", ((string)(null)), table8, "And ");
            this.ScenarioCleanup();
        }
        
        [NUnit.Framework.TestAttribute()]
        [NUnit.Framework.DescriptionAttribute("Transaction - Record a transaction - Mandatory properties missing")]
        [NUnit.Framework.TestCaseAttribute("Account missing", "", "", "10.00", "", "Transaction.Record.Account.Missing", new string[0])]
        [NUnit.Framework.TestCaseAttribute("Only one account per entry", "100", "200", "10.00", "", "Transaction.Record.Account.OnlyOneAccountPerEntry", new string[0])]
        [NUnit.Framework.TestCaseAttribute("Debit amount missing", "100", "", "", "", "Transaction.Record.DebitAmount.Missing", new string[0])]
        [NUnit.Framework.TestCaseAttribute("Credit amount missing", "", "100", "", "", "Transaction.Record.CreditAmount.Missing", new string[0])]
        public virtual void Transaction_RecordATransaction_MandatoryPropertiesMissing(string description, string debit, string credit, string amountDebit, string amountCredit, string message, string[] exampleTags)
        {
            TechTalk.SpecFlow.ScenarioInfo scenarioInfo = new TechTalk.SpecFlow.ScenarioInfo("Transaction - Record a transaction - Mandatory properties missing", exampleTags);
            this.ScenarioSetup(scenarioInfo);
            this.FeatureBackground();
            TechTalk.SpecFlow.Table table9 = new TechTalk.SpecFlow.Table(new string[] {
                        "Debit",
                        "Credit",
                        "Amount Debit",
                        "Amount Credit"});
            table9.AddRow(new string[] {
                        string.Format("{0}", debit),
                        string.Format("{0}", credit),
                        string.Format("{0}", amountDebit),
                        string.Format("{0}", amountCredit)});
            testRunner.When("I record a transaction \"TRANS1\" on ledger \"MyLedger\"", ((string)(null)), table9, "When ");
            testRunner.Then(string.Format("I receive this error message: \"{0}\"", message), ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "Then ");
            this.ScenarioCleanup();
        }
        
        [NUnit.Framework.TestAttribute()]
        [NUnit.Framework.DescriptionAttribute("Transaction - Record a transaction - NF - Multiple accounts on debit side")]
        public virtual void Transaction_RecordATransaction_NF_MultipleAccountsOnDebitSide()
        {
            TechTalk.SpecFlow.ScenarioInfo scenarioInfo = new TechTalk.SpecFlow.ScenarioInfo("Transaction - Record a transaction - NF - Multiple accounts on debit side", ((string[])(null)));
            this.ScenarioSetup(scenarioInfo);
            this.FeatureBackground();
            TechTalk.SpecFlow.Table table10 = new TechTalk.SpecFlow.Table(new string[] {
                        "Debit",
                        "Credit",
                        "Amount Debit",
                        "Amount Credit"});
            table10.AddRow(new string[] {
                        "100",
                        "",
                        "25.00",
                        ""});
            table10.AddRow(new string[] {
                        "300",
                        "",
                        "25.00",
                        ""});
            table10.AddRow(new string[] {
                        "",
                        "200",
                        "",
                        "50.00"});
            testRunner.When("I record a transaction \"TRANS1\" on ledger \"MyLedger\"", ((string)(null)), table10, "When ");
            testRunner.Then("I receive this ok message: \"Transaction.Recorded.Ok\"", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "Then ");
            testRunner.And("the number of transactions on ledger \"MyLedger\" is \"1\"", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "And ");
            testRunner.And("the number of entries is \"3\" for transaction \"TRANS1\"", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "And ");
            testRunner.And("the number of debit entries is \"2\" for transaction \"TRANS1\"", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "And ");
            testRunner.And("the number of credit entries is \"1\" for transaction \"TRANS1\"", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "And ");
            testRunner.And("the transaction \"TRANS1\" is balanced", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "And ");
            TechTalk.SpecFlow.Table table11 = new TechTalk.SpecFlow.Table(new string[] {
                        "TransDebit",
                        "Debit",
                        "Credit",
                        "TransCredit"});
            table11.AddRow(new string[] {
                        "1",
                        "25.00",
                        "",
                        ""});
            testRunner.And("the content of the TAccount \"100\" on ledger \"MyLedger\" is", ((string)(null)), table11, "And ");
            TechTalk.SpecFlow.Table table12 = new TechTalk.SpecFlow.Table(new string[] {
                        "TransDebit",
                        "Debit",
                        "Credit",
                        "TransCredit"});
            table12.AddRow(new string[] {
                        "1",
                        "25.00",
                        "",
                        ""});
            testRunner.And("the content of the TAccount \"300\" on ledger \"MyLedger\" is", ((string)(null)), table12, "And ");
            TechTalk.SpecFlow.Table table13 = new TechTalk.SpecFlow.Table(new string[] {
                        "TransDebit",
                        "Debit",
                        "Credit",
                        "TransCredit"});
            table13.AddRow(new string[] {
                        "",
                        "",
                        "50.00",
                        "1"});
            testRunner.And("the content of the TAccount \"200\" on ledger \"MyLedger\" is", ((string)(null)), table13, "And ");
            this.ScenarioCleanup();
        }
        
        [NUnit.Framework.TestAttribute()]
        [NUnit.Framework.DescriptionAttribute("Transaction - Record a transaction - NF - Multiple accounts on credit side")]
        public virtual void Transaction_RecordATransaction_NF_MultipleAccountsOnCreditSide()
        {
            TechTalk.SpecFlow.ScenarioInfo scenarioInfo = new TechTalk.SpecFlow.ScenarioInfo("Transaction - Record a transaction - NF - Multiple accounts on credit side", ((string[])(null)));
            this.ScenarioSetup(scenarioInfo);
            this.FeatureBackground();
            TechTalk.SpecFlow.Table table14 = new TechTalk.SpecFlow.Table(new string[] {
                        "Debit",
                        "Credit",
                        "Amount Debit",
                        "Amount Credit"});
            table14.AddRow(new string[] {
                        "100",
                        "",
                        "50.00",
                        ""});
            table14.AddRow(new string[] {
                        "",
                        "200",
                        "",
                        "25.00"});
            table14.AddRow(new string[] {
                        "",
                        "300",
                        "",
                        "25.00"});
            testRunner.When("I record a transaction \"TRANS1\" on ledger \"MyLedger\"", ((string)(null)), table14, "When ");
            testRunner.Then("I receive this ok message: \"Transaction.Recorded.Ok\"", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "Then ");
            testRunner.And("the number of transactions on ledger \"MyLedger\" is \"1\"", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "And ");
            testRunner.And("the number of entries is \"3\" for transaction \"TRANS1\"", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "And ");
            testRunner.And("the number of debit entries is \"1\" for transaction \"TRANS1\"", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "And ");
            testRunner.And("the number of credit entries is \"2\" for transaction \"TRANS1\"", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "And ");
            testRunner.And("the transaction \"TRANS1\" is balanced", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "And ");
            TechTalk.SpecFlow.Table table15 = new TechTalk.SpecFlow.Table(new string[] {
                        "TransDebit",
                        "Debit",
                        "Credit",
                        "TransCredit"});
            table15.AddRow(new string[] {
                        "1",
                        "50.00",
                        "",
                        ""});
            testRunner.And("the content of the TAccount \"100\" on ledger \"MyLedger\" is", ((string)(null)), table15, "And ");
            TechTalk.SpecFlow.Table table16 = new TechTalk.SpecFlow.Table(new string[] {
                        "TransDebit",
                        "Debit",
                        "Credit",
                        "TransCredit"});
            table16.AddRow(new string[] {
                        "",
                        "",
                        "25.00",
                        "1"});
            testRunner.And("the content of the TAccount \"200\" on ledger \"MyLedger\" is", ((string)(null)), table16, "And ");
            TechTalk.SpecFlow.Table table17 = new TechTalk.SpecFlow.Table(new string[] {
                        "TransDebit",
                        "Debit",
                        "Credit",
                        "TransCredit"});
            table17.AddRow(new string[] {
                        "",
                        "",
                        "25.00",
                        "1"});
            testRunner.And("the content of the TAccount \"300\" on ledger \"MyLedger\" is", ((string)(null)), table17, "And ");
            this.ScenarioCleanup();
        }
        
        [NUnit.Framework.TestAttribute()]
        [NUnit.Framework.DescriptionAttribute("Transaction - Record multiple transactions - NF")]
        public virtual void Transaction_RecordMultipleTransactions_NF()
        {
            TechTalk.SpecFlow.ScenarioInfo scenarioInfo = new TechTalk.SpecFlow.ScenarioInfo("Transaction - Record multiple transactions - NF", ((string[])(null)));
            this.ScenarioSetup(scenarioInfo);
            this.FeatureBackground();
            TechTalk.SpecFlow.Table table18 = new TechTalk.SpecFlow.Table(new string[] {
                        "Debit",
                        "Credit",
                        "Amount Debit",
                        "Amount Credit"});
            table18.AddRow(new string[] {
                        "100",
                        "",
                        "50.00",
                        ""});
            table18.AddRow(new string[] {
                        "",
                        "200",
                        "",
                        "50.00"});
            testRunner.When("I record a transaction \"TRANS1\" on ledger \"MyLedger\"", ((string)(null)), table18, "When ");
            TechTalk.SpecFlow.Table table19 = new TechTalk.SpecFlow.Table(new string[] {
                        "Debit",
                        "Credit",
                        "Amount Debit",
                        "Amount Credit"});
            table19.AddRow(new string[] {
                        "200",
                        "",
                        "25.00",
                        ""});
            table19.AddRow(new string[] {
                        "",
                        "100",
                        "",
                        "25.00"});
            testRunner.And("I record a transaction \"TRANS1\" on ledger \"MyLedger\"", ((string)(null)), table19, "And ");
            TechTalk.SpecFlow.Table table20 = new TechTalk.SpecFlow.Table(new string[] {
                        "TransDebit",
                        "Debit",
                        "Credit",
                        "TransCredit"});
            table20.AddRow(new string[] {
                        "1",
                        "50.00",
                        "25.00",
                        "2"});
            testRunner.Then("the content of the TAccount \"100\" on ledger \"MyLedger\" is", ((string)(null)), table20, "Then ");
            TechTalk.SpecFlow.Table table21 = new TechTalk.SpecFlow.Table(new string[] {
                        "TransDebit",
                        "Debit",
                        "Credit",
                        "TransCredit"});
            table21.AddRow(new string[] {
                        "2",
                        "25.00",
                        "50.00",
                        "1"});
            testRunner.And("the content of the TAccount \"200\" on ledger \"MyLedger\" is", ((string)(null)), table21, "And ");
            this.ScenarioCleanup();
        }
        
        [NUnit.Framework.TestAttribute()]
        [NUnit.Framework.DescriptionAttribute("Transaction - Recorded transactions on sub-accounts are aggregated at upper level" +
            "s when in the same transaction")]
        public virtual void Transaction_RecordedTransactionsOnSub_AccountsAreAggregatedAtUpperLevelsWhenInTheSameTransaction()
        {
            TechTalk.SpecFlow.ScenarioInfo scenarioInfo = new TechTalk.SpecFlow.ScenarioInfo("Transaction - Recorded transactions on sub-accounts are aggregated at upper level" +
                    "s when in the same transaction", ((string[])(null)));
            this.ScenarioSetup(scenarioInfo);
            this.FeatureBackground();
            TechTalk.SpecFlow.Table table22 = new TechTalk.SpecFlow.Table(new string[] {
                        "Debit",
                        "Credit",
                        "Amount Debit",
                        "Amount Credit"});
            table22.AddRow(new string[] {
                        "500",
                        "",
                        "10.00",
                        ""});
            table22.AddRow(new string[] {
                        "501",
                        "",
                        "10.00",
                        ""});
            table22.AddRow(new string[] {
                        "510",
                        "",
                        "10.00",
                        ""});
            table22.AddRow(new string[] {
                        "511",
                        "",
                        "10.00",
                        ""});
            table22.AddRow(new string[] {
                        "",
                        "100",
                        "",
                        "40.00"});
            testRunner.Given("I record a transaction \"TRANS1\" on ledger \"MyLedger\"", ((string)(null)), table22, "Given ");
            TechTalk.SpecFlow.Table table23 = new TechTalk.SpecFlow.Table(new string[] {
                        "TransDebit",
                        "Debit",
                        "Credit",
                        "TransCredit"});
            table23.AddRow(new string[] {
                        "1",
                        "10.00",
                        "",
                        ""});
            table23.AddRow(new string[] {
                        "1",
                        "10.00",
                        "",
                        ""});
            testRunner.Then("the content of the TAccount \"50\" on ledger \"MyLedger\" is", ((string)(null)), table23, "Then ");
            TechTalk.SpecFlow.Table table24 = new TechTalk.SpecFlow.Table(new string[] {
                        "TransDebit",
                        "Debit",
                        "Credit",
                        "TransCredit"});
            table24.AddRow(new string[] {
                        "1",
                        "10.00",
                        "",
                        ""});
            table24.AddRow(new string[] {
                        "1",
                        "10.00",
                        "",
                        ""});
            testRunner.And("the content of the TAccount \"51\" on ledger \"MyLedger\" is", ((string)(null)), table24, "And ");
            TechTalk.SpecFlow.Table table25 = new TechTalk.SpecFlow.Table(new string[] {
                        "TransDebit",
                        "Debit",
                        "Credit",
                        "TransCredit"});
            table25.AddRow(new string[] {
                        "1",
                        "10.00",
                        "",
                        ""});
            table25.AddRow(new string[] {
                        "1",
                        "10.00",
                        "",
                        ""});
            table25.AddRow(new string[] {
                        "1",
                        "10.00",
                        "",
                        ""});
            table25.AddRow(new string[] {
                        "1",
                        "10.00",
                        "",
                        ""});
            testRunner.And("the content of the TAccount \"5\" on ledger \"MyLedger\" is", ((string)(null)), table25, "And ");
            this.ScenarioCleanup();
        }
        
        [NUnit.Framework.TestAttribute()]
        [NUnit.Framework.DescriptionAttribute("Transaction - Recorded transactions on sub-accounts are aggregated at upper level" +
            "s when in different transactions on the same side")]
        public virtual void Transaction_RecordedTransactionsOnSub_AccountsAreAggregatedAtUpperLevelsWhenInDifferentTransactionsOnTheSameSide()
        {
            TechTalk.SpecFlow.ScenarioInfo scenarioInfo = new TechTalk.SpecFlow.ScenarioInfo("Transaction - Recorded transactions on sub-accounts are aggregated at upper level" +
                    "s when in different transactions on the same side", ((string[])(null)));
            this.ScenarioSetup(scenarioInfo);
            this.FeatureBackground();
            TechTalk.SpecFlow.Table table26 = new TechTalk.SpecFlow.Table(new string[] {
                        "Debit",
                        "Credit",
                        "Amount Debit",
                        "Amount Credit"});
            table26.AddRow(new string[] {
                        "500",
                        "",
                        "10.00",
                        ""});
            table26.AddRow(new string[] {
                        "",
                        "100",
                        "",
                        "10.00"});
            testRunner.Given("I record a transaction \"TRANS1\" on ledger \"MyLedger\"", ((string)(null)), table26, "Given ");
            TechTalk.SpecFlow.Table table27 = new TechTalk.SpecFlow.Table(new string[] {
                        "Debit",
                        "Credit",
                        "Amount Debit",
                        "Amount Credit"});
            table27.AddRow(new string[] {
                        "501",
                        "",
                        "10.00",
                        ""});
            table27.AddRow(new string[] {
                        "",
                        "100",
                        "",
                        "10.00"});
            testRunner.And("I record a transaction \"TRANS2\" on ledger \"MyLedger\"", ((string)(null)), table27, "And ");
            TechTalk.SpecFlow.Table table28 = new TechTalk.SpecFlow.Table(new string[] {
                        "Debit",
                        "Credit",
                        "Amount Debit",
                        "Amount Credit"});
            table28.AddRow(new string[] {
                        "510",
                        "",
                        "10.00",
                        ""});
            table28.AddRow(new string[] {
                        "",
                        "100",
                        "",
                        "10.00"});
            testRunner.And("I record a transaction \"TRANS3\" on ledger \"MyLedger\"", ((string)(null)), table28, "And ");
            TechTalk.SpecFlow.Table table29 = new TechTalk.SpecFlow.Table(new string[] {
                        "Debit",
                        "Credit",
                        "Amount Debit",
                        "Amount Credit"});
            table29.AddRow(new string[] {
                        "511",
                        "",
                        "10.00",
                        ""});
            table29.AddRow(new string[] {
                        "",
                        "100",
                        "",
                        "10.00"});
            testRunner.And("I record a transaction \"TRANS4\" on ledger \"MyLedger\"", ((string)(null)), table29, "And ");
            TechTalk.SpecFlow.Table table30 = new TechTalk.SpecFlow.Table(new string[] {
                        "TransDebit",
                        "Debit",
                        "Credit",
                        "TransCredit"});
            table30.AddRow(new string[] {
                        "1",
                        "10.00",
                        "",
                        ""});
            table30.AddRow(new string[] {
                        "2",
                        "10.00",
                        "",
                        ""});
            testRunner.Then("the content of the TAccount \"50\" on ledger \"MyLedger\" is", ((string)(null)), table30, "Then ");
            TechTalk.SpecFlow.Table table31 = new TechTalk.SpecFlow.Table(new string[] {
                        "TransDebit",
                        "Debit",
                        "Credit",
                        "TransCredit"});
            table31.AddRow(new string[] {
                        "3",
                        "10.00",
                        "",
                        ""});
            table31.AddRow(new string[] {
                        "4",
                        "10.00",
                        "",
                        ""});
            testRunner.And("the content of the TAccount \"51\" on ledger \"MyLedger\" is", ((string)(null)), table31, "And ");
            TechTalk.SpecFlow.Table table32 = new TechTalk.SpecFlow.Table(new string[] {
                        "TransDebit",
                        "Debit",
                        "Credit",
                        "TransCredit"});
            table32.AddRow(new string[] {
                        "1",
                        "10.00",
                        "",
                        ""});
            table32.AddRow(new string[] {
                        "2",
                        "10.00",
                        "",
                        ""});
            table32.AddRow(new string[] {
                        "3",
                        "10.00",
                        "",
                        ""});
            table32.AddRow(new string[] {
                        "4",
                        "10.00",
                        "",
                        ""});
            testRunner.And("the content of the TAccount \"5\" on ledger \"MyLedger\" is", ((string)(null)), table32, "And ");
            this.ScenarioCleanup();
        }
        
        [NUnit.Framework.TestAttribute()]
        [NUnit.Framework.DescriptionAttribute("Transaction - Recorded transactions on sub-accounts are aggregated at upper level" +
            "s when in different transactions on different sides")]
        public virtual void Transaction_RecordedTransactionsOnSub_AccountsAreAggregatedAtUpperLevelsWhenInDifferentTransactionsOnDifferentSides()
        {
            TechTalk.SpecFlow.ScenarioInfo scenarioInfo = new TechTalk.SpecFlow.ScenarioInfo("Transaction - Recorded transactions on sub-accounts are aggregated at upper level" +
                    "s when in different transactions on different sides", ((string[])(null)));
            this.ScenarioSetup(scenarioInfo);
            this.FeatureBackground();
            TechTalk.SpecFlow.Table table33 = new TechTalk.SpecFlow.Table(new string[] {
                        "Debit",
                        "Credit",
                        "Amount Debit",
                        "Amount Credit"});
            table33.AddRow(new string[] {
                        "500",
                        "",
                        "10.00",
                        ""});
            table33.AddRow(new string[] {
                        "",
                        "100",
                        "",
                        "10.00"});
            testRunner.Given("I record a transaction \"TRANS1\" on ledger \"MyLedger\"", ((string)(null)), table33, "Given ");
            TechTalk.SpecFlow.Table table34 = new TechTalk.SpecFlow.Table(new string[] {
                        "Debit",
                        "Credit",
                        "Amount Debit",
                        "Amount Credit"});
            table34.AddRow(new string[] {
                        "100",
                        "",
                        "10.00",
                        ""});
            table34.AddRow(new string[] {
                        "",
                        "501",
                        "",
                        "10.00"});
            testRunner.And("I record a transaction \"TRANS2\" on ledger \"MyLedger\"", ((string)(null)), table34, "And ");
            TechTalk.SpecFlow.Table table35 = new TechTalk.SpecFlow.Table(new string[] {
                        "Debit",
                        "Credit",
                        "Amount Debit",
                        "Amount Credit"});
            table35.AddRow(new string[] {
                        "510",
                        "",
                        "10.00",
                        ""});
            table35.AddRow(new string[] {
                        "",
                        "100",
                        "",
                        "10.00"});
            testRunner.And("I record a transaction \"TRANS3\" on ledger \"MyLedger\"", ((string)(null)), table35, "And ");
            TechTalk.SpecFlow.Table table36 = new TechTalk.SpecFlow.Table(new string[] {
                        "Debit",
                        "Credit",
                        "Amount Debit",
                        "Amount Credit"});
            table36.AddRow(new string[] {
                        "100",
                        "",
                        "10.00",
                        ""});
            table36.AddRow(new string[] {
                        "",
                        "511",
                        "",
                        "10.00"});
            testRunner.And("I record a transaction \"TRANS4\" on ledger \"MyLedger\"", ((string)(null)), table36, "And ");
            TechTalk.SpecFlow.Table table37 = new TechTalk.SpecFlow.Table(new string[] {
                        "TransDebit",
                        "Debit",
                        "Credit",
                        "TransCredit"});
            table37.AddRow(new string[] {
                        "1",
                        "10.00",
                        "10.00",
                        "2"});
            testRunner.Then("the content of the TAccount \"50\" on ledger \"MyLedger\" is", ((string)(null)), table37, "Then ");
            TechTalk.SpecFlow.Table table38 = new TechTalk.SpecFlow.Table(new string[] {
                        "TransDebit",
                        "Debit",
                        "Credit",
                        "TransCredit"});
            table38.AddRow(new string[] {
                        "3",
                        "10.00",
                        "10.00",
                        "4"});
            testRunner.And("the content of the TAccount \"51\" on ledger \"MyLedger\" is", ((string)(null)), table38, "And ");
            TechTalk.SpecFlow.Table table39 = new TechTalk.SpecFlow.Table(new string[] {
                        "TransDebit",
                        "Debit",
                        "Credit",
                        "TransCredit"});
            table39.AddRow(new string[] {
                        "1",
                        "10.00",
                        "10.00",
                        "2"});
            table39.AddRow(new string[] {
                        "3",
                        "10.00",
                        "10.00",
                        "4"});
            testRunner.And("the content of the TAccount \"5\" on ledger \"MyLedger\" is", ((string)(null)), table39, "And ");
            this.ScenarioCleanup();
        }
    }
}
#pragma warning restore
#endregion
