public void TestGetDataByDictionaryTopDomain() { TwitterMetrics.Metric metric = new TwitterMetrics.Metric(); metric.domainDict = new ConcurrentDictionary <string, int>(); SampledStreamDTO dto = new SampledStreamDTO { data = new Data { entities = new Entities { hagtags = new List <Hashtag>() } } }; metric.domainDict["Http://TyreeHook.com"] = 2; metric.domainDict["Http://TyreeHooklessValue.com"] = 1; metric.CollecteMetrics(dto); int value = 0; if (metric.GetTopItemByCategory(metric.domainDict) == "Http://TyreeHook.com") { value = 1; } else { value = 0; } Assert.AreEqual(1, value); }
public void TestGetDataByDictionaryTopEmoji() { TwitterMetrics.Metric metric = new TwitterMetrics.Metric(); metric.emojisDict = new ConcurrentDictionary <string, int>(); SampledStreamDTO dto = new SampledStreamDTO { data = new Data { entities = new Entities { hagtags = new List <Hashtag>() } } }; metric.emojisDict[":)"] = 1; metric.CollecteMetrics(dto); int value = 0; if (metric.GetTopItemByCategory(metric.emojisDict) == ":)") { value = 1; } else { value = 0; } Assert.AreEqual(1, value); }
private void TwitterSampleService_IncomingDataEvent(object sender, EventArgs e) { _twitterCount += 1; TwitterSampleService.IncomingDataEventArgs eventArgs = e as TwitterSampleService.IncomingDataEventArgs; SampledStreamDTO model = eventArgs.StreamDataResponse; string jsonString = JsonConvert.SerializeObject(model.data); this.CollecteMetrics(model); }
public void TestGetDataByDictionaryHashTag() { TwitterMetrics.Metric metric = new TwitterMetrics.Metric(); metric.hashTagsDict = new ConcurrentDictionary <string, int>(); metric.urlsDict = new ConcurrentDictionary <string, int>(); metric.photoUrlDict = new ConcurrentDictionary <string, int>(); metric.emojisDict = new ConcurrentDictionary <string, int>(); metric.domainDict = new ConcurrentDictionary <string, int>(); SampledStreamDTO dto = new SampledStreamDTO { data = new Data { entities = new Entities { hagtags = new List <Hashtag>(), urls = new List <Url>() } } }; dto.data.entities.hagtags.Add(new Hashtag { tag = "#itworks" }); dto.data.text = "DataText"; dto.data.entities.urls.Add(new Url { expanded_url = "http://tyreehook.com" }); metric.CollecteMetrics(dto); int value = 0; if (metric.hashTagsDict.ContainsKey("#itworks") && metric.urlsDict.ContainsKey("http://tyreehook.com")) { value = 1; } else { value = 0; } string text = ""; bool result = metric.metricsBag.TryPeek(out text); Assert.AreEqual(text, dto.data.text); Assert.AreEqual(value, 1); }
private void StreamClient_StreamIncomingDataEvent(object sender, EventArgs e) { try { TwitterSampleClient.IncomingTweetEventArgs eventArgs = e as TwitterSampleClient.IncomingTweetEventArgs; SampledStreamDTO resultsDTO = JsonConvert.DeserializeObject <SampledStreamDTO>(eventArgs.StreamDataResponse); // raise event with dto OnIncomingDataEvent(new IncomingDataEventArgs { StreamDataResponse = resultsDTO }); } catch (Exception ex) { throw ex; } }
public void TestGetDataByDictionaryHashTagPrecent() { TwitterMetrics.Metric metric = new TwitterMetrics.Metric(); metric.domainDict = new ConcurrentDictionary <string, int>(); SampledStreamDTO dto = new SampledStreamDTO { data = new Data { entities = new Entities { hagtags = new List <Hashtag>(), urls = new List <Url>() } } }; dto.data.entities.hagtags.Add(new Hashtag { tag = "#itworks" }); dto.data.text = "DataText"; dto.data.entities.urls.Add(new Url { expanded_url = "http://tyreehook.com" }); metric.CollecteMetrics(dto); int value = 0; if (metric.GetPrecentageByCategory(metric.domainDict) == "100") { value = 1; } else { value = 0; } Assert.AreEqual(1, value); }
/// <summary> /// as the incoming gets an event this method is used to populate the control we are using for memory storage /// </summary> /// <param name="model"></param> public void CollecteMetrics(SampledStreamDTO model) { try { if (model != null) { if (model.data != null && model.data.entities != null && model.data.entities.hagtags != null) { foreach (var dictItem in model.data.entities.hagtags) { hashTagsDict.AddOrUpdate(dictItem.tag, 1, (key, oldValue) => oldValue + 1); } } if (model.data.entities != null && model.data.entities.urls != null) { foreach (var dictItem in model.data.entities.urls) { if (dictItem.expanded_url != null) { urlsDict.AddOrUpdate(dictItem.expanded_url, 1, (key, oldValue) => oldValue + 1); } } } if (model.includes != null && model.includes.Media != null) { foreach (var item in model.includes.Media) { if (item.url != null) { photoUrlDict.AddOrUpdate(item.url.AbsoluteUri, 1, (key, oldValue) => oldValue + 1); } } } if (model.data != null && model.data.entities != null && model.data.entities.urls != null && model.data.entities.urls.Count() > 0) { foreach (var item in model.data.entities.urls) { if (item.expanded_url != null) { domainDict.AddOrUpdate(item.expanded_url, 1, (key, oldValue) => oldValue + 1); } } } } if (model.data.text != null && Emoji.IsEmoji(model.data.text)) { emojisDict.AddOrUpdate(model.data.text, 1, (key, oldValue) => oldValue + 1); } metricsBag.Add(model.data.text); } catch (Exception ex) { MessageBox.Show(ex.Message); } }