public void NamespaceControllerVersionDetector_DetectsNoCatControllerVersion()
        {
            // given
            IControllerVersionDetector detector = new DefaultAttributeControllerVersionDetector();
            Type catControllerType = typeof(CatController);

            // when
            ApiVersion version = detector.GetVersion(catControllerType);

            // assert
            Assert.AreSame(UndefinedApiVersion.Instance, version, "Expected a no SemApiVersion instance to be detected");
        }
        public void NamespaceControllerVersionDetector_DetectsNoCatControllerVersion()
        {
            // given
            IControllerVersionDetector detector = new DefaultAttributeControllerVersionDetector();
            Type catControllerType = typeof(CatController);

            // when
            ApiVersion version = detector.GetVersion(catControllerType);

            // assert
            Assert.AreSame(UndefinedApiVersion.Instance, version, "Expected a no SemApiVersion instance to be detected");
        }
        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);
        }
        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);
        }
        public void AttributeControllerVersionDetector_Detects3_5_2VersionByAttribute()
        {
            // given
            IControllerVersionDetector detector = new DefaultAttributeControllerVersionDetector();
            Type catControllerType = typeof(HorseController);

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

            // assert
            Assert.IsNotNull(version, "Expected a SemApiVersion instance to be detected");
            Assert.AreEqual(new Version(1, 5, 2), version.Version, "Expected a version 1.5.2 to be detected");
        }