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"); }
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"); }
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"); }
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); }
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)); } } } }
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)); }