Final refactoring to remove direct access to encapsulated ConfigData once in Config

This commit is contained in:
Phil Nash 2013-05-28 19:07:29 +01:00
parent 43fe6c6e9e
commit 6b8837bd93
2 changed files with 14 additions and 12 deletions

View File

@ -33,7 +33,7 @@ namespace Catch {
Totals runTests() {
std::vector<TestCaseFilters> filterGroups = m_config->data().filters;
std::vector<TestCaseFilters> filterGroups = m_config->filters();
if( filterGroups.empty() ) {
TestCaseFilters filterGroup( "" );
filterGroups.push_back( filterGroup );
@ -76,8 +76,8 @@ namespace Catch {
private:
void openStream() {
if( !m_config->data().stream.empty() )
m_config->useStream( m_config->data().stream );
if( !m_config->getStreamName().empty() )
m_config->useStream( m_config->getStreamName() );
// Open output file, if specified
if( !m_config->getFilename().empty() ) {
@ -91,9 +91,9 @@ namespace Catch {
}
}
void makeReporter() {
std::string reporterName = m_config->data().reporter.empty()
std::string reporterName = m_config->getReporterName().empty()
? "console"
: m_config->data().reporter;
: m_config->getReporterName();
m_reporter = getRegistryHub().getReporterRegistry().create( reporterName, m_config.get() );
if( !m_reporter ) {

View File

@ -88,7 +88,8 @@ namespace Catch {
Config( ConfigData const& data )
: m_data( data ),
m_os( std::cout.rdbuf() )
m_os( std::cout.rdbuf() ),
m_filters( data.filters )
{}
virtual ~Config() {
@ -135,6 +136,10 @@ namespace Catch {
m_stream = stream;
}
std::string getStreamName() const { return m_data.stream; }
std::string getReporterName() const { return m_data.reporter; }
void addTestSpec( std::string const& testSpec ) {
TestCaseFilters filters( testSpec );
filters.addFilter( TestCaseFilter( testSpec ) );
@ -145,11 +150,8 @@ namespace Catch {
return m_data.cutoff;
}
ConfigData const& data() const {
return m_data;
}
ConfigData& data() {
return m_data;
std::vector<TestCaseFilters> const& filters() const {
return m_filters;
}
// IConfig interface
@ -162,9 +164,9 @@ namespace Catch {
private:
ConfigData m_data;
// !TBD Move these out of here
Stream m_stream;
mutable std::ostream m_os;
std::vector<TestCaseFilters> m_filters;
};