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");
		}
Exemple #2
0
        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]);
		}
Exemple #4
0
        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]);
        }
Exemple #5
0
        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);
        }
Exemple #6
0
        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]);
        }
Exemple #7
0
        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);
        }
Exemple #8
0
        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));
        }
Exemple #9
0
        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);
        }
Exemple #10
0
        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);
		}