Update of /cvsroot/springnet/Spring.Net/src/Spring/Spring.Data/Data/Support
In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv14558/Support
Modified Files:
DefaultServiceDomainAdapter.cs IServiceDomainAdapter.cs
Added Files:
SimpleServiceConfig.cs
Log Message:
SPRNET-773 - Unit tests for ServiceDomainTransactionManager
(refactorings to support)
--- NEW FILE: SimpleServiceConfig.cs ---
using System.EnterpriseServices;
namespace Spring.Data.Support
{
/// <summary>
/// A class that contains the properties of ServiceConfig used by ServiceDomainPlatformTransactionManager. This is
/// done to enhance testability of the transaction manager since ServiceConfig does not override Equals or Hashcode
/// </summary>
public class SimpleServiceConfig
{
private string transactionDescription;
private bool trackingEnabled = true;
private string trackingAppName;
private string trackingComponentName;
private TransactionOption transactionOption;
private TransactionIsolationLevel isolationLevel;
private int transactionTimeout;
public string TransactionDescription
{
get { return transactionDescription; }
set { transactionDescription = value; }
}
public bool TrackingEnabled
{
get { return trackingEnabled; }
set { trackingEnabled = value; }
}
public string TrackingAppName
{
get { return trackingAppName; }
set { trackingAppName = value; }
}
public string TrackingComponentName
{
get { return trackingComponentName; }
set { trackingComponentName = value; }
}
public TransactionOption TransactionOption
{
get { return transactionOption; }
set { transactionOption = value; }
}
public TransactionIsolationLevel IsolationLevel
{
get { return isolationLevel; }
set { isolationLevel = value; }
}
public int TransactionTimeout
{
get { return transactionTimeout; }
set { transactionTimeout = value; }
}
public ServiceConfig CreateServiceConfig()
{
ServiceConfig serviceConfig = new ServiceConfig();
serviceConfig.TransactionDescription = this.transactionDescription;
serviceConfig.TrackingEnabled = this.trackingEnabled;
serviceConfig.TrackingAppName = this.trackingAppName;
serviceConfig.TrackingComponentName = this.trackingComponentName;
serviceConfig.Transaction = this.transactionOption;
serviceConfig.IsolationLevel = this.isolationLevel;
serviceConfig.TransactionTimeout = this.transactionTimeout;
return serviceConfig;
}
public override bool Equals(object obj)
{
if (this == obj) return true;
SimpleServiceConfig simpleServiceConfig = obj as SimpleServiceConfig;
if (simpleServiceConfig == null) return false;
if (!Equals(transactionDescription, simpleServiceConfig.transactionDescription)) return false;
if (!Equals(trackingEnabled, simpleServiceConfig.trackingEnabled)) return false;
if (!Equals(trackingAppName, simpleServiceConfig.trackingAppName)) return false;
if (!Equals(trackingComponentName, simpleServiceConfig.trackingComponentName)) return false;
if (!Equals(transactionOption, simpleServiceConfig.transactionOption)) return false;
if (!Equals(isolationLevel, simpleServiceConfig.isolationLevel)) return false;
if (transactionTimeout != simpleServiceConfig.transactionTimeout) return false;
return true;
}
public override int GetHashCode()
{
int result = transactionDescription != null ? transactionDescription.GetHashCode() : 0;
result = 29*result + trackingEnabled.GetHashCode();
result = 29*result + (trackingAppName != null ? trackingAppName.GetHashCode() : 0);
result = 29*result + (trackingComponentName != null ? trackingComponentName.GetHashCode() : 0);
result = 29*result + transactionOption.GetHashCode();
result = 29*result + isolationLevel.GetHashCode();
result = 29*result + transactionTimeout;
return result;
}
}
}
Index: DefaultServiceDomainAdapter.cs
===================================================================
RCS file: /cvsroot/springnet/Spring.Net/src/Spring/Spring.Data/Data/Support/DefaultServiceDomainAdapter.cs,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** DefaultServiceDomainAdapter.cs 1 Dec 2007 20:02:57 -0000 1.2
--- DefaultServiceDomainAdapter.cs 4 Dec 2007 08:16:42 -0000 1.3
***************
*** 39,45 ****
/// </summary>
/// <param name="config">A ServiceConfig that contains the configuration information for the services to be used within the enclosed code.</param>
! public void Enter(ServiceConfig config)
{
! ServiceDomain.Enter(config);
}
--- 39,46 ----
/// </summary>
/// <param name="config">A ServiceConfig that contains the configuration information for the services to be used within the enclosed code.</param>
! public void Enter(SimpleServiceConfig config)
{
! ServiceConfig serviceConfig = config.CreateServiceConfig();
! ServiceDomain.Enter(serviceConfig);
}
Index: IServiceDomainAdapter.cs
===================================================================
RCS file: /cvsroot/springnet/Spring.Net/src/Spring/Spring.Data/Data/Support/IServiceDomainAdapter.cs,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** IServiceDomainAdapter.cs 1 Dec 2007 20:02:57 -0000 1.2
--- IServiceDomainAdapter.cs 4 Dec 2007 08:16:42 -0000 1.3
***************
*** 39,43 ****
/// </summary>
/// <param name="config">A ServiceConfig that contains the configuration information for the services to be used within the enclosed code.</param>
! void Enter(ServiceConfig config);
/// <summary>
--- 39,43 ----
/// </summary>
/// <param name="config">A ServiceConfig that contains the configuration information for the services to be used within the enclosed code.</param>
! void Enter(SimpleServiceConfig config);
/// <summary>
|