static void Main(string[] args) { // Variables var outputFilePath = @"C:\Users\preston-smithm\Documents\..Digital\Projects\Testing\Data Protection\Automated Testing\script\csv from ftp\201509220018-Geni-SitecoreDB-Constituent-001.csv"; var macroInputDirectory = @"C:\Users\preston-smithm\Documents\..Digital\Projects\Testing\Data Protection\Automated Testing\script\macro output"; // Grab Array of output report from CSV var outputdataTable = Helpers.GetDataTableFromCsvPath(outputFilePath); // Grab input array var inputDataTable = Helpers.BuildDataTableFromListOfFilenames(Helpers.GetFileNamesFromFilepath(macroInputDirectory)); // Foreach item in the output array, cross-reference the email addresss and ensure that the matrix is complete var comparer = new TestComparer(outputdataTable, inputDataTable); comparer.RunComparison(); }
public void IsValidationFailingWhenItShould() { // Variables // output datatable var outputDataTable = new DataTable("output"); outputDataTable.Columns.Add("EmailAddress", typeof(string)); outputDataTable.Columns.Add(new DataColumn { ColumnName = "DataProtectionStatementCode1", DataType = typeof(string) }); outputDataTable.Columns.Add(new DataColumn { ColumnName = "DataProtectionStatementCode2", DataType = typeof(string) }); outputDataTable.Columns.Add(new DataColumn { ColumnName = "DataProtectionStatementCode3", DataType = typeof(string) }); outputDataTable.Columns.Add(new DataColumn { ColumnName = "DataProtectionStatementCode4", DataType = typeof(string) }); outputDataTable.Columns.Add(new DataColumn { ColumnName = "DataProtectionStatementCode5", DataType = typeof(string) }); DataRow newRow = outputDataTable.NewRow(); newRow["EmailAddress"] = "*****@*****.**"; newRow["DataProtectionStatementCode1"] = "ContactByPost"; newRow["DataProtectionStatementCode2"] = "ContactByPhone"; newRow["DataProtectionStatementCode3"] = "NoContactByEmail"; newRow["DataProtectionStatementCode4"] = "ContactByThirdParty"; newRow["DataProtectionStatementCode5"] = "NoContactByText"; outputDataTable.Rows.Add(newRow); // input data table var inputDataTable = new DataTable("input"); inputDataTable.Columns.Add(new DataColumn { ColumnName = "Email", DataType = typeof(string) }); inputDataTable.Columns.Add(new DataColumn { ColumnName = "one", DataType = typeof(string) }); inputDataTable.Columns.Add(new DataColumn { ColumnName = "two", DataType = typeof(string) }); inputDataTable.Columns.Add(new DataColumn { ColumnName = "three", DataType = typeof(string) }); inputDataTable.Columns.Add(new DataColumn { ColumnName = "four", DataType = typeof(string) }); inputDataTable.Columns.Add(new DataColumn { ColumnName = "five", DataType = typeof(string) }); newRow = inputDataTable.NewRow(); newRow["Email"] = "*****@*****.**"; newRow["two"] = "TAG POS = 1 TYPE = INPUT:CHECKBOX FORM = ID:frmMain ATTR = ID:main_0_pagecontent_0_form_E02D05D39F1649C4A29450649B2AAFBF_field_8F931E2FCE2D4FAAA9573A95D44B3B0Dlist_0 CONTENT = YES"; newRow["three"] = "TAG POS = 1 TYPE = INPUT:CHECKBOX FORM = ID:frmMain ATTR = ID:main_0_pagecontent_0_form_E02D05D39F1649C4A29450649B2AAFBF_field_8F931E2FCE2D4FAAA9573A95D44B3B0Dlist_2 CONTENT = YES"; newRow["four"] = ""; newRow["five"] = ""; inputDataTable.Rows.Add(newRow); // output headers (THESE CAN BE GRABBED FROM THE FILE var outputheaders = new List<string>(); outputheaders.Add("EmailAddress"); outputheaders.Add("DataProtectionStatementCode1"); outputheaders.Add("DataProtectionStatementCode2"); outputheaders.Add("DataProtectionStatementCode3"); outputheaders.Add("DataProtectionStatementCode4"); outputheaders.Add("DataProtectionStatementCode5"); var inputHeaders = new List<string>(); inputHeaders.Add("email"); inputHeaders.Add("one"); inputHeaders.Add("two"); inputHeaders.Add("three"); inputHeaders.Add("four"); inputHeaders.Add("five"); var validators = new List<Validator>(); // 'validators' are conditions that should not be, with the key being the expected output value, and the Value being the expected input validators.Add(new Validator("NoContactByText", "TAG POS = 1 TYPE = INPUT:CHECKBOX FORM = ID:frmMain ATTR = ID:main_0_pagecontent_0_form_E02D05D39F1649C4A29450649B2AAFBF_field_8F931E2FCE2D4FAAA9573A95D44B3B0Dlist_2 CONTENT = YES")); validators.Add(new Validator("ContactByPost", "TAG POS = 1 TYPE = INPUT:CHECKBOX FORM = ID:frmMain ATTR = ID:main_0_pagecontent_0_form_E02D05D39F1649C4A29450649B2AAFBF_field_8F931E2FCE2D4FAAA9573A95D44B3B0Dlist_3 CONTENT = YES")); validators.Add(new Validator("ContactByPhone", "TAG POS = 1 TYPE = INPUT:CHECKBOX FORM = ID:frmMain ATTR = ID:main_0_pagecontent_0_form_E02D05D39F1649C4A29450649B2AAFBF_field_8F931E2FCE2D4FAAA9573A95D44B3B0Dlist_1 CONTENT = YES")); validators.Add(new Validator("NoContactByEmail", "TAG POS = 1 TYPE = INPUT:CHECKBOX FORM = ID:frmMain ATTR = ID:main_0_pagecontent_0_form_E02D05D39F1649C4A29450649B2AAFBF_field_8F931E2FCE2D4FAAA9573A95D44B3B0Dlist_0 CONTENT = YES")); validators.Add(new Validator("ContactByThirdParty", "TAG POS = 1 TYPE = INPUT:CHECKBOX FORM = ID:frmMain ATTR = ID:main_0_pagecontent_0_form_E02D05D39F1649C4A29450649B2AAFBF_field_8F931E2FCE2D4FAAA9573A95D44B3B0Dlist_4 CONTENT = YES")); TestType test = new TestType(outputDataTable, inputDataTable, outputheaders, inputHeaders, validators); var classUnderTest = new TestComparer(test); var result = classUnderTest.RunComparison(); Assert.AreEqual(result, false); }