public void ProcessSrcFile_EmptyString_NotPresentInOutput() { string contents = @" somevar.Text = ''; ".Replace("'", "\""); string expected = @"msgid '' msgstr '' 'Project-Id-Version: \n' 'POT-Creation-Date: .* 'PO-Revision-Date: \n' 'Last-Translator: \n' 'Language-Team: \n' 'Plural-Forms: \n' 'MIME-Version: 1.0\n' 'Content-Type: text/plain; charset=UTF-8\n' 'Content-Transfer-Encoding: 8bit\n' # Project-Id-Version: # Report-Msgid-Bugs-To: # POT-Creation-Date: .* # Content-Type: text/plain; charset=UTF-8 ".Replace("'", "\""); using (var e = new EnvironmentForTest()) { Assert.That(e.MakePotFile(contents), ConstrainStringByLine.Matches(expected)); } }
public void HeadWordField_CitationFieldDisabled_UsesLexemeFormSettings() { using (var environment = new EnvironmentForTest()) { environment.Template.GetField(LexEntry.WellKnownProperties.Citation).Enabled = false; environment.MakeEntry(); environment.DoExport(); environment.AssertHasAtLeastOneMatchWithArgs( "lift/entry/field[@type='headword']/form[@lang='{0}']/text[text() = '{1}']", environment.HeadwordWritingSystem.Id, "redLexemeForm" ); //nb: it's not clear what the "correct" behavior is, if the citation //form is disabled for this user but a citation form does exist for this ws. environment.AssertHasAtLeastOneMatchWithArgs( "lift/entry/field[@type='headword']/form[@lang='{0}']/text[text() = '{1}']", environment.WritingSystemIds[1], "greenCitation" ); environment.AssertHasAtLeastOneMatchWithArgs( "lift/entry/field[@type='headword']/form[@lang='{0}']/text[text() = '{1}']", environment.WritingSystemIds[2], "blueCitation" ); } }
public void HiddenFields_AreNotOutput() { using (var environment = new EnvironmentForTest()) { LexEntry e1 = environment.Repo.CreateItem(); e1.LexicalForm[EnvironmentForTest.Green] = "sunset"; e1.GetOrCreateProperty <MultiText>("color").SetAlternative(environment.WritingSystemIds[0], EnvironmentForTest.Red); environment.Repo.SaveItem(e1); var color = new Field( "color", "LexEntry", environment.WritingSystemIds, Field.MultiplicityType.ZeroOr1, "MultiText" ); color.DisplayName = "color"; environment.Template.Add(color); environment.DoExport(); environment.AssertHasAtLeastOneMatch("lift/entry[@id='" + e1.Id + "']/field[@type='" + "color" + "']"); //now make it invisible and it should disappear environment.Template.GetField("color").Enabled = false; environment.DoExport(); environment.AssertNoMatchForXPath("lift/entry[@id='" + e1.Id + "']/field"); } }
public void ProcessSrcFile_BackupStringWithDots_DoesNotHaveDuplicates() { var contents = @" somevar.Text = 'Backing Up...'; ".Replace("'", "\""); var expected = @"msgid '' msgstr '' 'Project-Id-Version: Testing\n' 'POT-Creation-Date: .* 'PO-Revision-Date: \n' 'Last-Translator: \n' 'Language-Team: \n' 'Plural-Forms: \n' 'MIME-Version: 1.0\n' 'Content-Type: text/plain; charset=UTF-8\n' 'Content-Transfer-Encoding: 8bit\n' # Project-Id-Version: Testing # Report-Msgid-Bugs-To: [email protected] # POT-Creation-Date: .* # Content-Type: text/plain; charset=UTF-8 #: .*csharp.cs msgid 'Backing Up...' msgstr '' ".Replace("'", "\""); using (var e = new EnvironmentForTest()) { Assert.That(e.MakePotFile(contents), Is.MultilineString(expected)); } }
public void IsMounted_USBDrive_True() { using (var e = new EnvironmentForTest()) { var uDiskDevice = e.GetUSBDevice(); Assert.True(uDiskDevice.IsMounted); } }
public void TotalSpace_USBDrive_GreaterThanZero() { using (var e = new EnvironmentForTest()) { var uDiskDevice = e.GetUSBDevice(); Assert.That(uDiskDevice.TotalSize, Is.GreaterThan(0)); } }
public void TotalSpace_USBDrive_GreaterThanZero() { using (var e = new EnvironmentForTest()) { var uDiskDevice = e.GetUSBDevice(); Assert.That(uDiskDevice.TotalSize, Is.GreaterThan(0)); } }
public void DriveConnectionInterface_USBDrive_USB() { using (var e = new EnvironmentForTest()) { var uDiskDevice = e.GetUSBDevice(); Assert.That(uDiskDevice.DriveConnectionInterface, Is.EqualTo(UDiskDevice.Interfaces.USB)); } }
public void IsMounted_USBDrive_True() { using (var e = new EnvironmentForTest()) { var uDiskDevice = e.GetUSBDevice(); Assert.True(uDiskDevice.IsMounted); } }
public void DriveConnectionInterface_USBDrive_USB() { using (var e = new EnvironmentForTest()) { var uDiskDevice = e.GetUSBDevice(); Assert.That(uDiskDevice.DriveConnectionInterface, Is.EqualTo(UDiskDevice.Interfaces.USB)); } }
public void MountPaths_USBDrive_HasNonEmptyString() { using (var e = new EnvironmentForTest()) { var uDiskDevice = e.GetUSBDevice(); string[] mountPaths = uDiskDevice.MountPaths; Assert.That(mountPaths.Count(), Is.GreaterThan(0)); Assert.That(mountPaths[0], Is.StringContaining("/media/")); } }
public void MountPaths_USBDrive_HasNonEmptyString() { using (var e = new EnvironmentForTest()) { var uDiskDevice = e.GetUSBDevice(); string[] mountPaths = uDiskDevice.MountPaths; Assert.That(mountPaths.Count(), Is.GreaterThan(0)); Assert.That(mountPaths[0], Is.StringContaining("/media/")); } }
public void FlattenFilePaths_TwoItems_TrimsAndStringCorrect() { using (var e = new EnvironmentForTest()) { var task = new Archive.Archive(); task.BasePath = e.BasePath; task.InputFilePaths = e.TwoItemsWithBasePath("a.cs", "b.cs"); var result = task.FlattenFilePaths(task.InputFilePaths, ' ', false); Assert.AreEqual("a.cs b.cs", result); } }
public void FlattenFilePaths_TwoItems_TrimsAndStringCorrect() { using (var e = new EnvironmentForTest()) { var task = new Archive(); task.BasePath = e.BasePath; task.InputFilePaths = e.TwoItemsWithBasePath("a.cs", "b.cs"); var result = task.FlattenFilePaths(task.InputFilePaths, ' ', false); Assert.AreEqual("a.cs b.cs", result); } }
public void GetFileVersion_DataHasVersion_CorrectVersion() { using (var e = new EnvironmentForTest()) { e.WriteTestFile(EnvironmentForTest.XmlVersion1); var migrator = new FileMigrator(7, e.TestFilePath); migrator.AddVersionStrategy(new XPathVersion(1, "/configuration/@version")); Assert.AreEqual(1, migrator.GetFileVersion(e.TestFilePath)); } }
public void FlattenFilePaths_TwoItemsForceQuote_TrimsAndQuotesStringCorrect() { using (new EnvironmentForTest()) { var task = new Archive.Archive { BasePath = EnvironmentForTest.BasePath, InputFilePaths = EnvironmentForTest.TwoItemsWithBasePath("a.cs", "b.cs") }; var result = task.FlattenFilePaths(task.InputFilePaths, ' ', true); Assert.AreEqual("\"a.cs\" \"b.cs\"", result); } }
public void GetFileVersion_FileHasNoVersionUsingDefaultStrategy_ReturnsZero() { using (var e = new EnvironmentForTest()) { e.WriteTestFile(EnvironmentForTest.XmlNoVersion); var migrator = new FileMigrator(1, e.TestFilePath); migrator.AddVersionStrategy(new XPathVersion(1, "/configuration/@version")); migrator.AddVersionStrategy(new DefaultVersion(0, 0)); Assert.AreEqual(0, migrator.GetFileVersion(e.TestFilePath)); } }
public void TestOpenDocumentPdfOpen() { using (var e = new EnvironmentForTest()) { var addin = new LibreOfficePdf(); addin.Launch(null, e.ProjectInfo); Assert.IsTrue(File.Exists(e.PdfFile)); bool succeeded = (new FileInfo(e.PdfFile).Length > 0); Assert.IsTrue(succeeded); Thread.Sleep(1000); } }
public void Export_LexicalUnitHasVoice_PhoneticMediaFieldIsOutput() { using (var environment = new EnvironmentForTest()) { LexEntry e1 = environment.Repo.CreateItem(); e1.LexicalForm[EnvironmentForTest.Red] = "r"; e1.LexicalForm[EnvironmentForTest.Voice] = "pretendFileName"; environment.DoExport(); var path = string.Format("..{0}audio{0}pretendFileName", Path.DirectorySeparatorChar); environment.AssertHasAtLeastOneMatch("lift/entry/pronunciation/media[@href='" + path + "']"); } }
public void NonHomographicEntryHasNoHomographNumber() { using (var environment = new EnvironmentForTest()) { LexEntry e1 = environment.MakeTestLexEntryInHeadwordWritingSystem("two"); LexEntry e2 = environment.MakeTestLexEntryInHeadwordWritingSystem("flower"); LexEntry e3 = environment.MakeTestLexEntryInHeadwordWritingSystem("one"); environment.DoExport(); environment.AssertHasAtLeastOneMatch("lift/entry[@id='" + e1.Id + "' and not(@order)]"); environment.AssertHasAtLeastOneMatch("lift/entry[@id='" + e2.Id + "' and not(@order)]"); environment.AssertHasAtLeastOneMatch("lift/entry[@id='" + e3.Id + "' and not(@order)]"); } }
public void LONotInstalledCheckDoesNotThrow() { using (var e = new EnvironmentForTest()) { var addin = new LibreOfficePdf(); Assert.DoesNotThrow( () => { if (addin.Available) { } ; } ); } }
public void LexemeForm_DisabledWritingSystems_AreNotOutput() { using (var environment = new EnvironmentForTest()) { LexEntry entry = environment.Repo.CreateItem(); entry.LexicalForm.SetAlternative(environment.WritingSystemIds[1], "one"); environment.Repo.SaveItem(entry); environment.DoExport(); environment.AssertHasAtLeastOneMatch("lift/entry/lexical-unit/form[text='one']"); environment.AssertNoMatchForXPathWithArgs("lift/entry/lexical-unit/form[text='{0}']", EnvironmentForTest.Red); } }
public void RelationEntry_NotFound_NothingExported() { using (var environment = new EnvironmentForTest()) { LexEntry entry = environment.Repo.CreateItem(); entry.LexicalForm.SetAlternative(environment.HeadwordWritingSystem.Id, "Gary"); entry.AddRelationTarget("brother", "notGonnaFindIt"); environment.Repo.SaveItem(entry); environment.DoExport(); environment.CheckRelationNotOutput("brother"); } }
public string MakePotFile(string input) { string csharpFilePath = System.IO.Path.Combine(Path, "csharp.cs"); File.WriteAllText(csharpFilePath, input); var pot = new MakePot.MakePot(); pot.OutputFile = System.IO.Path.Combine(Path, "output.pot"); pot.CSharpFiles = EnvironmentForTest.CreateTaskItemsForFilePath(csharpFilePath); pot.Execute(); return(File.ReadAllText(pot.OutputFile)); }
public void ProcessSrcFile_AllMatches_OutputsGoodPo() { string contents = @" somevar.Text = 'FirstLocalizableString'; somevar.MyLocalizableFunction(StringCatalog.Get('SecondLocalizableString', 'SecondNotes')); somevar.MyLocalizableFunction('~ThirdLocalizableString', 'ThirdNotes'); ".Replace("'", "\""); string expected = @"msgid '' msgstr '' 'Project-Id-Version: \n' 'POT-Creation-Date: .* 'PO-Revision-Date: \n' 'Last-Translator: \n' 'Language-Team: \n' 'Plural-Forms: \n' 'MIME-Version: 1.0\n' 'Content-Type: text/plain; charset=UTF-8\n' 'Content-Transfer-Encoding: 8bit\n' # Project-Id-Version: # Report-Msgid-Bugs-To: # POT-Creation-Date: .* # Content-Type: text/plain; charset=UTF-8 #: .* msgid 'FirstLocalizableString' msgstr '' #: .* #. SecondNotes msgid 'SecondLocalizableString' msgstr '' #: .* #. ThirdNotes msgid 'ThirdLocalizableString' msgstr '' ".Replace("'", "\""); using (var e = new EnvironmentForTest()) { Assert.That(e.MakePotFile(contents), ConstrainStringByLine.Matches(expected)); } }
public void Export_LexicalUnitHasVoice_VoiceNotListed() { using (var environment = new EnvironmentForTest()) { LexEntry e1 = environment.Repo.CreateItem(); e1.LexicalForm[EnvironmentForTest.Red] = "r"; e1.LexicalForm[EnvironmentForTest.Voice] = "v"; e1.LexicalForm[EnvironmentForTest.Blue] = "b"; environment.DoExport(); environment.AssertHasAtLeastOneMatchWithArgs("lift/entry/lexical-unit/form[@lang='{0}']", EnvironmentForTest.Blue); //sanity check environment.AssertNoMatchForXPathWithArgs("lift/entry/lexical-unit/form[@lang='{0}']", EnvironmentForTest.Voice); } }
public void GetFileVersion_FileHasNoVersionAndNoDefaultStrategy_Throws() { using (var e = new EnvironmentForTest()) { e.WriteTestFile(EnvironmentForTest.XmlNoVersion); var migrator = new FileMigrator(1, e.TestFilePath); migrator.AddVersionStrategy(new XPathVersion(1, "/configuration/@version")); Assert.Throws <ApplicationException>( () => migrator.GetFileVersion(e.TestFilePath) ); } }
public void Migrate_WithBackupFileInTheWay_DoesntThrow() { using (var e = new EnvironmentForTest()) { e.WriteTestFile(EnvironmentForTest.XmlVersion1); var migrator = new FileMigrator(3, e.TestFilePath); File.Copy(migrator.SourceFilePath, migrator.BackupFilePath); // Place the backup file in the way. migrator.AddVersionStrategy(new XPathVersion(3, "/configuration/@version")); migrator.AddMigrationStrategy(new XslStringMigrator(1, 2, EnvironmentForTest.Xsl1To2)); migrator.AddMigrationStrategy(new XslStringMigrator(2, 3, EnvironmentForTest.Xsl2To3)); migrator.Migrate(); } }
public void Export_CitationHasVoice_CitationOmitsVoice() { using (var environment = new EnvironmentForTest()) { LexEntry e1 = environment.Repo.CreateItem(); e1.CitationForm[EnvironmentForTest.Red] = "r"; e1.CitationForm[EnvironmentForTest.Voice] = "v"; e1.CitationForm[EnvironmentForTest.Blue] = "b"; environment.DoExport(); environment.PrintResult(); environment.AssertHasAtLeastOneMatchWithArgs("lift/entry/citation/form[@lang='{0}']", EnvironmentForTest.Blue); //sanity check environment.AssertNoMatchForXPathWithArgs("lift/entry/citation/form[@lang='{0}']", EnvironmentForTest.Voice); } }
public void Migrate_MissingMigrationStrategy_ThrowsAndSourceFileSameVersion() { using (var e = new EnvironmentForTest()) { e.WriteTestFile(EnvironmentForTest.XmlVersion1); var migrator = new FileMigrator(3, e.TestFilePath); migrator.AddVersionStrategy(new XPathVersion(3, "/configuration/@version")); migrator.AddMigrationStrategy(new XslStringMigrator(1, 2, EnvironmentForTest.Xsl1To2)); Assert.Throws <InvalidOperationException>(migrator.Migrate); AssertThatXmlIn.File(e.TestFilePath).HasAtLeastOneMatchForXpath("configuration[@version='1']"); AssertThatXmlIn.File(e.TestFilePath).HasAtLeastOneMatchForXpath("/configuration/blah"); } }
public void Migrate_UsingXslAndXml_ArrviesAtVersion3() { using (var e = new EnvironmentForTest()) { e.WriteTestFile(EnvironmentForTest.XmlVersion1); var migrator = new FileMigrator(3, e.TestFilePath); migrator.AddVersionStrategy(new XPathVersion(3, "/configuration/@version")); migrator.AddMigrationStrategy(new XslStringMigrator(1, 2, EnvironmentForTest.Xsl1To2)); migrator.AddMigrationStrategy(new XslStringMigrator(2, 3, EnvironmentForTest.Xsl2To3)); migrator.Migrate(); AssertThatXmlIn.File(e.TestFilePath).HasAtLeastOneMatchForXpath("configuration[@version='3']"); AssertThatXmlIn.File(e.TestFilePath).HasAtLeastOneMatchForXpath("/configuration/blah"); } }
public void Migrate_MissingMigrationStrategy_LeavesWipFiles() { using (var e = new EnvironmentForTest()) { e.WriteTestFile(EnvironmentForTest.XmlVersion1); var migrator = new FileMigrator(3, e.TestFilePath); migrator.AddVersionStrategy(new XPathVersion(3, "/configuration/@version")); migrator.AddMigrationStrategy(new XslStringMigrator(1, 2, EnvironmentForTest.Xsl1To2)); Assert.Throws <InvalidOperationException>(() => migrator.Migrate()); var files = Directory.GetFiles(e.Path); Assert.That(files, Has.Some.SamePath(e.TestFilePath)); Assert.That(files, Has.Some.SamePath(e.TestFilePath + ".bak")); Assert.That(files, Has.Some.SamePath(e.TestFilePath + ".Migrate_1_2")); } }
public void WritingSystems_AreOutputInPrescribedOrder() { using (var environment = new EnvironmentForTest()) { LexEntry entry = environment.Repo.CreateItem(); entry.LexicalForm.SetAlternative(environment.WritingSystemIds[1], "greenForm"); entry.LexicalForm.SetAlternative(environment.WritingSystemIds[2], "blueForm"); entry.LexicalForm.SetAlternative(environment.WritingSystemIds[0], "redForm"); environment.Repo.SaveItem(entry); environment.DoExport(); XmlNodeList forms = environment.GetNodes("lift/entry/lexical-unit/form"); Assert.AreEqual(environment.WritingSystemIds[0], forms[0].Attributes["lang"].InnerText); Assert.AreEqual(environment.WritingSystemIds[1], forms[1].Attributes["lang"].InnerText); Assert.AreEqual(environment.WritingSystemIds[2], forms[2].Attributes["lang"].InnerText); } }
// No wip files left behind public void Migrate_Succeeds_CleansUpWipFilesAndBackupFiles() { using (var e = new EnvironmentForTest()) { e.WriteTestFile(EnvironmentForTest.XmlVersion1); var migrator = new FileMigrator(3, e.TestFilePath); migrator.AddVersionStrategy(new XPathVersion(3, "/configuration/@version")); migrator.AddMigrationStrategy(new XslStringMigrator(1, 2, EnvironmentForTest.Xsl1To2)); migrator.AddMigrationStrategy(new XslStringMigrator(2, 3, EnvironmentForTest.Xsl2To3)); migrator.Migrate(); var files = Directory.GetFiles(e.Path); Assert.That(files.Length, Is.EqualTo(1)); Assert.That(files, Has.Some.SamePath(e.TestFilePath)); } }
public void RelationEntry_Found_HeadWordExported() { using (var environment = new EnvironmentForTest()) { LexEntry targetEntry = environment.Repo.CreateItem(); targetEntry.LexicalForm.SetAlternative(environment.HeadwordWritingSystem.Id, "RickLexeme"); targetEntry.CitationForm.SetAlternative(environment.HeadwordWritingSystem.Id, "Rick"); environment.Repo.SaveItem(targetEntry); LexEntry entry = environment.Repo.CreateItem(); entry.LexicalForm.SetAlternative(environment.HeadwordWritingSystem.Id, "Gary"); environment.Repo.SaveItem(entry); entry.AddRelationTarget("brother", targetEntry.Id); environment.DoExport(); environment.CheckRelationOutput(targetEntry, "brother"); } }
// No wip files left behind public void Migrate_Succeeds_CleansUpWipFilesAndBackupFiles() { using (var e = new EnvironmentForTest()) { e.WriteTestFile(EnvironmentForTest.XmlVersion1); var migrator = new FileMigrator(3, e.TestFilePath); migrator.AddVersionStrategy(new XPathVersion(3, "/configuration/@version")); migrator.AddMigrationStrategy(new XslStringMigrator(1, 2, EnvironmentForTest.Xsl1To2)); migrator.AddMigrationStrategy(new XslStringMigrator(2, 3, EnvironmentForTest.Xsl2To3)); migrator.Migrate(); var files = Directory.GetFiles(e.Path); Assert.That(files.Length, Is.EqualTo(1)); Assert.That(files, Has.Some.SamePath(e.TestFilePath)); } }
public void ProcessSrcFile_AllMatches_OutputsGoodPo() { string contents = @" somevar.Text = 'FirstLocalizableString'; somevar.MyLocalizableFunction(StringCatalog.Get('SecondLocalizableString', 'SecondNotes')); somevar.MyLocalizableFunction('~ThirdLocalizableString', 'ThirdNotes'); ".Replace("'", "\""); string expected = @"msgid '' msgstr '' 'Project-Id-Version: \n' 'POT-Creation-Date: .* 'PO-Revision-Date: \n' 'Last-Translator: \n' 'Language-Team: \n' 'Plural-Forms: \n' 'MIME-Version: 1.0\n' 'Content-Type: text/plain; charset=UTF-8\n' 'Content-Transfer-Encoding: 8bit\n' # Project-Id-Version: # Report-Msgid-Bugs-To: # POT-Creation-Date: .* # Content-Type: text/plain; charset=UTF-8 #: .* msgid 'FirstLocalizableString' msgstr '' #: .* #. SecondNotes msgid 'SecondLocalizableString' msgstr '' #: .* #. ThirdNotes msgid 'ThirdLocalizableString' msgstr '' ".Replace("'", "\""); using (var e = new EnvironmentForTest()) { Assert.That(e.MakePotFile(contents), ConstrainStringByLine.Matches(expected)); } }
public void Migrate_WithBackupFileInTheWay_DoesntThrow() { using (var e = new EnvironmentForTest()) { e.WriteTestFile(EnvironmentForTest.XmlVersion1); var migrator = new FileMigrator(3, e.TestFilePath); File.Copy(migrator.SourceFilePath, migrator.BackupFilePath); // Place the backup file in the way. migrator.AddVersionStrategy(new XPathVersion(3, "/configuration/@version")); migrator.AddMigrationStrategy(new XslStringMigrator(1, 2, EnvironmentForTest.Xsl1To2)); migrator.AddMigrationStrategy(new XslStringMigrator(2, 3, EnvironmentForTest.Xsl2To3)); migrator.Migrate(); } }
public void Migrate_MissingMigrationStrategy_ThrowsAndSourceFileSameVersion() { using (var e = new EnvironmentForTest()) { e.WriteTestFile(EnvironmentForTest.XmlVersion1); var migrator = new FileMigrator(3, e.TestFilePath); migrator.AddVersionStrategy(new XPathVersion(3, "/configuration/@version")); migrator.AddMigrationStrategy(new XslStringMigrator(1, 2, EnvironmentForTest.Xsl1To2)); Assert.Throws<InvalidOperationException>(migrator.Migrate); AssertThatXmlIn.File(e.TestFilePath).HasAtLeastOneMatchForXpath("configuration[@version='1']"); AssertThatXmlIn.File(e.TestFilePath).HasAtLeastOneMatchForXpath("/configuration/blah"); } }
public void Migrate_UsingXslAndXml_ArrviesAtVersion3() { using (var e = new EnvironmentForTest()) { e.WriteTestFile(EnvironmentForTest.XmlVersion1); var migrator = new FileMigrator(3, e.TestFilePath); migrator.AddVersionStrategy(new XPathVersion(3, "/configuration/@version")); migrator.AddMigrationStrategy(new XslStringMigrator(1, 2, EnvironmentForTest.Xsl1To2)); migrator.AddMigrationStrategy(new XslStringMigrator(2, 3, EnvironmentForTest.Xsl2To3)); migrator.Migrate(); AssertThatXmlIn.File(e.TestFilePath).HasAtLeastOneMatchForXpath("configuration[@version='3']"); AssertThatXmlIn.File(e.TestFilePath).HasAtLeastOneMatchForXpath("/configuration/blah"); } }
public void ProcessSrcFile_EmptyString_NotPresentInOutput() { string contents = @" somevar.Text = ''; ".Replace("'", "\""); string expected = @"msgid '' msgstr '' 'Project-Id-Version: \n' 'POT-Creation-Date: .* 'PO-Revision-Date: \n' 'Last-Translator: \n' 'Language-Team: \n' 'Plural-Forms: \n' 'MIME-Version: 1.0\n' 'Content-Type: text/plain; charset=UTF-8\n' 'Content-Transfer-Encoding: 8bit\n' # Project-Id-Version: # Report-Msgid-Bugs-To: # POT-Creation-Date: .* # Content-Type: text/plain; charset=UTF-8 ".Replace("'", "\""); using (var e = new EnvironmentForTest()) { Assert.That(e.MakePotFile(contents), ConstrainStringByLine.Matches(expected)); } }
public void GetFileVersion_DataHasVersion_CorrectVersion() { using (var e = new EnvironmentForTest()) { e.WriteTestFile(EnvironmentForTest.XmlVersion1); var migrator = new FileMigrator(7, e.TestFilePath); migrator.AddVersionStrategy(new XPathVersion(1, "/configuration/@version")); Assert.AreEqual(1, migrator.GetFileVersion(e.TestFilePath)); } }
public void GetFileVersion_FileHasNoVersionAndNoDefaultStrategy_Throws() { using (var e = new EnvironmentForTest()) { e.WriteTestFile(EnvironmentForTest.XmlNoVersion); var migrator = new FileMigrator(1, e.TestFilePath); migrator.AddVersionStrategy(new XPathVersion(1, "/configuration/@version")); Assert.Throws<ApplicationException>( () => migrator.GetFileVersion(e.TestFilePath) ); } }
public void GetFileVersion_FileHasNoVersionUsingDefaultStrategy_ReturnsZero() { using (var e = new EnvironmentForTest()) { e.WriteTestFile(EnvironmentForTest.XmlNoVersion); var migrator = new FileMigrator(1, e.TestFilePath); migrator.AddVersionStrategy(new XPathVersion(1, "/configuration/@version")); migrator.AddVersionStrategy(new DefaultVersion(0, 0)); Assert.AreEqual(0, migrator.GetFileVersion(e.TestFilePath)); } }
public void Migrate_MissingMigrationStrategy_LeavesWipFiles() { using (var e = new EnvironmentForTest()) { e.WriteTestFile(EnvironmentForTest.XmlVersion1); var migrator = new FileMigrator(3, e.TestFilePath); migrator.AddVersionStrategy(new XPathVersion(3, "/configuration/@version")); migrator.AddMigrationStrategy(new XslStringMigrator(1, 2, EnvironmentForTest.Xsl1To2)); Assert.Throws<InvalidOperationException>(() => migrator.Migrate()); var files = Directory.GetFiles(e.Path); Assert.That(files, Has.Some.SamePath(e.TestFilePath)); Assert.That(files, Has.Some.SamePath(e.TestFilePath + ".bak")); Assert.That(files, Has.Some.SamePath(e.TestFilePath + ".Migrate_1_2")); } }