public void Passes_FailuresAllUpdated() { var inputFile = @"Resource,ResourcePrimaryKey,ProblemField,ProblemValue,PartWords,PartClassifications,PartOffsets FunBooks.HappyOzz,1.2.3,Narrative,We aren't in Kansas anymore Toto,Kansas###Toto,Location###Location,13###28"; var fi = Path.Combine(TestContext.CurrentContext.WorkDirectory, "myfile.csv"); File.WriteAllText(fi, inputFile); var fiOut = Path.Combine(TestContext.CurrentContext.WorkDirectory, "out.csv"); //cleanup any remnant whitelist or redlists var fiWhitelist = Path.Combine(TestContext.CurrentContext.WorkDirectory, IgnoreRuleGenerator.DefaultFileName); var fiRedlist = Path.Combine(TestContext.CurrentContext.WorkDirectory, RowUpdater.DefaultFileName); if (File.Exists(fiWhitelist)) { File.Delete(fiWhitelist); } if (File.Exists(fiRedlist)) { File.Delete(fiRedlist); } //add a redlist to UPDATE these File.WriteAllText(fiRedlist, @" - Action: Ignore IfColumn: Narrative IfPattern: ^We\ aren't\ in\ Kansas\ anymore\ Toto$"); var reviewer = new UnattendedReviewer(new IsIdentifiableReviewerOptions() { FailuresCsv = fi, UnattendedOutputPath = fiOut, OnlyRules = true //prevents it going to the database }, new Target(), new IgnoreRuleGenerator(), new RowUpdater()); Assert.AreEqual(0, reviewer.Run()); //it matches the UPDATE rule but since OnlyRules is true it didn't actually update the database! so the record should definitely be in the output TestHelpers.AreEqualIgnoringCaseAndLineEndings(@"Resource,ResourcePrimaryKey,ProblemField,ProblemValue,PartWords,PartClassifications,PartOffsets FunBooks.HappyOzz,1.2.3,Narrative,We aren't in Kansas anymore Toto,Kansas###Toto,Location###Location,13###28", File.ReadAllText(fiOut).TrimEnd()); Assert.AreEqual(1, reviewer.Total); Assert.AreEqual(0, reviewer.Ignores); Assert.AreEqual(1, reviewer.Unresolved); Assert.AreEqual(0, reviewer.Updates); }
public void Passes_FailuresAllIgnored(bool rulesOnly) { var inputFile = @"Resource,ResourcePrimaryKey,ProblemField,ProblemValue,PartWords,PartClassifications,PartOffsets FunBooks.HappyOzz,1.2.3,Narrative,We aren't in Kansas anymore Toto,Kansas###Toto,Location###Location,13###28"; var fi = Path.Combine(TestContext.CurrentContext.WorkDirectory, "myfile.csv"); File.WriteAllText(fi, inputFile); var fiOut = Path.Combine(TestContext.CurrentContext.WorkDirectory, "out.csv"); //cleanup any remnant whitelist or redlists var fiWhitelist = Path.Combine(TestContext.CurrentContext.WorkDirectory, IgnoreRuleGenerator.DefaultFileName); var fiRedlist = Path.Combine(TestContext.CurrentContext.WorkDirectory, RowUpdater.DefaultFileName); if (File.Exists(fiWhitelist)) { File.Delete(fiWhitelist); } if (File.Exists(fiRedlist)) { File.Delete(fiRedlist); } //add a whitelist to ignore these File.WriteAllText(fiWhitelist, @" - Action: Ignore IfColumn: Narrative IfPattern: ^We\ aren't\ in\ Kansas\ anymore\ Toto$"); var reviewer = new UnattendedReviewer(new IsIdentifiableReviewerOptions() { FailuresCsv = fi, UnattendedOutputPath = fiOut, OnlyRules = rulesOnly }, new Target(), new IgnoreRuleGenerator(), new RowUpdater()); Assert.AreEqual(0, reviewer.Run()); //headers only since whitelist eats the rest StringAssert.AreEqualIgnoringCase(@"Resource,ResourcePrimaryKey,ProblemField,ProblemValue,PartWords,PartClassifications,PartOffsets", File.ReadAllText(fiOut).TrimEnd()); Assert.AreEqual(1, reviewer.Total); Assert.AreEqual(1, reviewer.Ignores); Assert.AreEqual(0, reviewer.Unresolved); Assert.AreEqual(0, reviewer.Updates); }
public void Passes_NoFailures() { var fi = Path.Combine(TestContext.CurrentContext.WorkDirectory, "myfile.csv"); File.WriteAllText(fi, "fff"); var fiOut = Path.Combine(TestContext.CurrentContext.WorkDirectory, "out.csv"); var reviewer = new UnattendedReviewer(new IsIdentifiableReviewerOptions() { FailuresCsv = fi, UnattendedOutputPath = fiOut }, new Target(), new IgnoreRuleGenerator(), new RowUpdater()); Assert.AreEqual(0, reviewer.Run()); //just the headers StringAssert.AreEqualIgnoringCase("Resource,ResourcePrimaryKey,ProblemField,ProblemValue,PartWords,PartClassifications,PartOffsets", File.ReadAllText(fiOut).TrimEnd()); }
public void Passes_FailuresAllUnprocessed() { var inputFile = @"Resource,ResourcePrimaryKey,ProblemField,ProblemValue,PartWords,PartClassifications,PartOffsets FunBooks.HappyOzz,1.2.3,Narrative,We aren't in Kansas anymore Toto,Kansas###Toto,Location###Location,13###28"; var fi = Path.Combine(TestContext.CurrentContext.WorkDirectory, "myfile.csv"); File.WriteAllText(fi, inputFile); var fiOut = Path.Combine(TestContext.CurrentContext.WorkDirectory, "out.csv"); //cleanup any remnant whitelist or redlists var fiWhitelist = Path.Combine(TestContext.CurrentContext.WorkDirectory, IgnoreRuleGenerator.DefaultFileName); var fiRedlist = Path.Combine(TestContext.CurrentContext.WorkDirectory, RowUpdater.DefaultFileName); if (File.Exists(fiWhitelist)) { File.Delete(fiWhitelist); } if (File.Exists(fiRedlist)) { File.Delete(fiRedlist); } var reviewer = new UnattendedReviewer(new IsIdentifiableReviewerOptions() { FailuresCsv = fi, UnattendedOutputPath = fiOut }, new Target(), new IgnoreRuleGenerator(), new RowUpdater()); Assert.AreEqual(0, reviewer.Run()); //all that we put in is unprocessed so should come out the same TestHelpers.AreEqualIgnoringCaseAndLineEndings(inputFile, File.ReadAllText(fiOut).TrimEnd()); Assert.AreEqual(1, reviewer.Total); Assert.AreEqual(0, reviewer.Ignores); Assert.AreEqual(1, reviewer.Unresolved); Assert.AreEqual(0, reviewer.Updates); }