/// <summary> /// Invokes replace method on the provided objects /// </summary> /// <param name="codeFile">Code file to test</param> /// <param name="resFile">Resource file to use</param> /// <param name="hcs">Hardcoded string to use</param> /// <param name="expected">Expected test string</param> internal static void TestReplaceMethod(ProjectItem codeFile, string resourceFileName, BaseHardCodedString hcs, string expected, string resourceName) { string fileName = codeFile.get_FileNames(1); bool readOnly = false; try { readOnly = CommonMethods.ToggleReadOnly(fileName, false); ExtractToResourceActionSite refactorSite = new ExtractToResourceActionSite(hcs); ResourceFileCollection resources = new ResourceFileCollection(codeFile.ContainingProject, new FilterMethod(refactorSite.ActionObject.IsValidResourceFile)); ResourceFile resFile = resources[resourceFileName]; refactorSite.ExtractStringToResource(resFile, resourceName); TextDocument doc = ((EnvDTE.TextDocument)codeFile.Document.Object(null)); EditPoint ep = doc.StartPoint.CreateEditPoint(); string line = ep.GetLines(hcs.StartingLine + 1, hcs.StartingLine + 2); Assert.AreEqual(expected, line, "New line does not match the expected output"); } finally { if (readOnly) { CommonMethods.ToggleReadOnly(fileName, true); } } }
public void GenericCSharpReplaceMethodReadOnlyTest() { Assert.Throws <FileReadOnlyException>(() => { // Get Project object Project testProject = (Project)(extensibility.Solution.Projects.Item(3)); ProjectItem codeFile = testProject.ProjectItems.Item("Program.cs"); CSharpHardCodedString hcs = new CSharpHardCodedString(codeFile, 19, 32); IExtractResourceAction actionObject = new Common.GenericCSharpExtractResourceAction(); ResourceFileCollection resources = new ResourceFileCollection(testProject, new FilterMethod(actionObject.IsValidResourceFile)); ResourceFile resFile = resources["Resource1.resx"]; string fileName = codeFile.get_FileNames(1); FileAttributes oldAttributes = System.IO.File.GetAttributes(fileName); System.IO.File.SetAttributes(fileName, oldAttributes | FileAttributes.ReadOnly); try { ExtractToResourceActionSite refactorSite = new ExtractToResourceActionSite(hcs); refactorSite.ExtractStringToResource(resFile, "Test"); } finally { System.IO.File.SetAttributes(fileName, oldAttributes); } }); }
public void TestGetResourcesNoFile() { string supportdir = @"C:\SupportFiles\SupportFile"; ConfigFile configFile = new ConfigFile(); ResourceFileCollection resources = configFile.GetResources(supportdir); Assert.AreEqual(0, resources.Count); }
public void FixtureSetup() { this.extensibility = SharedEnvironment.Instance; // Get Project object Project testProject = (Project)(extensibility.Solution.Projects.Item(3)); this.codeFile = testProject.ProjectItems.Item("Program.cs"); CommonMethods.CloseDocument(codeFile); actionObject = new Common.GenericCSharpExtractResourceAction(); resources = new ResourceFileCollection(testProject, new FilterMethod(actionObject.IsValidResourceFile)); }
public void ResourceFileCollectionSimpleProjectTest() { // Get Project object Common.IExtractResourceAction actionObject = new Common.GenericCSharpExtractResourceAction(); Project testProject = (Project)(extensibility.Solution.Projects.Item(1)); ResourceFileCollection collection = new ResourceFileCollection(testProject, new FilterMethod(actionObject.IsValidResourceFile)); Assert.AreEqual(2, collection.Count, Messages.ResourceFilesCountInvalid); Assert.AreEqual(collection[0].DisplayName, "Resource1.resx", Messages.ResourceFileNotFound); }
public void ResourceFileMultipleAddsCaseDifference() { Project testProject = (Project)(extensibility.Solution.Projects.Item(1)); IExtractResourceAction action = new GenericCSharpExtractResourceAction(); ResourceFileCollection collection = new ResourceFileCollection(testProject, new FilterMethod(action.IsValidResourceFile)); ResourceFile testFile = collection[0]; testFile.AddResource("Test2", "Test3", "Comment Test"); testFile.AddResource("test2", "TestTest", "Comment"); }
public void FixtureSetup() { this.extensibility = SharedEnvironment.Instance; // Get Project object Project testProject = (Project)(extensibility.Solution.Projects.Item(2)); IExtractResourceAction action = new GenericVBExtractResourceAction(); this.codeFile = testProject.ProjectItems.Item("Form1.vb"); CommonMethods.CloseDocument(codeFile); resources = new ResourceFileCollection(testProject, new FilterMethod(action.IsValidResourceFile)); }
public void ResourceFileInitialReadTest() { Common.IExtractResourceAction actionObject = new Common.GenericCSharpExtractResourceAction(); Project testProject = (Project)(extensibility.Solution.Projects.Item(1)); ResourceFileCollection collection = new ResourceFileCollection(testProject, new FilterMethod(actionObject.IsValidResourceFile)); ResourceFile testFile = collection[0]; Assert.AreEqual("ResXFileCodeGenerator", testFile.CustomToolName, "Custom tool name is invalid"); Assert.AreEqual(2, testFile.Resources.Count, Messages.ResourceCountInvalid); Assert.AreEqual("Test", testFile.GetValue("TestResource"), Messages.ResourceValueInvalid); }
public void ResourceFileMultipleAddsSameName() { Assert.Throws <ArgumentException>(() => { Project testProject = (Project)(extensibility.Solution.Projects.Item(1)); IExtractResourceAction action = new GenericCSharpExtractResourceAction(); ResourceFileCollection collection = new ResourceFileCollection(testProject, new FilterMethod(action.IsValidResourceFile)); ResourceFile testFile = collection[0]; testFile.AddResource("Test2", "Test3", "Comment Test"); testFile.AddResource("Test2", "TestTest", "Comment"); }); }
public void TestGetFilesSourceAppPath() { ControlLicense license = new ControlLicense(); license.LicenseFile = @"#APPPATH\license.txt"; string supportdir = Environment.CurrentDirectory; ResourceFileCollection resources = license.GetResources(supportdir); Assert.AreEqual(1, resources.Count); Assert.AreEqual(Path.Combine(Environment.CurrentDirectory, "license.txt"), resources[0].path); Assert.AreEqual("RES_LICENSE", resources[0].id); }
public void ResourceFileCollectionWebProject() { Common.IExtractResourceAction actionObject = new Common.WebsiteCSharpExtractResourceAction(); Project testProject = (Project)(extensibility.Solution.Projects.Item(4)); ResourceFileCollection collection = new ResourceFileCollection(testProject, new FilterMethod(actionObject.IsValidResourceFile)); String[] names = new string[] { "Resource.resx" }; Assert.AreEqual(names.Length, collection.Count, Messages.ResourceFilesCountInvalid); foreach (string name in names) { Assert.IsNotNull(collection.GetResourceFile(name), Messages.ResourceFileNotFound); } }
public void ResourceFileCollectionCSharpProject() { // Get Project object Project testProject = (Project)(extensibility.Solution.Projects.Item(3)); IExtractResourceAction action = new GenericCSharpExtractResourceAction(); ResourceFileCollection collection = new ResourceFileCollection(testProject, new FilterMethod(action.IsValidResourceFile)); String[] names = new string[] { "Resource1.resx", "Test1.resx", "Resources.resx" }; Assert.AreEqual(names.Length, collection.Count, Messages.ResourceFilesCountInvalid); foreach (string name in names) { Assert.IsNotNull(collection.GetResourceFile(name), Messages.ResourceFileNotFound); } }
public void ResourceFileReadAfterRefreshWithoutSave() { Project testProject = (Project)(extensibility.Solution.Projects.Item(1)); IExtractResourceAction action = new GenericCSharpExtractResourceAction(); ResourceFileCollection collection = new ResourceFileCollection(testProject, new FilterMethod(action.IsValidResourceFile)); ResourceFile testFile = collection[0]; Assert.AreEqual(2, testFile.Resources.Count, Messages.ResourceCountInvalid); Assert.AreEqual("Test", testFile.GetValue("TestResource"), Messages.ResourceValueInvalid); testFile.AddResource("Test2", "Test3", "Comment Test"); testFile.Refresh(); Assert.AreEqual(2, testFile.Resources.Count, Messages.ResourceCountInvalid); Assert.AreEqual("Test", testFile.GetValue("TestResource"), Messages.ResourceValueInvalid); }
public void GetAllMatchesTest() { Project testProject = (Project)(extensibility.Solution.Projects.Item(1)); Common.IExtractResourceAction action = new GenericCSharpExtractResourceAction(); ResourceFileCollection collection = new ResourceFileCollection(testProject, new FilterMethod(action.IsValidResourceFile)); ResourceFile testFile = collection["Resource1.resx"]; Collection<ResourceMatch> matches = testFile.GetAllMatches("Test"); foreach (ResourceMatch m in matches) { if (m.Percentage == StringMatch.ExactMatch) { Assert.AreEqual("TestResource", m.ResourceName, "Did not match to expected resource entry"); Assert.AreEqual("Test", m.Value, "Value does not match the string searched"); } } }
public void ResourceFileCollectionMissingFile() { Common.IExtractResourceAction actionObject = new Common.GenericCSharpExtractResourceAction(); Project testProject = (Project)(extensibility.Solution.Projects.Item(1)); string filePath = Path.Combine(Paths.Default.ProjectFiles, @"TestProject1\TestProject1\Resource1.resx"); bool readOnly = CommonMethods.ToggleReadOnly(filePath, true); File.Move(filePath, filePath + ".bak"); ResourceFileCollection collection = new ResourceFileCollection(testProject, new FilterMethod(actionObject.IsValidResourceFile)); Assert.AreEqual(1, collection.Count, Messages.ResourceFilesCountInvalid); File.Move(filePath + ".bak", filePath); if (readOnly) { CommonMethods.ToggleReadOnly(filePath, false); } }
public void GetAllMatchesTest() { Project testProject = (Project)(extensibility.Solution.Projects.Item(1)); Common.IExtractResourceAction action = new GenericCSharpExtractResourceAction(); ResourceFileCollection collection = new ResourceFileCollection(testProject, new FilterMethod(action.IsValidResourceFile)); ResourceFile testFile = collection["Resource1.resx"]; Collection <ResourceMatch> matches = testFile.GetAllMatches("Test"); foreach (ResourceMatch m in matches) { if (m.Percentage == StringMatch.ExactMatch) { Assert.AreEqual("TestResource", m.ResourceName, "Did not match to expected resource entry"); Assert.AreEqual("Test", m.Value, "Value does not match the string searched"); } } }
public void GenericCSharpReplaceMethodReadOnlyTest() { // Get Project object Project testProject = (Project)(extensibility.Solution.Projects.Item(3)); ProjectItem codeFile = testProject.ProjectItems.Item("Program.cs"); CSharpHardCodedString hcs = new CSharpHardCodedString(codeFile, 19, 32); IExtractResourceAction actionObject = new Common.GenericCSharpExtractResourceAction(); ResourceFileCollection resources = new ResourceFileCollection(testProject, new FilterMethod(actionObject.IsValidResourceFile)); ResourceFile resFile = resources["Resource1.resx"]; string fileName = codeFile.get_FileNames(1); FileAttributes oldAttributes = System.IO.File.GetAttributes(fileName); System.IO.File.SetAttributes(fileName, oldAttributes | FileAttributes.ReadOnly); try { ExtractToResourceActionSite refactorSite = new ExtractToResourceActionSite(hcs); refactorSite.ExtractStringToResource(resFile, "Test"); } finally { System.IO.File.SetAttributes(fileName, oldAttributes); } }
public void ResourceFileReadAfterSave() { Project testProject = (Project)(extensibility.Solution.Projects.Item(1)); IExtractResourceAction action = new GenericCSharpExtractResourceAction(); ResourceFileCollection collection = new ResourceFileCollection(testProject, new FilterMethod(action.IsValidResourceFile)); ResourceFile testFile = collection[1]; FileAttributes attributes = File.GetAttributes(testFile.FileName); if (File.Exists(testFile.FileName + ".bak")) { File.SetAttributes(testFile.FileName + ".bak", attributes & ~FileAttributes.ReadOnly); File.Delete(testFile.FileName + ".bak"); } File.Copy(testFile.FileName, testFile.FileName + ".bak"); File.SetAttributes(testFile.FileName, attributes & ~FileAttributes.ReadOnly); File.SetAttributes(testFile.FileName + ".bak", attributes & ~FileAttributes.ReadOnly); try { Assert.AreEqual(1, testFile.Resources.Count, Messages.ResourceCountInvalid); Assert.AreEqual("Test", testFile.GetValue("TestString"), Messages.ResourceValueInvalid); testFile.AddResource("Test2", "Test3", "Comment Test"); testFile.SaveFile(); testFile.Refresh(); Assert.AreEqual(2, testFile.Resources.Count, Messages.ResourceCountInvalid); Assert.AreEqual("Test", testFile.GetValue("TestString"), Messages.ResourceValueInvalid); Assert.AreEqual("Comment Test", testFile.Resources["TestString"].Comment, Messages.ResourceCommentInvalid); Assert.AreEqual("Test3", testFile.GetValue("Test2"), Messages.ResourceValueInvalid); Assert.AreEqual("Comment Test", testFile.Resources["Test2"].Comment, Messages.ResourceCommentInvalid); } finally { File.Delete(testFile.FileName); File.Move(testFile.FileName + ".bak", testFile.FileName); File.SetAttributes(testFile.FileName, attributes); } }
/// <summary> /// Invokes replace method on the provided objects /// </summary> /// <param name="codeFile">Code file to test</param> /// <param name="resFile">Resource file to use</param> /// <param name="hcs">Hardcoded string to use</param> /// <param name="expected">Expected test string</param> internal static void TestReplaceMethod(ProjectItem codeFile, string resourceFileName, BaseHardCodedString hcs, string expected, string resourceName) { string fileName = codeFile.get_FileNames(1); bool readOnly = false; try { readOnly = CommonMethods.ToggleReadOnly(fileName, false); ExtractToResourceActionSite refactorSite = new ExtractToResourceActionSite(hcs); ResourceFileCollection resources = new ResourceFileCollection(codeFile.ContainingProject, new FilterMethod(refactorSite.ActionObject.IsValidResourceFile)); ResourceFile resFile = resources[resourceFileName]; refactorSite.ExtractStringToResource(resFile, resourceName); TextDocument doc = ((EnvDTE.TextDocument)codeFile.Document.Object(null)); EditPoint ep = doc.StartPoint.CreateEditPoint(); string line = ep.GetLines(hcs.StartingLine + 1, hcs.StartingLine + 2); Assert.AreEqual(expected, line, "New line does not match the expected output"); } finally { if (readOnly) CommonMethods.ToggleReadOnly(fileName, true); } }
public void ResourceFileMultipleAddsSameName() { Project testProject = (Project)(extensibility.Solution.Projects.Item(1)); IExtractResourceAction action = new GenericCSharpExtractResourceAction(); ResourceFileCollection collection = new ResourceFileCollection(testProject, new FilterMethod(action.IsValidResourceFile)); ResourceFile testFile = collection[0]; testFile.AddResource("Test2", "Test3", "Comment Test"); testFile.AddResource("Test2", "TestTest", "Comment"); }