Skip to content

Commit

Permalink
Merge branch 'stable'
Browse files Browse the repository at this point in the history
* stable:
  (GH-133) defer container lookups until Run()
  • Loading branch information
ferventcoder committed Mar 1, 2015
2 parents 9ae9a11 + 9d9d0b4 commit 9774f8c
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 29 deletions.
6 changes: 0 additions & 6 deletions src/chocolatey.tests/GetChocolateySpecs.cs
Original file line number Diff line number Diff line change
Expand Up @@ -71,12 +71,6 @@ public void should_get_instantiated_chocolotey2()
{
_chocolatey2.ShouldNotBeNull();
}

[Fact]
public void should_have_distinct_configurations()
{
_chocolatey1.GetConfiguration().ShouldNotEqual(_chocolatey2.GetConfiguration());
}
}
}
}
43 changes: 20 additions & 23 deletions src/chocolatey/GetChocolatey.cs
Original file line number Diff line number Diff line change
Expand Up @@ -49,9 +49,8 @@ public static GetChocolatey GetChocolatey()
/// </summary>
public class GetChocolatey
{
private readonly ChocolateyConfiguration _configuration;
private readonly Container _container;
private readonly IFileSystem _fileSystem;
private Action<ChocolateyConfiguration> _propConfig;

/// <summary>
/// Initializes a new instance of the <see cref="GetChocolatey"/> class.
Expand All @@ -60,20 +59,7 @@ public GetChocolatey()
{
Log4NetAppenderConfiguration.configure();
Bootstrap.initialize();
_configuration = new ChocolateyConfiguration();
_container = SimpleInjectorContainer.Container;
_fileSystem = _container.GetInstance<IFileSystem>();

set_defaults();
}

private void set_defaults()
{
ConfigurationBuilder.set_up_configuration(new List<string>(), _configuration, _fileSystem, _container.GetInstance<IXmlService>(), null);
Config.initialize_with(_configuration);

_configuration.PromptForConfirmation = false;
_configuration.AcceptLicense = true;
}

/// <summary>
Expand All @@ -94,15 +80,10 @@ public GetChocolatey SetCustomLogging(ILog logger)
/// <returns>This <see cref="GetChocolatey"/> instance</returns>
public GetChocolatey Set(Action<ChocolateyConfiguration> propConfig)
{
propConfig.Invoke(_configuration);
_propConfig = propConfig;
return this;
}

public ChocolateyConfiguration GetConfiguration()
{
return _configuration;
}

/// <summary>
/// Registers a container component. Does not require a dependency on Simple Injector.
/// Will override existing component if registered.
Expand Down Expand Up @@ -195,9 +176,25 @@ public void Run()
"tools"
};

AssemblyFileExtractor.extract_all_resources_to_relative_directory(_fileSystem, Assembly.GetAssembly(typeof (ChocolateyResourcesAssembly)), ApplicationParameters.InstallLocation, folders, ApplicationParameters.ChocolateyFileResources);
AssemblyFileExtractor.extract_all_resources_to_relative_directory(_container.GetInstance<IFileSystem>(), Assembly.GetAssembly(typeof(ChocolateyResourcesAssembly)), ApplicationParameters.InstallLocation, folders, ApplicationParameters.ChocolateyFileResources);
var configuration = create_configuration(new List<string>());
var runner = new GenericRunner();
runner.run(_configuration, _container, isConsole: false, parseArgs: null);
runner.run(configuration, _container, isConsole: false, parseArgs: null);
}

private ChocolateyConfiguration create_configuration(IList<string> args)
{
var configuration = new ChocolateyConfiguration();
ConfigurationBuilder.set_up_configuration(args, configuration, _container.GetInstance<IFileSystem>(), _container.GetInstance<IXmlService>(), null);
Config.initialize_with(configuration);

configuration.PromptForConfirmation = false;
configuration.AcceptLicense = true;
if (_propConfig != null)
{
_propConfig.Invoke(configuration);
}
return configuration;
}
}

Expand Down

0 comments on commit 9774f8c

Please sign in to comment.