Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }