Exemple #1
0
        public void Test_Entries_Are_In_Date_Order()
        {
            SocialNetworksHub hub = new CleanSocialNetworksHub();
            var peter             = new Contact("Peter");
            var jhon = new Contact("John");
            var mary = new Contact("Mary");

            var fb   = new SocialNetwork("facebook");
            var tw   = new SocialNetwork("twitter");
            var ins  = new SocialNetwork("instagram");
            var tags = new List <string>();

            IEnumerable <Entry> entries = new List <Entry>()
            {
                new Entry("a", "second", peter, DateTime.Now.AddHours(-2), tags, fb),
                new Entry("b", "third", jhon, DateTime.Now.AddHours(-3), tags, tw),
                new Entry("c", "first", mary, DateTime.Now.AddHours(-1), tags, ins)
            };

            SocialNetworkPullCollector returnAllCollector = new ReturnAllPullCollector(entries);

            hub.AddCollector(returnAllCollector);

            DateTime            since      = DateTime.Now.AddHours(-4);
            IEnumerable <Entry> hubEntries = hub.GetEntriesSince(since);

            var first  = hubEntries.Take(1).First();
            var second = hubEntries.Take(2).Last();
            var third  = hubEntries.Last();

            Assert.True("first".Equals(first.Text, StringComparison.InvariantCulture));
            Assert.True("second".Equals(second.Text, StringComparison.InvariantCulture));
            Assert.True("third".Equals(third.Text, StringComparison.InvariantCulture));
        }
Exemple #2
0
        public void Test_Filter_Entries_With_Bad_Words()
        {
            var peter = new Contact("Peter");
            var jhon  = new Contact("John");
            var mary  = new Contact("Mary");

            var fb      = new SocialNetwork("facebook");
            var tw      = new SocialNetwork("twitter");
            var ins     = new SocialNetwork("instagram");
            var badTags = new List <string>()
            {
                "#deadCode", "#complexCode", "#copy-n-paste", "#shortCode"
            };

            var goodTags = new List <string>()
            {
                "#shortCode", "#simpleCode", "#2nestedLevelsMax"
            };

            IEnumerable <Entry> entries = new List <Entry>()
            {
                new Entry("a", "second dead code", peter, DateTime.Now.AddHours(-2), badTags, fb),
                new Entry("b", "third 2000LOC functions", jhon, DateTime.Now.AddHours(-3), badTags, tw),
                new Entry("c", "first Clean Code! Really?", mary, DateTime.Now.AddHours(-1), badTags, ins),
                new Entry("d", "first Clean Code!!!", mary, DateTime.Now.AddHours(-1), goodTags, ins)
            };

            SocialNetworkPullCollector returnAllCollector = new ReturnAllPullCollector(entries);
            EntriesFilter filter = new BadWordsFilter("nestedLoops,deadCode,copy-n-paste".Split(','));

            SocialNetworksHub hub = new CleanSocialNetworksHub();

            hub.AddCollector(returnAllCollector);
            hub.AddFilter(filter);

            DateTime            since      = DateTime.Now.AddHours(-4);
            IEnumerable <Entry> hubEntries = hub.GetEntriesSince(since);

            Assert.AreEqual(1, hubEntries.Count());
            var cleanEntry = hubEntries.First();

            Assert.AreEqual("first Clean Code!!!", cleanEntry.Text);
        }