protected internal UnitOfWorkTestContext GetUnitOfWorkTestContext()
{
Predicate <UnitOfWorkTestContext> criteria;
if (_container == null)
{
criteria = ctx => ctx.ContainerConfigPath == StringOrEmpty(_containerConfigPath) &&
ctx.DatabaseEngine == _root.DatabaseEngine &&
ctx.DatabaseName == _root.DatabaseName;
}
else
{
criteria = ctx => ctx.Container == _container &&
ctx.DatabaseEngine == _root.DatabaseEngine &&
ctx.DatabaseName == _root.DatabaseName;
}
var context = Contexts.Find(criteria);
if (context == null)
{
var dbStrategy = UnitOfWorkTestContextDbStrategy.For(_root.DatabaseEngine,
_root.DatabaseName,
_root.NHibernateConfigurationProperties);
context = (_container != null)
? UnitOfWorkTestContext.FluentFor(_container, dbStrategy, _root.MappingInfo, _root.ConfigAction,
_root.Conventions)
: UnitOfWorkTestContext.FluentFor(_containerConfigPath, dbStrategy, _root.MappingInfo,
_root.ConfigAction, _root.Conventions);
Contexts.Add(context);
if (IsDebugEnabled)
{
log.Debug("Create another UnitOfWorkContext for: [{0}]", context);
}
}
return(context);
}