Esempio n. 1
0
        public void ComparerTest_Glob_MoreRecentImageVsCurrentImage()
        {
            // setup
            var x = new DeploymentWorkflowService(
                GetLogger <DeploymentWorkflowService>(),
                MockOf <IContainerImageMetadataService>(),
                MockOf <IApplicationService>(),
                Mock.Of <IApplicationImageInstanceService>(),
                MockOf <IDeploymentService>(),
                MockOf <IDeploymentQueueService>(),
                Mock.Of <IGitHubClient>()

                );

            var currentImage   = new ContainerImage("testapp", "develop-123", DateTimeOffset.Now.AddDays(-1));
            var expectedResult = new ContainerImage("testapp", "develop-256", DateTimeOffset.Now);

            var imagePolicy = new GlobImageUpdatePolicy("develop-*");

            var comparer = x.GetContainerImageComparer(imagePolicy);

            // test
            var compare = comparer.Compare(currentImage, expectedResult);

            // verify
            compare.Should().BeLessThan(0);
        }
Esempio n. 2
0
        public void GetLatestTagMatchingPolicy_PositiveTest()
        {
            // setup
            var x = new DeploymentWorkflowService(
                GetLogger <DeploymentWorkflowService>(),
                MockOf <IContainerImageMetadataService>(),
                MockOf <IApplicationService>(),
                Mock.Of <IApplicationImageInstanceService>(),
                MockOf <IDeploymentService>(),
                MockOf <IDeploymentQueueService>(),
                Mock.Of <IGitHubClient>()
                );

            var imagePolicy = new GlobImageUpdatePolicy("develop-*");

            var expectedResult = new ContainerImage("testapp", "develop-256", DateTimeOffset.Now);
            var images         = new[]
            {
                new ContainerImage("testapp", "master-123", DateTimeOffset.Now),
                new ContainerImage("testapp", "develop-123", DateTimeOffset.Now.AddDays(-1)),
                expectedResult,
            };

            // test
            var actualResult = x.GetLatestTagMatchingPolicy(images, imagePolicy);

            // verify
            actualResult.Should().BeEquivalentTo(expectedResult);
        }
Esempio n. 3
0
 internal static ApplicationImageDto ConvertApplicationImageToApplicationServiceDto(ApplicationImage image)
 {
     var imagePreviewReleaseConfig = image.DeploymentSettings.PreviewReleases;
     var previewReleaseSettingsDto = imagePreviewReleaseConfig.Enabled
         ? new PreviewReleaseSettingsDto()
     {
         Enabled      = true,
         UpdatePolicy = imagePreviewReleaseConfig.Policy switch
         {
             GlobImageUpdatePolicy globImageUpdatePolicy => new ImageUpdatePolicyDto()
             {
                 Glob = new GlobImageUpdatePolicyDto()
                 {
                     Pattern = globImageUpdatePolicy.Pattern
                 }
             },
             RegexImageUpdatePolicy regexImageUpdatePolicy => new ImageUpdatePolicyDto()
             {
                 Regex = new RegexImageUpdatePolicyDto()
                 {
                     Pattern = regexImageUpdatePolicy.Pattern
                 }
             },
             SemverImageUpdatePolicy semverImageUpdatePolicy => new ImageUpdatePolicyDto()
             {
                 Semver = new SemverImageUpdatePolicyDto()
                 {
                     Constraint = semverImageUpdatePolicy.Constraint
                 }
             },
             _ => throw new ArgumentOutOfRangeException()
         }
     }
Esempio n. 4
0
        public void GetLatestTagMatchingPolicy_EmptyImageList()
        {
            // setup
            var x = new DeploymentWorkflowService(
                GetLogger <DeploymentWorkflowService>(),
                MockOf <IContainerImageMetadataService>(),
                MockOf <IApplicationService>(),
                Mock.Of <IApplicationImageInstanceService>(),
                MockOf <IDeploymentService>(),
                MockOf <IDeploymentQueueService>(),
                Mock.Of <IGitHubClient>()

                );

            var imagePolicy = new GlobImageUpdatePolicy("develop-*");

            // test
            Action func = () => x.GetLatestTagMatchingPolicy(new ContainerImage[] { }, imagePolicy);

            // verify
            func.Should().Throw <InvalidOperationException>();
        }