public async Task DeleteByIdAsync_WithCorrectData_ShouldSuccessfullyDelete()
        {
            var testTitle = "TestTitle";

            // Arrange
            var context = ApplicationDbContextInMemoryFactory.InitializeContext();
            var topicReportRepository = new EfDeletableEntityRepository <TopicReport>(context);
            var topicReportsService   = new TopicReportsService(topicReportRepository);

            var inputModel = new CreateTopicReportInputModel()
            {
                Title       = "TestTitle",
                Description = "TestDescription",
            };

            await topicReportsService.SendAsync(inputModel);

            var topicReport = topicReportRepository.All().FirstOrDefault(c => c.Title == testTitle);

            // Act
            var expectedTopicReportsCount = 0;
            await topicReportsService.DeleteByIdAsync(topicReport.Id);

            var actualCommentsCount = topicReportRepository.All().Count();

            // Assert
            Assert.Equal(expectedTopicReportsCount, actualCommentsCount);
        }
        public async Task DeleteByIdAsync_WithIncorrectData_ShouldThrowArgumentNullException(string incorrectId)
        {
            // Arrange
            var context = ApplicationDbContextInMemoryFactory.InitializeContext();
            var topicReportRepository = new EfDeletableEntityRepository <TopicReport>(context);
            var topicReportsService   = new TopicReportsService(topicReportRepository);

            // Act

            // Assert
            await Assert.ThrowsAsync <ArgumentException>(async() =>
            {
                await topicReportsService.DeleteByIdAsync(incorrectId);
            });
        }
        public async Task SendAsync_ShouldSuccessfullyCreateTopicReport()
        {
            // Arrange
            var context = ApplicationDbContextInMemoryFactory.InitializeContext();
            var topicReportRepository = new EfDeletableEntityRepository <TopicReport>(context);
            var topicReportsService   = new TopicReportsService(topicReportRepository);

            var inputModel = new CreateTopicReportInputModel()
            {
                Title       = "TestTitle",
                Description = "TestDescription",
            };

            // Act
            var expectedTopicReportsCount = 1;
            await topicReportsService.SendAsync(inputModel);

            var actualTopicReportsCount = topicReportRepository.All().Count();

            // Assert
            Assert.Equal(expectedTopicReportsCount, actualTopicReportsCount);
        }