public IWebCrawler <RawData> CreateDetailWebCrawler(int amount)
        {
            var mock = new Mock <IWebCrawler <RawData> >();

            mock
            .Setup(m => m.ExtractAsync(It.IsAny <string>(), It.IsAny <IFilter>()))
            .ReturnsAsync((string source, IFilter filter) => { return(WebCrawlerResultFaker.GetDetailRawDataFakeResult(amount, source, filter)); });

            return(mock.Object);
        }
        public IRawDataRepository MockDetailRawDataRepository(int amount, int innerAmount, string source, IFilter filter)
        {
            var mock = new Mock <IRawDataRepository>();

            mock
            .Setup(m => m.AddAsync(It.IsAny <string>(), It.IsAny <RawData>()));

            mock
            .Setup(m => m.AddIfNotExistsAsync(It.IsAny <string>(), It.IsAny <RawData>()))
            .ReturnsAsync(true);

            mock
            .Setup(m => m.GetAllAsync(It.IsAny <string>()))
            .ReturnsAsync(WebCrawlerResultFaker.ListDetailRawDataFakeResult(amount, innerAmount, source, filter).ToList());


            return(mock.Object);
        }