public void SetUp()
        {
            var writer = new DeploymentWriter("clonewars");

            var recipeDefinition = writer.RecipeFor("r1");
            var host = recipeDefinition.HostFor("h1");

            host.AddDirective(new SimpleSettings
            {
                One = "one",
                Two = "two"
            });

            host.AddDirective(new OneSettings()
            {
                Name = "Jeremy",
                Age = 37
            });

            host.AddReference(new BottleReference()
            {
                Name = "bottle1"
            });

            host.AddReference(new BottleReference()
            {
                Name = "bottle2"
            });

            recipeDefinition.HostFor("h2").AddProperty<ThreeSettings>(x => x.Direction, "North");
            recipeDefinition.HostFor("h3").AddProperty<TwoSettings>(x => x.City, "Austin");

            writer.RecipeFor("r2").HostFor("h3").AddProperty<SimpleSettings>(x => x.One, "one");
            writer.RecipeFor("r3").HostFor("h3").AddProperty<SimpleSettings>(x => x.Two, "two");
            writer.RecipeFor("r4").HostFor("h4").AddProperty<SimpleSettings>(x => x.Two, "ten");
            writer.RecipeFor("r4").HostFor("h5").AddProperty<SimpleSettings>(x => x.Two, "ten");
            writer.RecipeFor("r4").HostFor("h5").AddProperty<SimpleSettings>(x => x.One, "*{dbName}*");

            writer.AddEnvironmentSetting<SimpleSettings>(x => x.Two, "h4", "env-value");
            writer.AddEnvironmentSetting("dbName", "blue");

            writer.ProfileFor("default").AddRecipe("r1");
            writer.ProfileFor("default").AddRecipe("r2");
            writer.ProfileFor("default").AddRecipe("r3");
            writer.ProfileFor("default").AddRecipe("r4");

            writer.Flush(FlushOptions.Wipeout);

            var settings = new DeploymentSettings("clonewars");
            var reader = new DeploymentGraphReader(settings);
            var options = new DeploymentOptions("default");
            var graph = reader.Read(options);
            thePlan = new DeploymentPlan(options, graph);

            theHosts = thePlan.Hosts;
        }
        private void writeDeploymentFiles()
        {
            new FileSystem().CleanDirectory(_deploymentFolderPath);
            var writer = new DeploymentWriter(_deploymentFolderPath);

            writer.RecipeFor("r1");
            writer.RecipeFor("r2");
            writer.RecipeFor("r3");
            writer.RecipeFor("r4");
            writer.RecipeFor("r5");

            writer.ProfileFor("depprofile").AddRecipe("r3");
            writer.ProfileFor("depprofile").AddProperty<ProfileConfigRoundTripSettings>(x => x.Bar, "original bar value");
            writer.ProfileFor("depprofile").AddProperty<ProfileConfigRoundTripSettings>(x => x.Foo, "foo depprofile {dbName}");

            writer.ProfileFor("settingsdepprofile").AddRecipe("r5");
            writer.ProfileFor("settingsdepprofile").AddProperty<ProfileConfigRoundTripSettings>(x => x.Bar, "another bar value");
            writer.ProfileFor("settingsdepprofile").AddProperty<ProfileConfigRoundTripSettings>(x => x.Foo, "baz settingsdepprofile {instancevar}");

            writer.ProfileFor("main").AddRecipe("r1");
            writer.ProfileFor("main").AddRecipe("r2");
            writer.ProfileFor("main").AddProfileDependency("depprofile");
            writer.ProfileFor("main").AddProperty("dbName", "profile-db");
            writer.ProfileFor("main").AddProperty<ProfileConfigRoundTripSettings>(x => x.Bar, "Bar value");

            writer.ProfileFor("mainsettings").AddRecipe("r4");
            writer.ProfileFor("mainsettings").AddProfileDependency("settingsdepprofile");
            writer.ProfileFor("mainsettings").AddProperty("instancevar", "instanceName");
            writer.ProfileFor("mainsettings").AddProperty<ProfileConfigRoundTripSettings>(x => x.Bar, "mainsettings Bar value");

            writer.Flush(FlushOptions.Wipeout);

            //var settings = new DeploymentSettings("profile_config_writer_tests/deployment");
            //var reader = new DeploymentGraphReader(settings);
            //var options = new DeploymentOptions("main");
            //var graph = reader.Read(options);
            //thePlan = new DeploymentPlan(options, graph);
        }