Example #1
0
        public void MajorVersionHasToBeInt(string version)
        {
            var versionStringParser = new VersionStringParser();
            var parsedVersion       = versionStringParser.Parse(version);

            Assert.NotNull(parsedVersion);
            Assert.IsFalse(parsedVersion.IsValid);
            Assert.AreEqual(parsedVersion.InvalidReason, "Major version has to be Int");
        }
Example #2
0
        public void WillReturnNull(string version)
        {
            var versionStringParser = new VersionStringParser();
            var parsedVersion       = versionStringParser.Parse(version);

            Assert.NotNull(parsedVersion);
            Assert.IsFalse(parsedVersion.IsValid);
            Assert.AreEqual(parsedVersion.InvalidReason, "Input is empty");
        }
Example #3
0
        public void WillReturnInvalid(string version)
        {
            var versionStringParser = new VersionStringParser();
            var parsedVersion       = versionStringParser.Parse(version);

            Assert.NotNull(parsedVersion);
            Assert.IsFalse(parsedVersion.IsValid);
            Assert.AreEqual(parsedVersion.InvalidReason, "Post split length is not 4");
        }
Example #4
0
        public void CanParseOnlyNumbers(string version)
        {
            var versionStringParser = new VersionStringParser();
            var parsedVersion       = versionStringParser.Parse(version);

            Assert.NotNull(parsedVersion);
            Assert.IsTrue(parsedVersion.IsValid);
            Assert.AreEqual(parsedVersion.VersionParts.Count, 4);
            Assert.AreEqual(parsedVersion.VersionParts[0].Value, 1);
            Assert.AreEqual(parsedVersion.VersionParts[0].IsChar, false);

            Assert.AreEqual(parsedVersion.VersionParts[1].Value, 2);
            Assert.AreEqual(parsedVersion.VersionParts[1].IsChar, false);

            Assert.AreEqual(parsedVersion.VersionParts[2].Value, 3);
            Assert.AreEqual(parsedVersion.VersionParts[2].IsChar, false);

            Assert.AreEqual(parsedVersion.VersionParts[3].Value, 4);
            Assert.AreEqual(parsedVersion.VersionParts[3].IsChar, false);
        }
Example #5
0
        public RiotArchiveLoader(string solutionPath)
        {
            fileArchivesPath = Path.Combine(solutionPath, "projects", "lol_game_client", "filearchives");
            var parser = new VersionStringParser();

            foreach (var directory in Directory.EnumerateDirectories(fileArchivesPath))
            {
                var  name = Path.GetFileName(directory);
                uint versionNumber;
                if (parser.TryGetVersionNumber(name, out versionNumber))
                {
                    var files   = Directory.EnumerateFiles(directory);
                    var rafPath = files.FirstOrDefault((path) => path.EndsWith(".raf", StringComparison.OrdinalIgnoreCase));
                    var datPath = files.FirstOrDefault((path) => path.EndsWith(".dat", StringComparison.OrdinalIgnoreCase));
                    if (rafPath != null && datPath != null)
                    {
                        pathsById.Add(versionNumber, new ArchiveAndDataPaths(rafPath, datPath));
                    }
                }
            }
        }
Example #6
0
        public RiotProject LoadProject(RiotProjectType projectType, string projectPath, string projectName)
        {
            // - Find the RADS Project's latest release directory ------------------------------------
            var versionStringParser = new VersionStringParser();
            var releasesPath        = Path.Combine(projectPath, "releases");
            var releases            = from releasePath in Directory.GetDirectories(releasesPath)
                                      let versionString = versionStringParser.GetVersionString(releasePath)
                                                          where !string.IsNullOrWhiteSpace(versionString)
                                                          let versionNumber = versionStringParser.GetVersionNumber(versionString)
                                                                              select new { ReleasePath = releasePath, VersionNumber = versionNumber };
            var latestRelease = releases.MaxBy((release) => release.VersionNumber);

            // - Load RADS Project Release Manifest and assign to RADS Project -----------------------
            var releaseManifestPath = Path.Combine(latestRelease.ReleasePath, "releasemanifest");
            var releaseManifest     = new ReleaseManifestLoader().Load(releaseManifestPath);

            // - Project-Type-Specific Hacks ------------------------------------------------
            if (projectType == RiotProjectType.AirClient)
            {
                releaseManifest.Root.__OverrideName(Path.Combine(latestRelease.ReleasePath, "deploy"));
            }

            return(new RiotProject(projectType, releaseManifest, latestRelease.VersionNumber));
        }