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); }
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); }
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() } }
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>(); }