public void TestRetrieveMatchedRule_CompareAgainstNonSpecific_EUCountry()
        {
            TableDataRetriever dataRetriever       = new TableDataRetriever();
            string             group_customer      = "LTSHoldings";
            string             shippingCountry     = "DE";
            string             receivingCountry    = "SE";
            string             shippingCompany     = "LTS Holdings";
            string             receivingCompany    = "LTS";
            string             shippingPostalCode  = "4800";
            string             receivingPostalCode = "21124";

            string         euCountryCodes = "AT,BE,BG,HR,CY,CZ,DK,EE,FI,FR,DE,GR,HU,IE,IT,LV,LT,LU,MT,NL,PL,PT,RO,SK,SI,ES,SE,UK, GB";
            IRuleRetriever ruleRetriever  = new RuleRetriever(dataRetriever.GetRuleListData(), euCountryCodes);
            RuleList       actualRuleList = ruleRetriever
                                            .ClearQueryConditions()
                                            .SetCriteria((x) => x.Group, group_customer)
                                            .SetCriteria((x) => x.Receiving_Country_Code, ruleRetriever.GetCountryToCompare(group_customer, receivingCountry, rule => rule.Receiving_Country_Code))
                                            .SetCriteria((x) => x.Shipping_Country_Code, ruleRetriever.GetCountryToCompare(group_customer, shippingCountry, rule => rule.Shipping_Country_Code))
                                            .SetCriteria((x) => x.Shipping_Company, shippingCompany)
                                            .SetCriteria((x) => x.Receving_Company, receivingCompany)
                                            .SetCriteria((x) => x.Shipping_PostalCode, shippingPostalCode)
                                            .SetCriteria((x) => x.Receiving_PostalCode, receivingPostalCode)
                                            .GetRule();

            Assert.AreEqual(5, actualRuleList.Id);
            Assert.AreEqual("EU", actualRuleList.Shipping_Country_Code);        //Should match with 'EU' country since no rule definition for specific country
        }
        public void TestRetrieveMatchedRule_CompareAgainstSpecificEUCountry()
        {
            TableDataRetriever dataRetriever       = new TableDataRetriever();
            string             group_customer      = "LTSHoldings";
            string             shippingCountry     = "FI";
            string             receivingCountry    = "FI";
            string             shippingCompany     = "Beijer Electronics Products AB";
            string             receivingCompany    = "KJ-Elektro";
            string             shippingPostalCode  = "21124";
            string             receivingPostalCode = "4800";

            string         euCountryCodes = "AT,BE,BG,HR,CY,CZ,DK,EE,FI,FR,DE,GR,HU,IE,IT,LV,LT,LU,MT,NL,PL,PT,RO,SK,SI,ES,SE,UK, GB";
            IRuleRetriever ruleRetriever  = new RuleRetriever(dataRetriever.GetRuleListData(), euCountryCodes);
            RuleList       actualRuleList = ruleRetriever
                                            .ClearQueryConditions()
                                            .SetCriteria((x) => x.Group, group_customer)
                                            .SetCriteria((x) => x.Receiving_Country_Code, ruleRetriever.GetCountryToCompare(group_customer, receivingCountry, rule => rule.Receiving_Country_Code))
                                            .SetCriteria((x) => x.Shipping_Country_Code, ruleRetriever.GetCountryToCompare(group_customer, shippingCountry, rule => rule.Shipping_Country_Code))
                                            .SetCriteria((x) => x.Shipping_Company, shippingCompany)
                                            .SetCriteria((x) => x.Receving_Company, receivingCompany)
                                            .SetCriteria((x) => x.Shipping_PostalCode, shippingPostalCode)
                                            .SetCriteria((x) => x.Receiving_PostalCode, receivingPostalCode)
                                            .GetRule();

            Assert.AreEqual(1022, actualRuleList.Id);
            Assert.AreEqual("FI", actualRuleList.Shipping_Country_Code);        //Should match with 'FI' country instead of 'EU' due to specific definition of rule for specific country
        }