예제 #1
0
        public void DuplicateHashtagIsFoundTwice()
        {
            // Arrange
            const string text = "#test #test";

            // Act
            var hashtags = EntityParser.ExtractHashtags(text);

            // Assert
            Assert.AreEqual(2, hashtags.Count);
            Assert.IsTrue(hashtags.All(t => t.Tag == "test"));
        }
예제 #2
0
        public void HashtagsInMiddleAreCorrectlyExtracted()
        {
            // Arrange
            const string text = "Hello #World this is a test";

            // Act
            var hashtags = EntityParser.ExtractHashtags(text);

            // Assert
            Assert.AreEqual(1, hashtags.Count);

            var tag = hashtags.First();

            Assert.AreEqual(6, tag.Start);
            Assert.AreEqual(12, tag.End);
            Assert.AreEqual("World", tag.Tag);
        }
예제 #3
0
        public void HashtagAtStartIsCorrectlyExtracted()
        {
            // Arrange
            const string text = "#Hello World!";

            // Act
            var hashtags = EntityParser.ExtractHashtags(text);

            // Assert
            Assert.AreEqual(1, hashtags.Count);

            var tag = hashtags.First();

            Assert.AreEqual(0, tag.Start);
            Assert.AreEqual(6, tag.End);
            Assert.AreEqual("Hello", tag.Tag);
        }
예제 #4
0
        public ScheduleItem(SchedulerJob job, UserViewModel user, IScheduler scheduler, IConfig config, IViewServiceRepository viewServices)
            : base(config, viewServices)
        {
            Job          = job;
            User         = user;
            Scheduler    = scheduler;
            ViewServices = viewServices;

            Entities = new Entities
            {
                HashTagEntities     = EntityParser.ExtractHashtags(job.Text),
                MediaEntities       = new List <MediaEntity>(),
                SymbolEntities      = new List <SymbolEntity>(),
                UrlEntities         = new List <UrlEntity>(),
                UserMentionEntities = EntityParser.ExtractMentions(job.Text)
            };
        }
예제 #5
0
        public ScheduleItem(SchedulerJob job, UserViewModel user, IScheduler scheduler, IConfig config, IViewServiceRepository viewServices)
            : base(config, viewServices)
        {
            Job          = job;
            User         = user;
            Scheduler    = scheduler;
            ViewServices = viewServices;

            Entities = new Entities
            {
                HashTagEntities     = EntityParser.ExtractHashtags(job.Text),
                MediaEntities       = new List <MediaEntity>(),
                SymbolEntities      = new List <SymbolEntity>(),
                UrlEntities         = new List <UrlEntity>(),
                UserMentionEntities = EntityParser.ExtractMentions(job.Text)
            };

            BlockUserCommand  = new LogMessageCommand("Tried to block user from ScheduleItem", LogLevel.Warn);
            ReportSpamCommand = new LogMessageCommand("Tried to report user from ScheduleItem", LogLevel.Warn);
        }
예제 #6
0
        public void MultipleHashtagsAreCorrectlyExtracted()
        {
            // Arrange
            const string text = "Hello #World this #is a test";

            // Act
            var hashtags = EntityParser.ExtractHashtags(text);

            // Assert
            Assert.AreEqual(2, hashtags.Count);

            var tag = hashtags.First();

            Assert.AreEqual(6, tag.Start);
            Assert.AreEqual(12, tag.End);
            Assert.AreEqual("World", tag.Tag);

            tag = hashtags.Last();
            Assert.AreEqual(18, tag.Start);
            Assert.AreEqual(21, tag.End);
            Assert.AreEqual("is", tag.Tag);
        }