public void ShouldResolveToVBTemplateWhenProjectIsVB() { string message = "Hello World"; ExtensibleMockModelElement myModelElement = new ExtensibleMockModelElement(partition, message); MyArtifactLink link = CreateLink(myModelElement, EnvDTE.CodeModelLanguageConstants.vsCMLanguageVB); TextTemplateCodeGenerationStrategy strategy = new TextTemplateCodeGenerationStrategy(); strategy.ResourceResolver = link; IDictionary<string, string> result = strategy.Generate(link); StringAssert.Contains(result[link.ItemPath], @"Generated from VB"); }
public void ShouldResolveToVBTemplateWhenProjectIsVB() { string message = "Hello World"; ExtensibleMockModelElement myModelElement = new ExtensibleMockModelElement(partition, message); MyArtifactLink link = CreateLink(myModelElement, EnvDTE.CodeModelLanguageConstants.vsCMLanguageVB); TextTemplateCodeGenerationStrategy strategy = new TextTemplateCodeGenerationStrategy(); strategy.ResourceResolver = link; IDictionary <string, string> result = strategy.Generate(link); StringAssert.Contains(result[link.ItemPath], @"Generated from VB"); }
public void TestMyTemplateGetsCalled() { string message = "Hello World"; ExtensibleMockModelElement myModelElement = new ExtensibleMockModelElement(partition, message); MyArtifactLink link = CreateLink(myModelElement); TextTemplateCodeGenerationStrategy strategy = new TextTemplateCodeGenerationStrategy(); strategy.ResourceResolver = link; IDictionary<string, string> result = strategy.Generate(link); Assert.AreEqual<string>(message, result[link.ItemPath]); }
public void TestMyTemplateGetsCalled() { string message = "Hello World"; ExtensibleMockModelElement myModelElement = new ExtensibleMockModelElement(partition, message); MyArtifactLink link = CreateLink(myModelElement); TextTemplateCodeGenerationStrategy strategy = new TextTemplateCodeGenerationStrategy(); strategy.ResourceResolver = link; IDictionary <string, string> result = strategy.Generate(link); Assert.AreEqual <string>(message, result[link.ItemPath]); }
public void TestCancelOutputGetsCalled() { ExtensibleMockModelElement myModelElement = new ExtensibleMockModelElement(partition, ""); ProjectNode project = GetTestProjectNode(); CancelOutputArtifactLink link = new CancelOutputArtifactLink(myModelElement); Utility.SetData <IServiceProvider>(link, new MockServiceProvider()); Utility.SetData <ProjectNode>(link, project); TextTemplateCodeGenerationStrategy strategy = new TextTemplateCodeGenerationStrategy(); strategy.ResourceResolver = link; IDictionary <string, string> result = strategy.Generate(link); Assert.AreEqual <int>(0, result.Count); }
public void ShouldSelectAnyTextTemplateIfLanguageSpecificNotAvailable() { string message = "Hello World"; ExtensibleMockModelElement myModelElement = new ExtensibleMockModelElement(partition, message); ProjectNode project = GetTestProjectNode(EnvDTE.CodeModelLanguageConstants.vsCMLanguageVB); MyLanguageIndependentArtifactLink link = new MyLanguageIndependentArtifactLink(myModelElement); Utility.SetData <IServiceProvider>(link, new MockServiceProvider()); Utility.SetData <ProjectNode>(link, project); TextTemplateCodeGenerationStrategy strategy = new TextTemplateCodeGenerationStrategy(); strategy.ResourceResolver = link; IDictionary <string, string> result = strategy.Generate(link); Assert.AreEqual <string>("NoTemplate.any.tt", result[link.ItemPath]); }
public void ShouldGetAssemblyReferences() { string message = "Hello World"; ExtensibleMockModelElement myModelElement = new ExtensibleMockModelElement(partition, message); ProjectNode project = GetTestProjectNode(); AssemblyReferencesArtifactLink link = new AssemblyReferencesArtifactLink(myModelElement); Utility.SetData <IServiceProvider>(link, new MockServiceProvider()); Utility.SetData <ProjectNode>(link, project); TextTemplateCodeGenerationStrategy strategy = new TextTemplateCodeGenerationStrategy(); strategy.ResourceResolver = link; strategy.Generate(link); Assert.AreEqual <int>(2, strategy.AssemblyReferences.Count); }
public void TestCompileErrorsGetLogged() { string message = "Foo"; ExtensibleMockModelElement myModelElement = new ExtensibleMockModelElement(partition, message); ProjectNode project = GetTestProjectNode(); CompileErrorArtifactLink link = new CompileErrorArtifactLink(myModelElement); Utility.SetData <IServiceProvider>(link, new MockServiceProvider()); Utility.SetData <ProjectNode>(link, project); TextTemplateCodeGenerationStrategy strategy = new TextTemplateCodeGenerationStrategy(); strategy.ResourceResolver = link; IDictionary <string, string> result = strategy.Generate(link); Assert.AreEqual <int>(1, strategy.Errors.Count); Assert.IsTrue(strategy.Errors[0].Message.Contains(message)); }
public void ShouldGenerateErrorIfNoApplicableTemplate() { string message = "Hello World"; ExtensibleMockModelElement myModelElement = new ExtensibleMockModelElement(partition, message); // CSharp language project should look for C# template then any, but link only has VB. ProjectNode project = GetTestProjectNode(EnvDTE.CodeModelLanguageConstants.vsCMLanguageCSharp); VbOnlyArtifactLink link = new VbOnlyArtifactLink(myModelElement); Utility.SetData <IServiceProvider>(link, new MockServiceProvider()); Utility.SetData <ProjectNode>(link, project); TextTemplateCodeGenerationStrategy strategy = new TextTemplateCodeGenerationStrategy(); strategy.ResourceResolver = link; strategy.Generate(link); }
public void TestExceptionsGetLogged() { string message = "Hello World"; ExtensibleMockModelElement myModelElement = new ExtensibleMockModelElement(partition, message); ProjectNode project = GetTestProjectNode(); ErrorArtifactLink link = new ErrorArtifactLink(myModelElement); Utility.SetData <IServiceProvider>(link, new MockServiceProvider()); Utility.SetData <ProjectNode>(link, project); TextTemplateCodeGenerationStrategy strategy = new TextTemplateCodeGenerationStrategy(); strategy.ResourceResolver = link; IDictionary <string, string> result = strategy.Generate(link); Assert.IsFalse(result.Values.Contains(typeof(InvalidOperationException).Name)); Assert.IsTrue(result.Values.Contains(message)); Assert.AreEqual <int>(2, strategy.Errors.Count); Assert.IsTrue(strategy.Errors[1].Message.Contains(message)); }
public void ShouldGenerateErrorIfNoApplicableTemplate() { string message = "Hello World"; ExtensibleMockModelElement myModelElement = new ExtensibleMockModelElement(partition, message); // CSharp language project should look for C# template then any, but link only has VB. ProjectNode project = GetTestProjectNode(EnvDTE.CodeModelLanguageConstants.vsCMLanguageCSharp); VbOnlyArtifactLink link = new VbOnlyArtifactLink(myModelElement); Utility.SetData<IServiceProvider>(link, new MockServiceProvider()); Utility.SetData<ProjectNode>(link, project); TextTemplateCodeGenerationStrategy strategy = new TextTemplateCodeGenerationStrategy(); strategy.ResourceResolver = link; strategy.Generate(link); }
public void ShouldSelectAnyTextTemplateIfLanguageSpecificNotAvailable() { string message = "Hello World"; ExtensibleMockModelElement myModelElement = new ExtensibleMockModelElement(partition, message); ProjectNode project = GetTestProjectNode(EnvDTE.CodeModelLanguageConstants.vsCMLanguageVB); MyLanguageIndependentArtifactLink link = new MyLanguageIndependentArtifactLink(myModelElement); Utility.SetData<IServiceProvider>(link, new MockServiceProvider()); Utility.SetData<ProjectNode>(link, project); TextTemplateCodeGenerationStrategy strategy = new TextTemplateCodeGenerationStrategy(); strategy.ResourceResolver = link; IDictionary<string, string> result = strategy.Generate(link); Assert.AreEqual<string>("NoTemplate.any.tt", result[link.ItemPath]); }
public void TestCancelOutputGetsCalled() { ExtensibleMockModelElement myModelElement = new ExtensibleMockModelElement(partition, ""); ProjectNode project = GetTestProjectNode(); CancelOutputArtifactLink link = new CancelOutputArtifactLink(myModelElement); Utility.SetData<IServiceProvider>(link, new MockServiceProvider()); Utility.SetData<ProjectNode>(link, project); TextTemplateCodeGenerationStrategy strategy = new TextTemplateCodeGenerationStrategy(); strategy.ResourceResolver = link; IDictionary<string, string> result = strategy.Generate(link); Assert.AreEqual<int>(0, result.Count); }
public void TestCompileErrorsGetLogged() { string message = "Foo"; ExtensibleMockModelElement myModelElement = new ExtensibleMockModelElement(partition, message); ProjectNode project = GetTestProjectNode(); CompileErrorArtifactLink link = new CompileErrorArtifactLink(myModelElement); Utility.SetData<IServiceProvider>(link, new MockServiceProvider()); Utility.SetData<ProjectNode>(link, project); TextTemplateCodeGenerationStrategy strategy = new TextTemplateCodeGenerationStrategy(); strategy.ResourceResolver = link; IDictionary<string, string> result = strategy.Generate(link); Assert.AreEqual<int>(1, strategy.Errors.Count); Assert.IsTrue(strategy.Errors[0].Message.Contains(message)); }
public void TestExceptionsGetLogged() { string message = "Hello World"; ExtensibleMockModelElement myModelElement = new ExtensibleMockModelElement(partition, message); ProjectNode project = GetTestProjectNode(); ErrorArtifactLink link = new ErrorArtifactLink(myModelElement); Utility.SetData<IServiceProvider>(link, new MockServiceProvider()); Utility.SetData<ProjectNode>(link, project); TextTemplateCodeGenerationStrategy strategy = new TextTemplateCodeGenerationStrategy(); strategy.ResourceResolver = link; IDictionary<string, string> result = strategy.Generate(link); Assert.IsFalse(result.Values.Contains(typeof(InvalidOperationException).Name)); Assert.IsTrue(result.Values.Contains(message)); Assert.AreEqual<int>(2, strategy.Errors.Count); Assert.IsTrue(strategy.Errors[1].Message.Contains(message)); }
public void ShouldGetAssemblyReferences() { string message = "Hello World"; ExtensibleMockModelElement myModelElement = new ExtensibleMockModelElement(partition, message); ProjectNode project = GetTestProjectNode(); AssemblyReferencesArtifactLink link = new AssemblyReferencesArtifactLink(myModelElement); Utility.SetData<IServiceProvider>(link, new MockServiceProvider()); Utility.SetData<ProjectNode>(link, project); TextTemplateCodeGenerationStrategy strategy = new TextTemplateCodeGenerationStrategy(); strategy.ResourceResolver = link; strategy.Generate(link); Assert.AreEqual<int>(2, strategy.AssemblyReferences.Count); }