public async Task GetIndivisualWordsCount_Should_Return_WordCount_From_The_Cache() { // // Arrange. // const string BookName = "MockBookName.txt"; Mock <IWebApiProcessor> mockWebApiProcessor = new Mock <IWebApiProcessor>(); Mock <IMemoryCacheWrapper> mockCache = new Mock <IMemoryCacheWrapper>(); IEnumerable <WordOccurance> wordCount = this.GetWordOccurances(); mockCache.Setup(cache => cache.TryGetValue(BookName, out wordCount)).Returns(true); ITextProcessor textProcessor = new TextProcessor(); IWebApiManager processor = new LoyalBooksWebApiManager(mockWebApiProcessor.Object, mockCache.Object, textProcessor, null); // // Act. // IEnumerable <WordOccurance> result = await processor.GetIndivisualWordsCount(BookName); // // Assert. // Assert.AreEqual(result.Count(item => item.PrimeNumberStatus == "Unit"), 1); Assert.AreEqual(result.FirstOrDefault(item => item.Word == "WordNumber15").Count, 15); }
public async Task GetIndivisualWordsCount_Should_Retunr_WordCount_By_Not_Using_Cache_At_All() { // // Arrange. // const string BookName = "MockBookName.txt"; string bookText = "one's, and's two's two, three.Three/three?three///I'm Number THREE, four four four four!Five's."; IEnumerable <WordOccurance> wordCount = null; Mock <IWebApiProcessor> mockWebApiProcessor = new Mock <IWebApiProcessor>(); mockWebApiProcessor.Object.WebLocation = "WebServerName"; mockWebApiProcessor.Object.ApiPath = "ResourceUrl"; // string webPath = string.Format("{0}{1}", mockWebApiProcessor.Object.WebLocation, mockWebApiProcessor.Object.ApiPath); mockWebApiProcessor.Setup(x => x.GetStringAsync()).Returns(Task.FromResult(bookText)); Mock <IMemoryCacheWrapper> mockCache = new Mock <IMemoryCacheWrapper>(); mockCache.Setup(cache => cache.TryGetValue(It.IsAny <string>(), out bookText)).Returns(false); mockCache.Setup(cache => cache.TryGetValue(BookName, out wordCount)).Returns(false); ITextProcessor textProcessor = new TextProcessor(); IWebApiManager processor = new LoyalBooksWebApiManager(mockWebApiProcessor.Object, mockCache.Object, textProcessor, null); // // Act. // IEnumerable <WordOccurance> result = await processor.GetIndivisualWordsCount(BookName); // // Assert. // Assert.AreEqual(result.FirstOrDefault(item => item.Word == "FOUR").Count, 4); Assert.AreEqual(result.FirstOrDefault(item => item.Word == "THREE").Count, 5); Assert.AreEqual(result.FirstOrDefault(item => item.Word == "FIVE'S").Count, 1); Assert.AreEqual(result.FirstOrDefault(item => item.Word == "TWO'S").Count, 1); Assert.AreEqual(result.FirstOrDefault(item => item.Word == "TWO").Count, 1); }