public async Task ThrowInvalidOperationException_When_MoreThanOneTestRunExistForProvidedTestRunId_AndStatus(TestRunStatus status)
        {
            // Arrange
            var testRuns = TestRunFactory.CreateMany(_testRunId);

            _testRunRepositoryMock.Setup(x => x.GetAllAsync()).Returns(Task.FromResult(testRuns));

            // Act
            var action = new TestDelegate(() => _testRunProvider.CompleteTestRunAsync(_testRunId, status));

            // Assert
            Assert.That(action, Throws.Exception.TypeOf <InvalidOperationException>());
        }
        public async Task ShouldUpdateTestRunStatusToProvidedValue_When_OneTestRunExistForProvidedTestRunId_AndOtherTestRunsExists_AndStatus(TestRunStatus status)
        {
            // Arrange
            var currentTestRun = TestRunFactory.CreateSingleInProgress(_testRunId);
            var otherTestRuns  = TestRunFactory.CreateMany();

            _testRunRepositoryMock.Setup(x => x.GetAllAsync()).Returns(Task.FromResult(currentTestRun.Union(otherTestRuns)));

            // Act
            _testRunProvider.CompleteTestRunAsync(_testRunId, status);

            // Assert
            _testRunRepositoryMock.Verify(x => x.UpdateAsync(It.IsAny <int>(), It.Is <TestRunDto>(i => i.TestRunId == _testRunId && i.Status == status)), Times.Once);
            _testRunRepositoryMock.Verify(x => x.UpdateAsync(It.IsAny <int>(), It.IsAny <TestRunDto>()), Times.Once);
        }