public void WhenBuildingUriForTemplateInProject_ThenUsesVsixIdentifierAndRelativePathToFile()
            {
                var uri = TextTemplateUriEditor.BuildUri(this.solution.Traverse().First(i => i.Name == "VsixTemplate.tt"));

                Assert.Equal("t4", uri.Scheme);
                Assert.Equal(TextTemplateUri.ExtensionRelativeHost, uri.Host);
                Assert.Equal("/ef4561f7-a3ea-4666-a080-bc2f195451e3/Templates/Text/VsixTemplate.tt", uri.PathAndQuery);
            }
            public void WhenBuildingUriForTemplateWithIncludeInVSIXAs_ThenUsesFilenameFromIncludeInVSIXAs()
            {
                var item = this.solution.Traverse().First(i => i.Name == "VsixTemplateAs.foo.tt") as IItem;

                item.Data.IncludeInVSIXAs = "NewTemplate.t4";

                var uri = TextTemplateUriEditor.BuildUri(item);

                Assert.Equal("t4", uri.Scheme);
                Assert.Equal(TextTemplateUri.ExtensionRelativeHost, uri.Host);
                Assert.Equal("/ef4561f7-a3ea-4666-a080-bc2f195451e3/Templates/Text/NewTemplate.t4", uri.PathAndQuery);
            }
 public void WhenBuildingUriForTemplateFromNonVsixProject_ThenThrowsArgumentException()
 {
     Assert.Throws <ArgumentException>(() => TextTemplateUriEditor.BuildUri(solution.Traverse().First(i => i.Name == "NormalProject.tt")));
 }
 public void WhenBuildingUriForTemplateOutsideAProject_ThenThrowsArgumentException()
 {
     Assert.Throws <ArgumentException>(() => TextTemplateUriEditor.BuildUri(solution.Traverse().First(i => i.Name == "SolutionItem.tt")));
 }