public void BugService_When_OpenBugIsCalledWithABugWithMissingMandatoryData_Then_ApplicationExceptionIsThrown()
        {
            var bug = new Bug();

            var service = new BugService(_repository.Object);

            Assert.ThrowsAsync <ApplicationException>(() => service.OpenBug(bug));
        }
        public async void BugService_When_OpenBugIsCalledWithABugWithMandatoryDataAndRepositoryReturnsFalse_Then_ReturnsFalse()
        {
            var bug = new Bug {
                Title = "Test Bug", Description = "Test description"
            };

            _repository.Setup(_ => _.Create(bug)).ReturnsAsync(false);
            var service = new BugService(_repository.Object);

            var result = await service.OpenBug(bug);

            Assert.False(result);
        }
        public async void BugService_When_OpenBugIsCalledWithABugWithMandatoryData_Then_ReturnsTrue()
        {
            var bug = new Bug {
                Title = "Test Bug", Description = "Test description"
            };

            _repository.Setup(_ => _.Create(bug)).ReturnsAsync(true);
            var service = new BugService(_repository.Object);

            var result = await service.OpenBug(bug);

            Assert.Equal(Status.Opened, bug.Status);
            Assert.NotEqual(DateTime.MinValue, bug.ReportedOn);
            Assert.True(result);
        }