public void load_packages_by_assembly() { var includes = new PackageManifest(); new FileSystem().PersistToFile(includes, theApplicationDirectory, PackageManifest.FILE); var links = new LinkManifest(); links.AddLink("../TestPackage1"); new FileSystem().PersistToFile(links, theApplicationDirectory, LinkManifest.FILE); var assemblyLoader = new AssemblyLoader(new BottlingDiagnostics()); assemblyLoader.AssemblyFileLoader = file => Assembly.Load(Path.GetFileNameWithoutExtension(file)); var package = linkedFolderReader.Load(new PackageLog()).Single(); assemblyLoader.LoadAssembliesFromPackage(package); assemblyLoader .Assemblies .Single() .GetName() .Name .ShouldEqual("TestPackage1"); }
public void add_remote_link_modifies_existing() { var manifest = new LinkManifest(); manifest.AddRemoteLink(new LinkInput { BottleFolder = "foo", AppFolder = System.Environment.CurrentDirectory }); manifest.AddRemoteLink(new LinkInput { BottleFolder = "foo", BootstrapperFlag = "SomeClass", AppFolder = System.Environment.CurrentDirectory }); manifest.AddRemoteLink(new LinkInput { AppFolder = System.Environment.CurrentDirectory, BottleFolder = "foo", BootstrapperFlag = "OtherClass", ConfigFileFlag = "Web.config" }); var link = manifest.RemoteLinks.Single(); link.Folder.ShouldEqual("foo"); link.BootstrapperName.ShouldEqual("OtherClass"); link.ConfigFile.ShouldEqual("Web.config"); }
private static void add(LinkInput input, LinkManifest manifest) { var wasAdded = manifest.AddLink(input.RelativePathOfPackage()); var msg = wasAdded ? "Folder {0} was added to the application at {1}" : "Folder {0} is already included in the application at {1}"; var system = new FileSystem(); var bottleFolder = input.BottleFolder; if (!system.FileExists(bottleFolder.AppendPath(PackageManifest.FILE))) { var name = GuessAssemblyNameForFolder(bottleFolder, system); ConsoleWriter.Write(ConsoleColor.Green, "Initializing a new {0} file at {1}".ToFormat(PackageManifest.FILE, bottleFolder)); new InitCommand().Execute(new InitInput { Path = bottleFolder, Name = name }); } ConsoleWriter.Write(msg, bottleFolder, input.AppFolder); }
private static void add(LinkInput input, LinkManifest manifest) { var wasAdded = manifest.AddLink(input.RelativePathOfPackage()); var msg = wasAdded ? "Folder {0} was added to the application at {1}" : "Folder {0} is already included in the application at {1}"; ConsoleWriter.Write(msg, input.PackageFolder, input.AppFolder); }
protected override void beforeEach() { theInput = new LinkInput { BottleFolder = "package", AppFolder = "app", }; appManifest = new LinkManifest(); btlManifest = new LinkManifest(); }
public static void ListCurrentLinks(string appFolder, LinkManifest manifest) { if (manifest.LinkedFolders.Any()) { ConsoleWriter.Write(" Links for " + appFolder); manifest.LinkedFolders.Each(x => { ConsoleWriter.Write(" " + x); }); } else { ConsoleWriter.Write(" No package links for " + appFolder); } }
private void updateManifest(LinkInput input, IFileSystem fileSystem, LinkManifest manifest) { if (input.RemoveFlag) { remove(input, manifest); } else { add(input, manifest); } persist(input, manifest, fileSystem); }
public void remove_link_can_get_remote_link_too() { var manifest = new LinkManifest(); manifest.AddRemoteLink(new LinkInput { AppFolder = System.Environment.CurrentDirectory, BottleFolder = "foo" }); manifest.RemoveLink("foo"); manifest.RemoteLinks.Any().ShouldBeFalse(); }
static void Main(string[] args) { var manifest = new LinkManifest(); manifest.AddRemoteLink(new RemoteLink { Folder = "../../../BottleService1", BootstrapperName = "BottleService1.BottleService1Bootstrapper, BottleService1" }); manifest.AddRemoteLink(new RemoteLink { Folder = "../../../BottleService2", BootstrapperName = "BottleService2.BottleService2Bootstrapper, BottleService2" }); manifest.AddRemoteLink(new RemoteLink { Folder = "../../../BottleService3", BootstrapperName = "BottleService3.BottleService3Bootstrapper, BottleService3" }); new FileSystem().WriteObjectToFile(LinkManifest.FILE, manifest); PackageRegistry.LoadPackages(x => { }); PackageRegistry.AssertNoFailures(); Console.WriteLine("Type anything to quit"); Console.ReadLine(); }
public void remove_all_linked_folders_gets_remotes_too() { var manifest = new LinkManifest(); manifest.AddLink("foo"); manifest.AddRemoteLink(new LinkInput { AppFolder = System.Environment.CurrentDirectory, BottleFolder = "foo" }); manifest.RemoteLinks.Any().ShouldBeTrue(); manifest.LinkedFolders.Any().ShouldBeTrue(); manifest.RemoveAllLinkedFolders(); manifest.RemoteLinks.Any().ShouldBeFalse(); manifest.LinkedFolders.Any().ShouldBeFalse(); }
private void updateManifest(ILinksService links, LinkInput input, LinkManifest manifest) { if (input.RemoveFlag) { manifest.RemoveLink(input.RelativePathOfPackage()); ConsoleWriter.Write("Folder {0} was removed from the application at {1}", input.BottleFolder, input.AppFolder); } else { if (input.RemoteFlag) { var link = addRemoteLink(input, manifest); Console.WriteLine("Setting remote link " + link); } else { add(input, manifest); } } links.Save(manifest, input.AppFolder); }
public void load_packages_by_assembly() { var includes = new PackageManifest(); new FileSystem().PersistToFile(includes, theApplicationDirectory, PackageManifest.FILE); var links = new LinkManifest(); links.AddLink("../TestPackage1"); new FileSystem().PersistToFile(links, theApplicationDirectory, LinkManifest.FILE); var assemblyLoader = new AssemblyLoader(new BottlingDiagnostics(new LoggingSession())); assemblyLoader.AssemblyFileLoader = file => Assembly.Load(Path.GetFileNameWithoutExtension(file)); var package = linkedFolderReader.Load(new PackageLog()).Single(); assemblyLoader.LoadAssembliesFromPackage(package); assemblyLoader .Assemblies .Single() .GetName() .Name .ShouldEqual("TestPackage1"); }
private void persist(LinkInput input, LinkManifest manifest, IFileSystem fileSystem) { fileSystem.PersistToFile(manifest, input.AppFolder, LinkManifest.FILE); }
private void remove(LinkInput input, LinkManifest manifest) { manifest.RemoveLink(input.RelativePathOfPackage()); ConsoleWriter.Write("Folder {0} was removed from the application at {1}", input.PackageFolder, input.AppFolder); }
private void listCurrentLinks(LinkInput input, LinkManifest manifest) { var appFolder = input.AppFolder; ListCurrentLinks(appFolder, manifest); }
private RemoteLink addRemoteLink(LinkInput input, LinkManifest manifest) { return(manifest.AddRemoteLink(input)); }