public void MessageNotMatchingBothFiltersReturnsFalse()
        {
            var exporterParameters = new ConversationExporterParameters(null, null, "bob", "pie", null, false);

            Assert.IsFalse(ConversationModifier.IsInFilters(messages[0].timestamp, messages[0].senderId, messages[0].content, exporterParameters));
            Assert.IsFalse(ConversationModifier.IsInFilters(messages[4].timestamp, messages[4].senderId, messages[4].content, exporterParameters));
        }
        public void GeneratingReportWithReportBeingFalseReturnsNull()
        {
            var exporterParameters = new ConversationExporterParameters(null, null, null, null, null, false);

            var activity = ConversationModifier.GenerateReport(messages, exporterParameters);

            Assert.IsNull(activity);
        }
        public void MessageNotContainingFilteredKeywordReturnsFalse()
        {
            var timestamp          = DateTimeOffset.FromUnixTimeSeconds(1448470912);
            var senderID           = "bob";
            var content            = "Hell yes! Are we buying some pie ?";
            var exporterParameters = new ConversationExporterParameters(null, null, null, "null", null, false);

            Assert.IsFalse(ConversationModifier.IsInFilters(timestamp, senderID, content, exporterParameters));
        }
        public void ApplyingBlacklistAppliesBlacklist()
        {
            var content   = "Hell yes! Are we buying some pie ?";
            var blacklist = new string[] { "pie", "yes" };

            content = ConversationModifier.ApplyBlacklist(content, blacklist);

            Assert.AreEqual(content, "Hell \\*redacted\\*! Are we buying some \\*redacted\\* ?");
        }
        public void ApplyingMessageModifiersAppliesMessageModifiers()
        {
            var exporterParameters = new ConversationExporterParameters(null, null, null, "pie", new string[] { "pie" }, false);

            var messagesOutput = ConversationModifier.ApplyMessageModifiers(messages[2].timestamp, messages[2].senderId, messages[2].content, exporterParameters);

            Assert.That(messagesOutput.senderId, Is.EqualTo("bob"));
            Assert.That(messagesOutput.content, Is.EqualTo("I'm good thanks, do you like \\*redacted\\*?"));

            messagesOutput = ConversationModifier.ApplyMessageModifiers(messages[3].timestamp, messages[3].senderId, messages[3].content, exporterParameters);

            Assert.IsNull(messagesOutput);
        }
        public void GeneratingReportGeneratesReport()
        {
            var exporterParameters = new ConversationExporterParameters(null, null, null, null, null, true);

            var activity = ConversationModifier.GenerateReport(messages, exporterParameters);

            Assert.That(activity[0].count, Is.EqualTo(3));
            Assert.That(activity[0].sender, Is.EqualTo("bob"));

            Assert.That(activity[1].count, Is.EqualTo(2));
            Assert.That(activity[1].sender, Is.EqualTo("mike"));

            Assert.That(activity[2].count, Is.EqualTo(1));
            Assert.That(activity[2].sender, Is.EqualTo("angus"));
        }
        public void FilteringByUserAndKeywordFiltersByUserAndKeyword()
        {
            var exporterParameters = new ConversationExporterParameters(null, null, "bob", "Hello", null, false);

            Assert.IsTrue(ConversationModifier.IsInFilters(messages[0].timestamp, messages[0].senderId, messages[0].content, exporterParameters));
        }