Exemplo n.º 1
0
        public ChannelVersionRuleTestResult Test(IOctopusRepository repository, ChannelVersionRuleResource rule, string packageVersion)
        {
            if (rule == null)
            {
                // Anything goes if there is no rule defined for this step
                return(ChannelVersionRuleTestResult.Null());
            }

            var link = repository.Client.RootDocument.Link("VersionRuleTest");

            var resource = new
            {
                version       = packageVersion,
                versionRange  = rule.VersionRange,
                preReleaseTag = rule.Tag
            };

            var response = repository.Client.RootDocument.UsePostForChannelVersionRuleTest()
                ? repository.Client.Post <object, ChannelVersionRuleTestResult>(link, resource)
                : repository.Client.Get <ChannelVersionRuleTestResult>(link, resource);

            return(response);
        }
Exemplo n.º 2
0
        public void ActionPackagesAreSerializedIntoLegacyActionsCollection()
        {
            var subject = new ChannelVersionRuleResource
            {
                Tag            = "foo",
                ActionPackages = new List <DeploymentActionPackageResource>
                {
                    new DeploymentActionPackageResource("Action 1"),
                    new DeploymentActionPackageResource("Action 1", "Package 1"),
                    new DeploymentActionPackageResource("Action 2"),
                    new DeploymentActionPackageResource("Action 3", "Package 1"),
                }
            };

            var result = JObject.Parse(JsonSerialization.SerializeObject(subject));

            var expected = JObject.FromObject(new
            {
                VersionRange   = (string)null,
                Tag            = subject.Tag,
                ActionPackages = new object[]
                {
                    new { DeploymentAction = "Action 1", PackageReference = "" },
                    new { DeploymentAction = "Action 1", PackageReference = "Package 1" },
                    new { DeploymentAction = "Action 2", PackageReference = "" },
                    new { DeploymentAction = "Action 3", PackageReference = "Package 1" }
                },
                Links = new {},

                // This is the key part of this test: we are expecting the serialized object to contain an "Actions"
                // collection.  This maintains compatibility with older server
                Actions = new[] { "Action 1", "Action 1:Package 1", "Action 2", "Action 3:Package 1" }
            });

            Assert.True(JToken.DeepEquals(expected, result));
        }
Exemplo n.º 3
0
 public ChannelEditor AddRule(ChannelVersionRuleResource rule)
 {
     Instance.AddRule(rule);
     return(this);
 }
Exemplo n.º 4
0
        public async Task <ChannelVersionRuleTestResult> Test(IOctopusAsyncRepository repository, ChannelVersionRuleResource rule, string packageVersion, string feedId)
        {
            if (rule == null)
            {
                // Anything goes if there is no rule defined for this step
                return(ChannelVersionRuleTestResult.Null());
            }

            var link = await repository.Link("VersionRuleTest").ConfigureAwait(false);

            var resource = new
            {
                version       = packageVersion,
                versionRange  = rule.VersionRange,
                preReleaseTag = rule.Tag,
                feedId
            };

            var response = (await repository.LoadRootDocument().ConfigureAwait(false)).UsePostForChannelVersionRuleTest()
                ? repository.Client.Post <object, ChannelVersionRuleTestResult>(link, resource)
                : repository.Client.Get <ChannelVersionRuleTestResult>(link, resource);

            return(await response.ConfigureAwait(false));
        }