Example #1
0
        public void ToVersionRangeWorksCorrectly(KspVersion version, KspVersionRange expectedRange)
        {
            // Act
            var result = version.ToVersionRange();

            // Assert
            Assert.AreEqual(expectedRange, result);
        }
Example #2
0
 static CompatibleVersionDialog()
 {
     options = ServiceLocator.Container.Resolve <IKspBuildMap>().KnownVersions;
     // C# won't let us foreach over an array while modifying it
     for (int i = options.Count - 1; i >= 0; --i)
     {
         KspVersion v = options[i];
         // From GUI/CompatibleKspVersionsDialog.cs
         KspVersion fullKnownVersion = v.ToVersionRange().Lower.Value;
         KspVersion toAdd            = new KspVersion(fullKnownVersion.Major, fullKnownVersion.Minor);
         if (!options.Contains(toAdd))
         {
             options.Add(toAdd);
         }
     }
 }
Example #3
0
        public override bool SingleVersionsCompatible(KspVersion gameVersion, CkanModule module)
        {
            var gameVersionRange = gameVersion.ToVersionRange();

            var moduleRange = KspVersionRange.Any;

            if (module.ksp_version != null)
            {
                moduleRange = module.ksp_version.ToVersionRange();
            }
            else if (module.ksp_version_min != null || module.ksp_version_max != null)
            {
                if (module.ksp_version_min != null && module.ksp_version_max != null)
                {
                    var minRange = module.ksp_version_min.ToVersionRange();
                    var maxRange = module.ksp_version_max.ToVersionRange();
                    if (minRange.Lower.Value <= maxRange.Upper.Value)
                    {
                        moduleRange = new KspVersionRange(minRange.Lower, maxRange.Upper);
                    }
                    else
                    {
                        log.WarnFormat("{0} is not less or equal to {1}",
                                       module.ksp_version_min, module.ksp_version_max);
                        return(false);
                    }
                }
                else if (module.ksp_version_min != null)
                {
                    var minRange = module.ksp_version_min.ToVersionRange();

                    moduleRange = new KspVersionRange(minRange.Lower, KspVersionBound.Unbounded);
                }
                else if (module.ksp_version_max != null)
                {
                    var maxRange = module.ksp_version_max.ToVersionRange();

                    moduleRange = new KspVersionRange(KspVersionBound.Unbounded, maxRange.Upper);
                }
            }
            else
            {
                return(true);
            }

            return(gameVersionRange.IntersectWith(moduleRange) != null);
        }
Example #4
0
        public bool Compatible(KspVersion gameVersion, CkanModule module)
        {
            var gameVersionRange = gameVersion.ToVersionRange();

            var moduleRange = KspVersionRange.Any;

            if (module.ksp_version != null)
            {
                moduleRange = module.ksp_version.ToVersionRange();
            }
            else if (module.ksp_version_min != null || module.ksp_version_max != null)
            {
                if (module.ksp_version_min != null && module.ksp_version_max != null)
                {
                    if (module.ksp_version_min <= module.ksp_version_max)
                    {
                        var minRange = module.ksp_version_min.ToVersionRange();
                        var maxRange = module.ksp_version_max.ToVersionRange();

                        moduleRange = new KspVersionRange(minRange.Lower, maxRange.Upper);
                    }
                    else
                    {
                        return(false);
                    }
                }
                else if (module.ksp_version_min != null)
                {
                    var minRange = module.ksp_version_min.ToVersionRange();

                    moduleRange = new KspVersionRange(minRange.Lower, KspVersionBound.Unbounded);
                }
                else if (module.ksp_version_max != null)
                {
                    var maxRange = module.ksp_version_max.ToVersionRange();

                    moduleRange = new KspVersionRange(KspVersionBound.Unbounded, maxRange.Upper);
                }
            }
            else
            {
                return(true);
            }

            return(moduleRange.IsSupersetOf(gameVersionRange));
        }