Пример #1
0
        public async Task CreateAsync_Exception()
        {
            // Arrange
            ReleaseEntity releaseEntity = new ReleaseEntity
            {
                TagName         = "1",
                Name            = "1",
                Body            = "test-app",
                TargetCommitish = "eec136ac2d31cf984d2053df79f181b99c3b4db5"
            };

            List <string> buildStatus = new List <string>();

            buildStatus.Add(BuildStatus.InProgress.ToEnumMemberAttributeValue());
            buildStatus.Add(BuildStatus.NotStarted.ToEnumMemberAttributeValue());

            List <string> buildResult = new List <string>();

            buildResult.Add(BuildResult.Succeeded.ToEnumMemberAttributeValue());

            _releaseRepository.Setup(r => r.Get(
                                         It.IsAny <string>(),
                                         It.IsAny <string>(),
                                         It.IsAny <string>(),
                                         buildStatus,
                                         buildResult)).ReturnsAsync(GetReleases("createdRelease.json"));

            ReleaseService releaseService = new ReleaseService(
                _httpContextAccessor.Object,
                new Mock <IAzureDevOpsBuildClient>().Object,
                _releaseRepository.Object,
                new TestOptionsMonitor <AzureDevOpsSettings>(GetAzureDevOpsSettings()),
                _releaseLogger.Object);

            // Act
            HttpRequestWithStatusException resultException = null;

            try
            {
                await releaseService.CreateAsync(releaseEntity);
            }
            catch (HttpRequestWithStatusException e)
            {
                resultException = e;
            }

            // Assert
            Assert.NotNull(resultException);
            Assert.Equal(HttpStatusCode.Conflict, resultException.StatusCode);
        }
Пример #2
0
        public async Task CreateAsync_OK()
        {
            // Arrange
            ReleaseEntity releaseEntity = new ReleaseEntity
            {
                TagName         = "1",
                Name            = "1",
                Body            = "test-app",
                TargetCommitish = "eec136ac2d31cf984d2053df79f181b99c3b4db5"
            };

            List <string> buildStatus = new List <string>();

            buildStatus.Add(BuildStatus.InProgress.ToEnumMemberAttributeValue());
            buildStatus.Add(BuildStatus.NotStarted.ToEnumMemberAttributeValue());

            List <string> buildResult = new List <string>();

            buildResult.Add(BuildResult.Succeeded.ToEnumMemberAttributeValue());

            _releaseRepository.Setup(r => r.Get(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), buildStatus, buildResult)).ReturnsAsync(new List <ReleaseEntity>());
            _releaseRepository.Setup(r => r.Create(It.IsAny <ReleaseEntity>())).ReturnsAsync(GetReleases("createdRelease.json").First());

            Mock <IAzureDevOpsBuildClient> azureDevOpsBuildClient = new Mock <IAzureDevOpsBuildClient>();

            azureDevOpsBuildClient.Setup(b => b.QueueAsync(It.IsAny <QueueBuildParameters>(), It.IsAny <int>())).ReturnsAsync(GetBuild());

            ReleaseService releaseService = new ReleaseService(
                _httpContextAccessor.Object,
                azureDevOpsBuildClient.Object,
                _releaseRepository.Object,
                new TestOptionsMonitor <AzureDevOpsSettings>(GetAzureDevOpsSettings()),
                _releaseLogger.Object);

            // Act
            ReleaseEntity result = await releaseService.CreateAsync(releaseEntity);

            // Assert
            _releaseRepository.Verify(r => r.Get(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), buildStatus, buildResult), Times.Once);
            _releaseRepository.Verify(r => r.Create(It.IsAny <ReleaseEntity>()), Times.Once);
            azureDevOpsBuildClient.Verify(b => b.QueueAsync(It.IsAny <QueueBuildParameters>(), It.IsAny <int>()), Times.Once);
        }
Пример #3
0
        public async Task CreateAsync_NotStarted_CreatedRelease()
        {
            ReleaseEntity releaseToReturn = CreateReleaseEntity(BuildStatus.NotStarted, BuildResult.None);

            _releaseDbRepoMock.Setup(x => x.GetWithSqlAsync <ReleaseEntity>(It.IsAny <SqlQuerySpec>()))
            .ReturnsAsync(new List <ReleaseEntity> {
                releaseToReturn
            });

            ReleaseEntity releaseEntity = new ReleaseEntity
            {
                TagName = releaseToReturn.TagName,
                App     = releaseToReturn.App,
                Org     = releaseToReturn.Org,
            };
            await _sut.CreateAsync(releaseEntity);

            _azureDevOpsBuildServiceMock.Verify(
                x => x.QueueAsync(It.IsAny <QueueBuildParameters>(), It.IsAny <int>()),
                Times.Never);
            _releaseDbRepoMock.Verify(
                x => x.CreateAsync(It.IsAny <ReleaseEntity>()),
                Times.Never);
        }