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); }
public void AddEdge_EdgeParentTweetMustBeSet() { Edge e1 = new Edge(new HashTag(), new HashTag()); Tweet t = new Tweet(); t.AddEdge(e1); Assert.AreSame(t, e1.ParentTweet); }
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); }
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); }
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); }
/// <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); } }