public void TestReplaceStaticPlaceholdersFromPersonalResponseDto()
        {
            EmailFormatterBase f = new EmailFormatterBase();
            
            PersonalResponseDto dto = new PersonalResponseDto(12345, "address1", "address2", "address3", "bus", "businessSiebel63", "company name", "UK", "county", Constants.UnknownCustomer, "email", "firstname", "flex1", "flex10", "flex11", "flex12", "flex13", "flex14", "flex15", "flex2", "flex3", "flex4", "flex5", "flex6", "flex7", "flex8", "flex9", "job", "jobsiebel", "jobtitle", "lastname", "persontit", "postcode", "pwd", "telephone", "telephone2", "telephone3", "telephone4", "fax", "fax2", "fax3", "fax4", "mobile", "mobile2", "town", "wor", "world6", "United Kingdom", null, "prefLang", "companyWebsite", "companyRevenue");

            string[] placeholders = new string[]
            {
                "[customer_id]",
                "[country_fk]",
                "[language_fk]",
                "[pwd]",

                "[EMAIL_ADDRESS]".ToLower(),
                "[FIRST_NAME]".ToLower(),
                "[LAST_NAME]".ToLower(),
                "[COMPANY_NAME]".ToLower(),
                //"[NUMBER_OF_EMPLOYEES]".ToLower(),
                //"[JOB_CODE]".ToLower(),
                "[JOBTITLE]".ToLower(),
                //"[BUSINESS_NAME]".ToLower(),
                "[COMPANY_WEBSITE]".ToLower(), 
                //"[COMPANYREVENUE]".ToLower(), 
                "[PERSONAL_TITLE]".ToLower(),
                "[ADDRESS1]".ToLower(), 
                "[ADDRESS2]".ToLower(),
                "[ADDRESS3]".ToLower(),
                "[TOWN]".ToLower(), 
                "[COUNTY]".ToLower(), 
                "[POSTCODE]".ToLower(), 
                "[TELEPHONE_COUNTRY]".ToLower(), 
                "[TELEPHONE_AREA]".ToLower(), 
                "[TELEPHONE]".ToLower(),
                "[TELEPHONE_EXTN]".ToLower(), 

                "[FAX_COUNTRY]".ToLower(), 
                "[FAX_AREA]".ToLower(),
                "[FAX]".ToLower(), 
                "[FAX_EXTN]".ToLower(), 

                "[MOBILE_COUNTRY]".ToLower(),
                "[MOBILE]".ToLower(), 

                "[FLEXFIELD1]".ToLower(), 
                "[FLEXFIELD2]".ToLower(), 
                "[FLEXFIELD3]".ToLower(),
                "[FLEXFIELD4]".ToLower(), 
                "[FLEXFIELD5]".ToLower(), 
                "[FLEXFIELD6]".ToLower(),
                "[FLEXFIELD7]".ToLower(), 
                "[FLEXFIELD8]".ToLower(), 
                "[FLEXFIELD9]".ToLower(),
                "[FLEXFIELD10]".ToLower(),
                "[FLEXFIELD11]".ToLower(), 
                "[FLEXFIELD12]".ToLower(),
                "[FLEXFIELD13]".ToLower(),
                "[FLEXFIELD14]".ToLower(), 
                "[FLEXFIELD15]".ToLower(), 
            };

            string result = "unknown|UK|prefLang|pwd|email|firstname|lastname|company name|jobtitle|companyWebsite|persontit|address1|address2|address3|town|county|postcode|telephone|telephone2|telephone3|telephone4|fax|fax2|fax3|fax4|mobile|mobile2|flex1|flex2|flex3|flex4|flex5|flex6|flex7|flex8|flex9|flex10|flex11|flex12|flex13|flex14|flex15";

            StringBuilder sb = new StringBuilder();

            foreach (string placeholder in placeholders)
            {
                if (sb.Length > 0)
                    sb.Append('|');
                sb.Append(placeholder);
            }

            f.ReplaceStaticPlaceholders(sb, dto);

            Assert.AreEqual(result, sb.ToString());
        }
        public void TestReplacePlaceholdersFromCustomerInfoDto()
        {         
            EmailFormatterBase f = new EmailFormatterBase();

            CustomerInfoDto data = new CustomerInfoDto();
            data.Questionnaire = "questionnaire";
            data.Questionnaire_id = 1234546; //"[questionnaire_id]";
            data.Customer_id = "customer_id";
            data.Country_FK = "country_fk";
            data.Language_FK = "language_fk";
            data.Company_id = "company_id";
            //data.CompanyRevenue = "";
            data.CompanyWebsite = "companywebsite";
            data.Greeting_string = "greeting_string";
            data.Pwd1 = "pwd";
            data.Siebel_con_id = 234567; // "[siebel_con_id]"
            data.Siebel_prosp_id = 345678; // "[siebel_prosp_id]"
            
            #region TODO: these should also be tested with NULL
            data.Contact_by_email = true; // "[contact_by_email]"
            data.Email_pref = EmailPreferences.Text; // "[email_pref]"
            data.Contact_by_post = true; //"[contact_by_post]"
            data.Contact_by_phone = true; // "[contact_by_phone]"
            data.Mailstop_flag = true; //"[mailstop_flag]"
            #endregion

            data.Response_FK = 456789; //"[response_fk]"
            data.Responser_id = "responser_id";
            //"[url_to_questionnaire], data.questionnaire);
            //"[wavecode]", data.questionnaire);
            //"[flexfield_jumpid]", data.questionnaire);
            //"[number_of_employees]", data.number_of_employees);
            //"[job_code]", data.job_code);
            //"[business_name]", data.business_name);

            string[] placeholders = new string[]
            {
                "[questionnaire]",
                "[questionnaire_id]",
                "[customer_id]",
                "[country_fk]",
                "[language_fk]",
                "[company_id]",
                "[greeting_string]",
                "[pwd]",
                "[siebel_con_id]",
                "[siebel_prosp_id]",
                "[contact_by_email]",
                "[email_pref]",
                "[contact_by_post]",
                "[contact_by_phone]",
                "[mailstop_flag]",
                "[response_fk]",
                "[responser_id]",
                //"[url_to_questionnaire],
                //"[wavecode]",
                //"[flexfield_jumpid]",
                //"[number_of_employees]", 
                //"[job_code]",
                //"[business_name]",
                "[company_website]",
                //"[companyrevenue]", 

            };

            string result = "questionnaire|1234546|customer_id|country_fk|language_fk|company_id|greeting_string|pwd|234567|345678|True|Text|True|True|True|456789|responser_id|companywebsite";

            StringBuilder sb = new StringBuilder();

            foreach (string placeholder in placeholders)
            {
                if (sb.Length > 0)
                    sb.Append('|');
                sb.Append(placeholder);
            }

            f.ReplacePlaceholders(sb, data);

            Assert.AreEqual(result, sb.ToString());
        }