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");
        }
Example #2
0
        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");
        }
Example #3
0
        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);
        }
Example #5
0
        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);
        }
Example #8
0
        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();
        }
Example #9
0
        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();
        }
Example #10
0
        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();
        }
Example #11
0
        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");
        }
Example #13
0
        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();
        }
 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);
        }
Example #17
0
 private RemoteLink addRemoteLink(LinkInput input, LinkManifest manifest)
 {
     return(manifest.AddRemoteLink(input));
 }