/// <summary>
        /// Gets an API version from attributes
        /// </summary>
        /// <returns></returns>
        protected override ApiVersion GetVersionFromAttributes(IEnumerable<Attribute> controllerAttributes) {
            // ReSharper disable once LoopCanBeConvertedToQuery
            foreach (Attribute attribute in controllerAttributes) {
                ApiVersionAttribute apiVersionAttribute = attribute as ApiVersionAttribute;
                if (apiVersionAttribute != null) {
                    SemVerApiVersion version = new SemVerApiVersion(apiVersionAttribute.Version);
                    return version;
                }
            }

            return UndefinedApiVersion.Instance;
        }
        public void NamespaceControllerVersionDetector_DetectsCatControllerVersion()
        {
            // given
            IControllerVersionDetector detector = new DefaultAttributeControllerVersionDetector();
            Type catControllerType = typeof(CatControllerInVersionNamespace);

            // when
            SemVerApiVersion version = detector.GetVersion(catControllerType) as SemVerApiVersion;

            // assert
            Assert.IsNotNull(version, "Expected a SemApiVersion instance to be detected");
            Assert.AreEqual(new Version(6, 5, 3, 2), version.Version);
        }
Пример #3
0
        public void NamespaceControllerVersionDetector_DetectsCatControllerVersion_InTwoPartVersionNamespace()
        {
            // given
            IControllerVersionDetector detector = new DefaultControllerVersionDetector();
            Type catControllerType = typeof(VersionTwoDotFiveController);

            // when
            SemVerApiVersion version = detector.GetVersion(catControllerType) as SemVerApiVersion;

            // assert
            Assert.IsNotNull(version, "Expected a SemApiVersion instance to be detected");
            Assert.AreEqual(new Version(2, 5), version.Version);
        }
Пример #4
0
        /// <summary>
        /// Gets an API version from attributes
        /// </summary>
        /// <returns></returns>
        protected override ApiVersion GetVersionFromAttributes(IEnumerable <Attribute> controllerAttributes)
        {
            // ReSharper disable once LoopCanBeConvertedToQuery
            foreach (Attribute attribute in controllerAttributes)
            {
                ApiVersionAttribute apiVersionAttribute = attribute as ApiVersionAttribute;
                if (apiVersionAttribute != null)
                {
                    SemVerApiVersion version = new SemVerApiVersion(apiVersionAttribute.Version);
                    return(version);
                }
            }

            return(UndefinedApiVersion.Instance);
        }
        public void DefaultRouteKeyRequestControllerVersionDetector_ReturnsControllerVersion_FromDoubleVersionRequest()
        {
            // given
            const string controllerVersion = "3.93";

            IRequestVersionDetector nameDetector = new DefaultRouteKeyVersionDetector();
            HttpRequestMessage      msg          = new HttpRequestMessage();

            msg.Properties[RouteContextKey] = GetMockingRouteData(new Dictionary <string, object>()
            {
                {
                    "version",
                    controllerVersion
                }
            });

            // when
            SemVerApiVersion semVerApiVersion = nameDetector.GetVersion(msg) as SemVerApiVersion;

            // then
            Assert.IsNotNull(semVerApiVersion, "Expected version number to be detected");
            Assert.AreEqual(new Version(3, 93), semVerApiVersion.Version);
        }