예제 #1
0
        public async Task DeleteNewsShouldThrowException()
        {
            string userId   = "Jack";
            int    newsId   = 101;
            var    mockRepo = new Mock <INewsRepository>();

            mockRepo.Setup(repo => repo.DeleteNews(userId, newsId)).Returns(Task.FromResult(false));
            var service = new NewsService.Services.NewsService(mockRepo.Object);

            var actual = await Assert.ThrowsAsync <NoNewsFoundException>(() => service.DeleteNews(userId, newsId));

            Assert.Equal($"NewsId {newsId} for {userId} doesn't exist", actual.Message);
        }
예제 #2
0
        public async Task FindAllNewsShouldThrowException()
        {
            string      userId   = "Jack";
            List <News> lstnews  = null;
            var         mockRepo = new Mock <INewsRepository>();

            mockRepo.Setup(repo => repo.FindAllNewsByUserId(userId)).Returns(Task.FromResult(lstnews));
            var service = new NewsService.Services.NewsService(mockRepo.Object);

            var actual = await Assert.ThrowsAsync <NoNewsFoundException>(() => service.FindAllNewsByUserId(userId));

            Assert.Equal($"No news found for {userId}", actual.Message);
        }
예제 #3
0
        public async Task FindAllNewsShouldReturnListOfNews()
        {
            string userId   = "Jack";
            var    mockRepo = new Mock <INewsRepository>();

            mockRepo.Setup(repo => repo.FindAllNewsByUserId(userId)).Returns(Task.FromResult(this.newsList));
            var service = new NewsService.Services.NewsService(mockRepo.Object);

            var actual = await service.FindAllNewsByUserId(userId);

            Assert.NotNull(actual);
            Assert.IsAssignableFrom <List <News> >(actual);
            Assert.Equal(2, actual.Count);
        }
예제 #4
0
        public async Task DeleteReminderShouldThrowException()
        {
            string userId = "Sam";
            int    newsId = 101;

            var mockRepo = new Mock <INewsRepository>();

            mockRepo.Setup(repo => repo.IsReminderExists(userId, newsId)).Returns(Task.FromResult(false));
            var service = new NewsService.Services.NewsService(mockRepo.Object);

            var actual = await Assert.ThrowsAsync <NoReminderFoundException>(() => service.DeleteReminder(userId, newsId));

            Assert.Equal("No reminder found for this news", actual.Message);
        }
예제 #5
0
        public async Task DeleteReminderShouldSuccess()
        {
            string userId = "Sam";
            int    newsId = 101;

            var mockRepo = new Mock <INewsRepository>();

            mockRepo.Setup(repo => repo.IsReminderExists(userId, newsId)).Returns(Task.FromResult(true));
            mockRepo.Setup(repo => repo.DeleteReminder(userId, newsId)).Returns(Task.FromResult(true));
            var service = new NewsService.Services.NewsService(mockRepo.Object);

            var actual = await service.DeleteReminder(userId, newsId);

            Assert.True(actual);
        }
예제 #6
0
        public async Task AddNewsShouldThrowException()
        {
            string userId = "Jack";
            News   news   = new News {
                Title = "chandrayaan2-spacecraft", Content = "The Lander of Chandrayaan-2 was named Vikram after Dr Vikram A Sarabhai", PublishedAt = DateTime.Now
            };
            var mockRepo = new Mock <INewsRepository>();

            mockRepo.Setup(repo => repo.IsNewsExist(userId, news.Title)).Returns(Task.FromResult(true));
            var service = new NewsService.Services.NewsService(mockRepo.Object);

            var actual = await Assert.ThrowsAsync <NewsAlreadyExistsException>(() => service.CreateNews(userId, news));

            Assert.Equal($"{userId} have already added this news", actual.Message);
        }
예제 #7
0
        public async Task DeleteNewsShouldSuccess()
        {
            string userId = "Jack";
            int    newsId = 101;
            News   news   = new News {
                NewsId = 101, Title = "IT industry in 2020", Content = "It is expected to have positive growth in 2020.", PublishedAt = DateTime.Now, UrlToImage = null, Url = null
            };
            var mockRepo = new Mock <INewsRepository>();

            mockRepo.Setup(repo => repo.DeleteNews(userId, newsId)).Returns(Task.FromResult(true));
            var service = new NewsService.Services.NewsService(mockRepo.Object);

            var actual = await service.DeleteNews(userId, newsId);

            Assert.True(actual);
        }
예제 #8
0
        public async Task AddOrUpdateReminderShouldThrowException()
        {
            string   userId   = "Sam";
            int      newsId   = 101;
            Reminder reminder = new Reminder {
                Schedule = DateTime.Now.AddDays(2)
            };
            News mockNews = null;

            var mockRepo = new Mock <INewsRepository>();

            mockRepo.Setup(repo => repo.GetNewsById(userId, newsId)).Returns(Task.FromResult(mockNews));
            var service = new NewsService.Services.NewsService(mockRepo.Object);

            var actual = await Assert.ThrowsAsync <NoNewsFoundException>(() => service.AddOrUpdateReminder(userId, newsId, reminder));

            Assert.Equal($"NewsId {newsId} for {userId} doesn't exist", actual.Message);
        }
예제 #9
0
        public async Task AddNewsShouldReturnNews()
        {
            string userId = "Jack";
            News   news   = new News {
                Title = "chandrayaan2-spacecraft", Content = "The Lander of Chandrayaan-2 was named Vikram after Dr Vikram A Sarabhai", PublishedAt = DateTime.Now
            };
            int newsId   = 103;
            var mockRepo = new Mock <INewsRepository>();

            mockRepo.Setup(repo => repo.IsNewsExist(userId, news.Title)).Returns(Task.FromResult(false));
            mockRepo.Setup(repo => repo.CreateNews(userId, news)).Returns(Task.FromResult(newsId));
            var service = new NewsService.Services.NewsService(mockRepo.Object);

            var actual = await service.CreateNews(userId, news);

            Assert.IsAssignableFrom <int>(actual);
            Assert.Equal(103, actual);
        }
예제 #10
0
        public async Task AddOrUpdateReminderShouldSuccess()
        {
            string   userId   = "Sam";
            int      newsId   = 101;
            Reminder reminder = new Reminder {
                Schedule = DateTime.Now.AddDays(2)
            };
            News mockNews = new News {
                NewsId = 101, Title = "chandrayaan2-spacecraft"
            };

            var mockRepo = new Mock <INewsRepository>();

            mockRepo.Setup(repo => repo.GetNewsById(userId, newsId)).Returns(Task.FromResult(mockNews));
            mockRepo.Setup(repo => repo.AddOrUpdateReminder(userId, newsId, reminder)).Returns(Task.FromResult(true));
            var service = new NewsService.Services.NewsService(mockRepo.Object);

            var actual = await service.AddOrUpdateReminder(userId, newsId, reminder);

            Assert.True(actual);
        }