private static ReleaseFileNameTestDataPoint CreateTestDataPointFromProperties(String ModName, ModVersion ModVersion) { String creationString = $"{ModName}_{ModVersion}.zip"; return(new ReleaseFileNameTestDataPoint { CreationString = creationString, ModName = ModName, ModVersion = ModVersion, ObjectFromFor = ReleaseFileName.For(creationString) }); }
public void TryAddRelease_WhenNewReleaseFileNameModNameDoesNotMatch_ThrowsInvalidOperationException() { ReleaseFileName releaseFileName = ReleaseFileName.For($"NotAMatch_{ModVersionTestData.TestModGammaReleaseVersion}.zip"); var exception = Assert.Throws <InvalidOperationException>(() => ModTestData.TestMod.TryAddRelease(new Release( ReleasedAt: ReleaseTestData.TestModGammaReleaseDate, Sha1String: ReleaseTestData.TestModGammaReleaseSha1String, ReleaseDownloadUrl: ReleaseDownloadUrlTestData.TestModDownloadUrl, ReleaseFileName: releaseFileName, ModVersion: ModVersionTestData.TestModGammaReleaseVersion, FactorioVersion: FactorioVersionTestData.ZeroPointSeventeen, Dependencies: DependencyTestData.TestModGammaReleaseDependencies))); Assert.Equal("The specified release file name does not properly reference this mod.", exception.Message); }
public void ModConstructor_WhenReleasesContainsReleaseDownloadUrlWithNonMatchingModName_ThrowsArgumentException() { ReleaseFileName releaseFileName = ReleaseFileName.For($"NotAMatch_{ModVersionTestData.TestModAlphaReleaseVersion}.zip"); Release testRelease = new Release( ReleasedAt: ReleaseTestData.TestModAlphaReleaseDate, Sha1String: ReleaseTestData.TestModAlphaReleaseSha1String, ReleaseDownloadUrl: ReleaseDownloadUrlTestData.TestModDownloadUrl, ReleaseFileName: releaseFileName, ModVersion: ModVersionTestData.TestModAlphaReleaseVersion, FactorioVersion: FactorioVersionTestData.ZeroPointSeventeen, Dependencies: DependencyTestData.TestModAlphaReleaseDependencies ); var exception = Assert.Throws <ArgumentException>(() => new Mod( Name: ModTestData.TestModTestDataPoint.Name, Titles: ModTitleTestData.TestModTitles, Releases: new List <Release> { testRelease, ReleaseTestData.TestModBetaRelease })); Assert.Equal($"The mod name in the release filename \"{releaseFileName}\" does not match the specified mod name \"{ModTestData.TestModTestDataPoint.Name}\". (Parameter 'Releases')", exception.Message); }
private static ReleaseTestDataPoint GenerateValidRandomizedTestDataPointWithModName(String modName) { var random = new Random(); List <Dependency> randomizedDependencies = new List <Dependency>(); for (int i = 0; i < random.Next(1, 6); i++) { randomizedDependencies.Add(DependencyTestData.GenerateValidRandomizedDependency()); } String releaseFileNameString = ReleaseFileNameTestData.GenerateValidRandomizedReleaseFileNameStringWithModName(modName); Int32 underscoreIndex = releaseFileNameString.LastIndexOf("_"); String modVersionString = releaseFileNameString.Substring(underscoreIndex + 1, releaseFileNameString.LastIndexOf(".zip") - (underscoreIndex + 1)); return(CreateTestDataPointFromProperties( ReleasedAt: ReleaseTestData.GenerateValidRandomizedReleasedAt(), Sha1String: ReleaseTestData.GenerateValidRandomizedSha1String(), ReleaseDownloadUrl: ReleaseDownloadUrl.For(ReleaseDownloadUrlTestData.GenerateValidRandomizedReleaseDownloadUrlStringWithModName(modName)), ReleaseFileName: ReleaseFileName.For(releaseFileNameString), ModVersion: ModVersion.For(modVersionString), FactorioVersion: FactorioVersionTestData.GenerateValidRandomizedFactorioVersion(), Dependencies: randomizedDependencies )); }
public void For_WhenGivenInvalidFormat_ThrowsArgumentException(String releaseFileNameString) { var exception = Assert.Throws <ArgumentException>(() => ReleaseFileName.For(releaseFileNameString)); Assert.Equal($"Unable to parse \"{releaseFileNameString}\" to a valid ReleaseFileName due to formatting. (Parameter 'releaseFileNameString')", exception.Message); }
public void For_WhenGivenEmptyStringOrWhitespace_ThrowsArgumentException(String releaseFileNameString) { var exception = Assert.Throws <ArgumentException>(() => ReleaseFileName.For(releaseFileNameString)); Assert.Equal($"releaseFileNameString may not be empty. (Parameter 'releaseFileNameString')", exception.Message); }
public void For_WhenGivenNull_ThrowsArgumentNullException() { var exception = Assert.Throws <ArgumentNullException>(() => ReleaseFileName.For(null)); Assert.Equal("releaseFileNameString is required. (Parameter 'releaseFileNameString')", exception.Message); }
public void For_WhenGivenValidString_ReturnsCorrectModVersion(String releaseFileNameString, ModVersion modVersion) { var releaseFileName = ReleaseFileName.For(releaseFileNameString); Assert.Equal(modVersion, releaseFileName.ModVersion); }
public void For_WhenGivenValidString_ReturnsCorrectModName(String releaseFileNameString, String modName) { var releaseFileName = ReleaseFileName.For(releaseFileNameString); Assert.Equal(modName, releaseFileName.ModName); }
public void For_WhenGivenModNameTooLong_ThrowsArgumentException(String releaseFileNameString) { var exception = Assert.Throws <ArgumentException>(() => ReleaseFileName.For(releaseFileNameString)); Assert.Equal($"The mod name specified exceeds the maximum length of {Mod.NameLength}. (Parameter 'releaseFileNameString')", exception.Message); }
public static ReleaseFileName GenerateValidRandomizedReleaseFileName() { return(ReleaseFileName.For(GenerateValidRandomizedReleaseFileNameString())); }