Ejemplo n.º 1
0
        public void AddExistingEdge_MustIgnore()
        {
            Edge e1 = new Edge(new HashTag(), new HashTag());

            Tweet t = new Tweet();
            t.AddEdge(e1);
            t.AddEdge(e1);

            int expectecEdgeCount = 1;

            Assert.AreEqual<int>(expectecEdgeCount, t.Edges.Length);
        }
Ejemplo n.º 2
0
        public void AddEdge_EdgeParentTweetMustBeSet()
        {
            Edge e1 = new Edge(new HashTag(), new HashTag());

            Tweet t = new Tweet();
            t.AddEdge(e1);

            Assert.AreSame(t, e1.ParentTweet);
        }
Ejemplo n.º 3
0
        public void RemoveEdge()
        {
            Edge e1 = new Edge(new HashTag(), new HashTag());

            Tweet t = new Tweet();
            t.AddEdge(e1);
            t.RemoveEdge(e1);

            int expectecEdgeCount = 0;

            Assert.AreEqual<int>(expectecEdgeCount, t.Edges.Length);
        }
Ejemplo n.º 4
0
        public void AddSameEdgeToTwoTweets_EdgeParentTweetMustBeTheLastOne()
        {
            Edge e1 = new Edge(new HashTag(), new HashTag());

            Tweet t = new Tweet();
            t.AddEdge(e1);

            Tweet t2 = new Tweet();
            t2.AddEdge(e1);

            Assert.AreSame(t2, e1.ParentTweet);
        }
Ejemplo n.º 5
0
        public void Dispose_MustRemoveAllItsEdges()
        {
            Edge e1 = new Edge(new HashTag(), new HashTag());

            Tweet t = new Tweet();
            t.AddEdge(e1);

            t.Dispose();

            int expectedSiblingCount = 0;

            Assert.AreEqual<int>(expectedSiblingCount, e1.Left.Siblings.Length);
            Assert.AreEqual<int>(expectedSiblingCount, e1.Right.Siblings.Length);
        }
Ejemplo n.º 6
0
        /// <summary>
        /// Process hashtags and their relational graph in a tweet
        /// </summary>
        /// <param name="tweet">Tweet to be processed</param>
        /// <param name="tweetText">The cleaned-up ASCII string of the tweet.</param>
        private static void ProcessHashtagData(Tweet tweet, string tweetText)
        {
            //Extract hashtags from tweet text
            var hashtags = Regex.Matches(tweetText, @"(\b|\s)?#\w+");

            foreach (Match tag in hashtags)
            {
                HashTag hashTag = null;
                string strHashtagName = tag.Value.Trim().ToLower();

                if (!_dicHashtagNameMappings.TryGetValue(strHashtagName, out hashTag))
                {
                    hashTag = new HashTag()
                    {
                        Name = strHashtagName
                    };

                    _dicHashtagNameMappings.Add(strHashtagName, hashTag);
                }

                foreach (var t in tweet.HashTags)
                {
                    if (t != hashTag)
                    {
                        Edge newEdge = new Edge(t, hashTag);
                        tweet.AddEdge(newEdge);

                        Edge edExisting = null;

                        if (_dicEdgeIdMappings.TryGetValue(newEdge.Id, out edExisting))
                            _dicEdgeIdMappings[newEdge.Id] = newEdge;
                        else
                            _dicEdgeIdMappings.Add(newEdge.Id, newEdge);
                    }
                }

                tweet.HashTags.Add(hashTag);
            }
        }