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); }
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)); }
public ChannelEditor AddRule(ChannelVersionRuleResource rule) { Instance.AddRule(rule); return(this); }
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)); }