Example #1
0
        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);
        }
Example #2
0
        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);
        }
Example #3
0
        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());
        }
Example #4
0
        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);
        }