public virtual bool Initialize(string text)
        {
            var parts = text.Split(' ', StringSplitOptions.RemoveEmptyEntries);

            if (parts.Length != 3)
            {
                Logger.Error($"Couldn't parse assembly constraint '{text}'");

                return(false);
            }

            if (!VersionedText.TryParseSemanticVersion(parts[2], out var version, Logger))
            {
                return(false);
            }

            Assembly   = parts[0];
            Version    = version;
            Constraint = parts[1] switch
            {
                "==" => VersionConstraint.EqualTo,
                "<=" => VersionConstraint.Maximum,
                ">=" => VersionConstraint.Minimum,
                ">" => VersionConstraint.GreaterThan,
                "<" => VersionConstraint.LessThan,
                _ => VersionConstraint.Undefined
            };

            return(true);
        }
        public void parse_min_and_max()
        {
            var constraint = VersionConstraint.Parse("Current,NextMinor");

            constraint.Min.ShouldEqual(VersionToken.Current);
            constraint.Max.ShouldEqual(VersionToken.NextMinor);
        }
        public void parse_only_a_min_value()
        {
            var constraint = VersionConstraint.Parse("Current");

            constraint.Min.ShouldEqual(VersionToken.Current);
            constraint.Max.ShouldBeNull();
        }
        public void spec_for_min()
        {
            var version    = new SemanticVersion("1.1.0.0");
            var constraint = VersionConstraint.Parse("Current");
            var spec       = constraint.SpecFor(version);

            spec.MinVersion.ShouldEqual(version);
            spec.IsMinInclusive.ShouldBeTrue();

            spec.MaxVersion.ShouldBeNull();
        }
Esempio n. 5
0
        public void AcceptTrueWhenDisableVersioningTrue()
        {
            var acc = MockHelpers.HttpContext(ctx =>
            {
                ctx.Setup(x => x.RequestServices.GetService(typeof(IOptions <ApiExtensionOptions>))).Returns <object>(x => new TestApiExtensionOptions(new ApiExtensionOptions {
                    DisableVersioning = false
                }));
            }).ActionConstraintContext();
            var versions = new VersionConstraint(new string[] { "v1" });

            Assert.False(versions.Accept(acc));
        }
        public void spec_for_min_and_max()
        {
            var version    = new SemanticVersion("1.1.0.0");
            var constraint = VersionConstraint.Parse("Current,NextMajor");
            var spec       = constraint.SpecFor(version);

            spec.MinVersion.ShouldEqual(version);
            spec.IsMinInclusive.ShouldBeTrue();

            spec.MaxVersion.ShouldEqual(new SemanticVersion("2.0.0.0"));
            spec.IsMaxInclusive.ShouldBeFalse();
        }
Esempio n. 7
0
        public void AcceptFalseWhenDisableVersioningFalseAndInValid()
        {
            var acc = MockHelpers.HttpContext(ctx =>
            {
                ctx.Setup(x => x.RequestServices.GetService(typeof(IOptions <ApiExtensionOptions>))).Returns <object>(x => new TestApiExtensionOptions(new ApiExtensionOptions {
                    DisableVersioning = false
                }));
            }).ActionConstraintContext();

            acc.RouteContext.RouteData.Values["apiVersion"] = "v2";

            var versions = new VersionConstraint(new string[] { "v1" });

            Assert.False(versions.Accept(acc));
        }
Esempio n. 8
0
        public override object Convert(IPropertyContext context)
        {
            var data = context.RawValueFromRequest == null ? null : context.RawValueFromRequest.RawValue as string;

            return(data.IsEmpty() ? null : VersionConstraint.Parse(data));
        }
 public NuspecDependencyToken(Dependency dependency, SemanticVersion version, VersionConstraint constraint)
 {
     Constraint = constraint;
     Version    = version;
     Dependency = dependency;
 }
 public NuspecDependencyToken(string dependency, SemanticVersion version, VersionConstraint constraint)
     : this(new Dependency(dependency), version, constraint)
 {
 }