Conversation Workaround (Tests)

This commit is contained in:
Hailton de Castro
2012-06-08 23:20:49 -03:00
parent 83856555c9
commit d14b754ad3
79 changed files with 5885 additions and 0 deletions

View File

@@ -0,0 +1,5 @@
using System.Reflection;
using System.Runtime.CompilerServices;
[assembly: AssemblyTitle("Spring.ConversationWA.NH32 Integration Tests")]
[assembly: AssemblyDescription("Integration tests for Spring.ConversationWA.NH32.Tests assembly")]

View File

@@ -0,0 +1,35 @@
using System;
using System.Data;
using System.Configuration;
namespace Spring.Bsn
{
/// <summary>
/// <see cref="IConversationEvidenceBsn"/>
/// </summary>
public class ConversationEvidenceBsnImpl: IConversationEvidenceBsn
{
private String uniqueId = "";
/// <summary>
/// Create instance with unique id.
/// </summary>
public ConversationEvidenceBsnImpl()
{
uniqueId = Guid.NewGuid().ToString();
}
#region IConversationEvidenceBsn Members
/// <summary>
/// <see cref="IConversationEvidenceBsn"/>
/// </summary>
/// <returns></returns>
public String UniqueId()
{
return this.uniqueId;
}
#endregion
}
}

View File

@@ -0,0 +1,19 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace Spring.Bsn
{
/// <summary>
/// Simulates a business infrastructure in order to demonstrate the end of
/// the conversation.
/// </summary>
public interface IConversationEvidenceBsn
{
/// <summary>
/// Return a unique id per instance.
/// </summary>
/// <returns></returns>
String UniqueId();
}
}

View File

@@ -0,0 +1,17 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace Spring.Bsn
{
/// <summary>
/// TODO:
/// </summary>
public interface IConnectionReleaseModeIssueBsn
{
/// <summary>
/// TODO
/// </summary>
void Test();
}
}

View File

@@ -0,0 +1,63 @@
using System;
using System.Collections.Generic;
using System.Text;
using NHibernate;
using Spring.Entities;
using NUnit.Framework;
using Spring.Spring.Data.Common;
namespace Spring.Bsn
{
/// <summary>
/// Outside the "transaction boundaries", each statement
/// execution (lazy loads) was being made a call to
/// "IDbProvider.CreateConnection()". This would
/// cause a large over-reading because most of the "lazy loads" tend to
/// occur outside the "transaction boundaries".
/// The solution to this is to use "connection.release_mode" with "on_close"
/// in "HibernateProperties."
/// This test was created to show how the connection openings
/// occur in the following scenarios:
/// *Test with conversation and "connection.release_mode"
/// "auto"(ConnectionReleaseMode.AfterTransaction).
/// *Test with NO conversation and "connection.release_mode"
/// "auto"(ConnectionReleaseMode.AfterTransaction)
/// on block within the scope of "transaction boundary".
/// *Test with NO conversation and "connection.release_mode"
/// "auto"(ConnectionReleaseMode.AfterTransaction).
/// *Test with conversation and "connection.release_mode"
/// "on_close"(ConnectionReleaseMode.OnClose).
/// </summary>
public class ConnectionReleaseModeIssueBsnImpl : IConnectionReleaseModeIssueBsn
{
private ISessionFactory sessionFactory;
/// <summary>
/// SessionFactory.
/// </summary>
public ISessionFactory SessionFactory
{
get { return sessionFactory; }
set { sessionFactory = value; }
}
#region IConnectionReleaseModeIssueBsn Members
/// <summary>
/// Test.
/// </summary>
[Transaction.Interceptor.Transaction(ReadOnly=true)]
public void Test()
{
ISession sessionNoConv = this.SessionFactory.GetCurrentSession();
SPCMasterEnt masterEnt2 = sessionNoConv.Get<SPCMasterEnt>(2);
Assert.AreEqual(1, masterEnt2.SPCDetailEntList.Count, "masterEnt2.SPCDetailEntList.Count");
SPCMasterEnt masterEnt3 = sessionNoConv.Get<SPCMasterEnt>(3);
Assert.AreEqual(1, masterEnt3.SPCDetailEntList.Count, "masterEnt3.SPCDetailEntList.Count");
Assert.AreEqual(1, CountGetConnDbProvider.Count, "CountGetConnDbProvider.Count");
}
#endregion
}
}

View File

@@ -0,0 +1,37 @@
using System;
using System.Collections.Generic;
using System.Text;
using Spring.Web.UI;
using Spring.ConversationWA;
namespace Spring.ConversationWA
{
/// <summary>
/// Base class for test pages for test
/// <see cref="WebConversationStateTest.PatialEndConvTest()"/>.
/// </summary>
public class PatialEndConvBeginBasePage: Page
{
private IConversationState conversation;
/// <summary>
/// <see cref="IConversationState"/>
/// </summary>
public IConversationState Conversation
{
get { return conversation; }
set { conversation = value; }
}
/// <summary>
/// Common Begin.
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected virtual void Page_Load(object sender, EventArgs e)
{
this.Conversation.StartResumeConversation();
Session["ConversationStr"] = this.Conversation.ToString();
}
}
}

View File

@@ -0,0 +1,35 @@
using System;
using System.Collections.Generic;
using System.Text;
using Spring.Web.UI;
using Spring.ConversationWA;
namespace Spring.ConversationWA
{
/// <summary>
/// Base class for test pages for test
/// <see cref="WebConversationStateTest.PatialEndConvTest()"/>.
/// </summary>
public abstract class PatialEndConvEndBasePage: Page
{
private IConversationState conversation;
/// <summary>
/// <see cref="IConversationState"/>
/// </summary>
public IConversationState Conversation
{
get { return conversation; }
set { conversation = value; }
}
/// <summary>
/// Common End.
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
public virtual void Page_Load(object sender, EventArgs e)
{
this.Conversation.EndConversation();
}
}
}

View File

@@ -0,0 +1,18 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using NUnit.Framework;
namespace Spring.ConversationWA
{
[TestFixture]
public class SimpleTest
{
[Test]
public void Test()
{
Assert.AreEqual(2, 1 + 1, "2 == 1 + 1");
}
}
}

View File

@@ -0,0 +1,3 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="CircularDependenceTest.aspx.cs" Inherits="CircularDependenceTest" %><%
Response.Write("OK");
%>

View File

@@ -0,0 +1,56 @@
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using Spring.ConversationWA;
using NUnit.Framework;
using Spring.Context.Support;
using System.Text;
using Common.Logging;
using Spring.Context;
public partial class CircularDependenceTest : System.Web.UI.Page, IApplicationContextAware
{
private static readonly ILog LOG = LogManager.GetLogger(typeof(CircularDependenceTest));
protected void Page_Load(object sender, EventArgs e)
{
IConversationState convCircularDependenceTest_A = (IConversationState)this.applicationContext.GetObject("convCircularDependenceTest_A");
IConversationState convCircularDependenceTest_A_A_A = (IConversationState)this.applicationContext.GetObject("convCircularDependenceTest_A_A_A");
StringBuilder sbErrors = new StringBuilder();
try
{
convCircularDependenceTest_A_A_A.InnerConversations.Add(convCircularDependenceTest_A);
sbErrors.AppendLine("Circular was not detected. ");
}
catch (InvalidOperationException ioe)
{
LOG.Debug("SERVER SIDE ERROR", ioe);
if (!ioe.Message.Contains("convCircularDependenceTest_A_A_A->convCircularDependenceTest_A->convCircularDependenceTest_A_A->convCircularDependenceTest_A_A_A"))
{
sbErrors.AppendLine(String.Format("Wrong CircularDependence message= '{0}'", ioe.Message));
}
}
catch (Exception ex)
{
LOG.Error("SERVER SIDE ERROR", ex);
sbErrors.AppendLine(String.Format("Unexpected Error: '{0}' \n {1}", ex.Message, ex.StackTrace));
}
Session["CircularDependenceTest"] = sbErrors.ToString();
}
#region IApplicationContextAware Members
private IApplicationContext applicationContext;
public IApplicationContext ApplicationContext
{
set { this.applicationContext = value; }
}
#endregion
}

View File

@@ -0,0 +1,16 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ConnectionReleaseModeIssue.aspx.cs" Inherits="ConnectionReleaseModeIssue" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
</div>
</form>
</body>
</html>

View File

@@ -0,0 +1,265 @@
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using Spring.ConversationWA;
using Spring.Data.NHibernate.Support;
using NHibernate;
using Spring.Entities;
using Spring.Spring.Data.Common;
using NUnit.Framework;
using Spring.Bsn;
using NHibernate.Impl;
using System.Reflection;
using NHibernate.Cfg;
using Spring.Context;
/// <summary>
/// Page for <see cref="Spring.ConversationWA.WebConversationStateTest.ConnectionReleaseModeIssue()"/>.
/// </summary>
public partial class ConnectionReleaseModeIssue : System.Web.UI.Page, IApplicationContextAware
{
private IConversationState conversation;
/// <summary>
/// <see cref="IConversationState"/>
/// </summary>
public IConversationState Conversation
{
get { return conversation; }
set { conversation = value; }
}
private ISessionFactory sessionFactory;
public ISessionFactory SessionFactory
{
get { return sessionFactory; }
set { sessionFactory = value; }
}
private IConnectionReleaseModeIssueBsn connectionReleaseModeIssueBsn;
public IConnectionReleaseModeIssueBsn ConnectionReleaseModeIssueBsn
{
get { return connectionReleaseModeIssueBsn; }
set { connectionReleaseModeIssueBsn = value; }
}
protected void Page_Load(object sender, EventArgs e)
{
try
{
/// Test with conversation and "connection.release_mode"
/// "auto"(<see cref="ConnectionReleaseMode.AfterTransaction"/>).
this.connection_release_mode_auto();
/// Test with NO conversation and "connection.release_mode"
/// "auto"(<see cref="ConnectionReleaseMode.AfterTransaction"/>)
/// on block within the scope of "transaction boundary".
this.connection_release_mode_auto_transaction_boundary();
/// Test with NO conversation and "connection.release_mode"
/// "auto"(<see cref="ConnectionReleaseMode.AfterTransaction"/>).
this.connection_release_mode_auto_no_conversation();
/// Test with conversation and "connection.release_mode"
/// "on_close"(<see cref="ConnectionReleaseMode.OnClose"/>).
this.connection_release_mode_on_close();
Session["result"] = "OK";
}
catch (Exception ex)
{
Session["result"] = ex.Message + " " + ex.StackTrace;
//throw;
}
}
/// <summary>
/// Test with conversation and "connection.release_mode"
/// "auto"(<see cref="ConnectionReleaseMode.AfterTransaction"/>).
/// </summary>
/// <remarks>
/// Here we can see that every statement causes a closing of the IDbConnection.
/// </remarks>
private void connection_release_mode_auto()
{
//with conversation and "connection.release_mode" "auto"(AfterTransaction)
//forcing "auto" by reflection.
Settings settings = ((SessionFactoryImpl)this.SessionFactory).Settings;
ConnectionReleaseMode connReleaseModeOriginal = settings.ConnectionReleaseMode;
this.setConnectionReleaseModeByReflection(settings, ConnectionReleaseMode.AfterTransaction);
//((SessionFactoryImpl)this.sessionFactory).Settings.ConnectionReleaseMode = ConnectionReleaseMode.AfterTransaction;
CountGetConnDbProvider.Count = 0;
this.Conversation.StartResumeConversation();
ISession sessionA = this.SessionFactory.GetCurrentSession();
SPCDetailEnt detailEnt = sessionA.Get<SPCDetailEnt>(1);
Assert.AreEqual(1, CountGetConnDbProvider.Count, "CountGetConnDbProvider.Count");
SessionScopeSettings sessionScopeSettings = new SessionScopeSettings(this.sessionFactory);
sessionScopeSettings.SingleSession = true;
SPCMasterEnt masterEnt;
using (new SessionScope(sessionScopeSettings, false))
{
ISession sessionB = this.SessionFactory.GetCurrentSession();
masterEnt = sessionB.Get<SPCMasterEnt>(1);
Assert.AreEqual(2, CountGetConnDbProvider.Count, "CountGetConnDbProvider.Count");
Assert.AreSame(sessionA, sessionB, "sessionA, sessionB");
}
SPCMasterEnt masterEnt2 = sessionA.Get<SPCMasterEnt>(2);
Assert.AreEqual(3, CountGetConnDbProvider.Count, "CountGetConnDbProvider.Count");
Assert.AreEqual(1, masterEnt2.SPCDetailEntList.Count, "masterEnt2.SPCDetailEntList.Count");
Assert.AreEqual(4, CountGetConnDbProvider.Count, "CountGetConnDbProvider.Count");
SPCMasterEnt masterEnt3 = sessionA.Get<SPCMasterEnt>(3);
Assert.AreEqual(5, CountGetConnDbProvider.Count, "CountGetConnDbProvider.Count");
Assert.AreEqual(1, masterEnt3.SPCDetailEntList.Count, "masterEnt3.SPCDetailEntList.Count");
Assert.AreEqual(6, CountGetConnDbProvider.Count, "CountGetConnDbProvider.Count");
//Renew the conversation.
this.Conversation.EndConversation();
this.Conversation.ConversationManager.FreeEnded();
this.Conversation = (IConversationState)this.applicationContext.GetObject("convConnectionReleaseModeIssue");
this.setConnectionReleaseModeByReflection(settings, connReleaseModeOriginal);
}
/// <summary>
/// Test with NO conversation and "connection.release_mode"
/// "auto"(<see cref="ConnectionReleaseMode.AfterTransaction"/>)
/// on block within the scope of "transaction boundary".
/// </summary>
/// <remarks>
/// Here we can see that only a IDbConnection is open, even
/// with the execution of various statements. This is because
/// the statements are made within a "transaction boundary".
/// </remarks>
private void connection_release_mode_auto_transaction_boundary()
{
//with conversation and "connection.release_mode" "auto"(AfterTransaction)
//forcing "auto" by reflection.
Settings settings = ((SessionFactoryImpl)this.SessionFactory).Settings;
ConnectionReleaseMode connReleaseModeOriginal = settings.ConnectionReleaseMode;
this.setConnectionReleaseModeByReflection(settings, ConnectionReleaseMode.AfterTransaction);
CountGetConnDbProvider.Count = 0;
this.ConnectionReleaseModeIssueBsn.Test();
this.setConnectionReleaseModeByReflection(settings, connReleaseModeOriginal);
}
/// <summary>
/// Test with NO conversation and "connection.release_mode"
/// "auto"(<see cref="ConnectionReleaseMode.AfterTransaction"/>).
/// </summary>
private void connection_release_mode_auto_no_conversation()
{
//with NO conversation and "connection.release_mode" "auto"(AfterTransaction)
//forcing "auto" by reflection.
Settings settings = ((SessionFactoryImpl)this.SessionFactory).Settings;
ConnectionReleaseMode connReleaseModeOriginal = settings.ConnectionReleaseMode;
this.setConnectionReleaseModeByReflection(settings, ConnectionReleaseMode.AfterTransaction);
//with no conversation
SessionScopeSettings sessionScopeSettings = new SessionScopeSettings(this.sessionFactory);
CountGetConnDbProvider.Count = 0;
using (new SessionScope(sessionScopeSettings, true))
{
ISession sessionNoConv = this.SessionFactory.GetCurrentSession();
SPCMasterEnt masterEnt2 = sessionNoConv.Get<SPCMasterEnt>(2);
Assert.AreEqual(1, CountGetConnDbProvider.Count, "CountGetConnDbProvider.Count");
Assert.AreEqual(1, masterEnt2.SPCDetailEntList.Count, "masterEnt2.SPCDetailEntList.Count");
Assert.AreEqual(2, CountGetConnDbProvider.Count, "CountGetConnDbProvider.Count");
SPCMasterEnt masterEnt3 = sessionNoConv.Get<SPCMasterEnt>(3);
Assert.AreEqual(3, CountGetConnDbProvider.Count, "CountGetConnDbProvider.Count");
Assert.AreEqual(1, masterEnt3.SPCDetailEntList.Count, "masterEnt3.SPCDetailEntList.Count");
Assert.AreEqual(4, CountGetConnDbProvider.Count, "CountGetConnDbProvider.Count");
}
this.setConnectionReleaseModeByReflection(settings, connReleaseModeOriginal);
}
/// <summary>
/// Test with conversation and "connection.release_mode"
/// "on_close"(<see cref="ConnectionReleaseMode.OnClose"/>).
/// </summary>
/// <remarks>
/// Here we can see that only a IDbConnection is open, even
/// with the execution of various statements.
/// </remarks>
private void connection_release_mode_on_close()
{
//forcing "on_close" by reflection.
Settings settings = ((SessionFactoryImpl)this.SessionFactory).Settings;
ConnectionReleaseMode connReleaseModeOriginal = settings.ConnectionReleaseMode;
this.setConnectionReleaseModeByReflection(settings, ConnectionReleaseMode.OnClose);
//with conversation and "connection.release_mode" "on_close"(AfterTransaction)
CountGetConnDbProvider.Count = 0;
this.Conversation.StartResumeConversation();
ISession sessionA = this.SessionFactory.GetCurrentSession();
SPCDetailEnt detailEnt = sessionA.Get<SPCDetailEnt>(1);
Assert.AreEqual(1, CountGetConnDbProvider.Count, "CountGetConnDbProvider.Count");
SessionScopeSettings sessionScopeSettings = new SessionScopeSettings(this.sessionFactory);
sessionScopeSettings.SingleSession = true;
SPCMasterEnt masterEnt;
using (new SessionScope(sessionScopeSettings, false))
{
ISession sessionB = this.SessionFactory.GetCurrentSession();
masterEnt = sessionB.Get<SPCMasterEnt>(1);
Assert.AreSame(sessionA, sessionB, "sessionA, sessionB");
}
Assert.AreEqual(3, masterEnt.SPCDetailEntList.Count, "masterEnt.SPCDetailEntList.Count");
Assert.AreEqual(1, CountGetConnDbProvider.Count, "CountGetConnDbProvider.Count");
//Renew the conversation.
this.Conversation.EndConversation();
this.Conversation.ConversationManager.FreeEnded();
this.Conversation = (IConversationState)this.applicationContext.GetObject("convConnectionReleaseModeIssue");
this.setConnectionReleaseModeByReflection(settings, connReleaseModeOriginal);
}
/// <summary>
/// Sets the <see cref="Settings.ConnectionReleaseMode"/> by reflection.
/// </summary>
/// <param name="settings">The settings.</param>
/// <param name="mode">The mode.</param>
private void setConnectionReleaseModeByReflection(Settings settings, ConnectionReleaseMode mode)
{
PropertyInfo pInfoConnectionReleaseMode =
settings.GetType().GetProperty(
"ConnectionReleaseMode",
BindingFlags.Public |
BindingFlags.NonPublic |
BindingFlags.SetProperty |
BindingFlags.Instance);
pInfoConnectionReleaseMode.SetValue(settings, mode, null);
}
#region IApplicationContextAware Members
private IApplicationContext applicationContext;
public IApplicationContext ApplicationContext
{
set { this.applicationContext = value; }
}
#endregion
}

View File

@@ -0,0 +1,3 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="EndConversationTestBegin.aspx.cs" Inherits="EndConversationTestBegin" %><%
Response.Write("OK");
%>

View File

@@ -0,0 +1,37 @@
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using Spring.ConversationWA;
using Spring.Bsn;
public partial class EndConversationTestBegin : System.Web.UI.Page
{
private IConversationEvidenceBsn conversationEvidenceBsn;
public IConversationEvidenceBsn ConversationEvidenceBsn
{
get { return conversationEvidenceBsn; }
set { conversationEvidenceBsn = value; }
}
private IConversationState conversation;
public IConversationState Conversation
{
get { return conversation; }
set { conversation = value; }
}
protected void Page_Load(object sender, EventArgs e)
{
this.Conversation.StartResumeConversation();
Session["ConversationEvidenceBsn_UniqId"] = this.ConversationEvidenceBsn.UniqueId();
}
}

View File

@@ -0,0 +1,3 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="EndConversationTestEnd.aspx.cs" Inherits="EndConversationTestEnd" %><%
Response.Write("OK");
%>

View File

@@ -0,0 +1,35 @@
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using Spring.Bsn;
using Spring.ConversationWA;
public partial class EndConversationTestEnd : System.Web.UI.Page
{
private IConversationEvidenceBsn conversationEvidenceBsn;
public IConversationEvidenceBsn ConversationEvidenceBsn
{
get { return conversationEvidenceBsn; }
set { conversationEvidenceBsn = value; }
}
private IConversationState conversation;
public IConversationState Conversation
{
get { return conversation; }
set { conversation = value; }
}
protected void Page_Load(object sender, EventArgs e)
{
this.Conversation.EndConversation();
}
}

View File

@@ -0,0 +1,16 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="EndPausedSessionIsClosedA.aspx.cs"Inherits="EndPausedSessionIsClosedA" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
</div>
</form>
</body>
</html>

View File

@@ -0,0 +1,40 @@
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using Spring.ConversationWA;
using Spring.Entities;
using NHibernate;
public partial class EndPausedSessionIsClosedA : System.Web.UI.Page
{
private IConversationState conversation;
/// <summary>
/// <see cref="IConversationState"/>
/// </summary>
public IConversationState Conversation
{
get { return conversation; }
set { conversation = value; }
}
protected void Page_Load(object sender, EventArgs e)
{
this.Session["result"] = "NOT OK";
this.Conversation.StartResumeConversation();
//database access
ISession session = this.Conversation.SessionFactory.GetCurrentSession();
SPCMasterEnt sPCMasterEnt = session.Get<SPCMasterEnt>(1);
this.Session["result"] = "OK";
}
}

View File

@@ -0,0 +1,16 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="EndPausedSessionIsClosedB.aspx.cs"Inherits="EndPausedSessionIsClosedB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
</div>
</form>
</body>
</html>

View File

@@ -0,0 +1,46 @@
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using Spring.ConversationWA;
using NHibernate;
using Spring.Entities;
public partial class EndPausedSessionIsClosedB : System.Web.UI.Page
{
private IConversationState conversation;
/// <summary>
/// <see cref="IConversationState"/>
/// </summary>
public IConversationState Conversation
{
get { return conversation; }
set { conversation = value; }
}
protected void Page_Load(object sender, EventArgs e)
{
this.Session["result"] = "NOT OK";
try
{
this.Conversation.StartResumeConversation();
//database access
ISession session = this.Conversation.SessionFactory.GetCurrentSession();
SPCMasterEnt sPCMasterEnt = session.Get<SPCMasterEnt>(1);
this.Session["result"] = "OK";
}
catch (Exception ex)
{
this.Session["result"] = ex.Message;
}
}
}

View File

@@ -0,0 +1,16 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="EndPausedTest.aspx.cs" Inherits="EndPausedTest" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
</div>
</form>
</body>
</html>

View File

@@ -0,0 +1,48 @@
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using Spring.ConversationWA;
public partial class EndPausedTest : System.Web.UI.Page
{
private IConversationState convA;
public IConversationState ConvA
{
get { return convA; }
set { convA = value; }
}
private IConversationState convB;
public IConversationState ConvB
{
get { return convB; }
set { convB = value; }
}
protected void Page_Load(object sender, EventArgs e)
{
if (this.Request["testPhase"] == "begin")
{
if (!this.convA.Ended && !this.convB.Ended)
this.Session["result"] = "OK";
else
this.Session["result"] = "(!this.convA.Ended && !this.convB.Ended) is false";
}
else if (this.Request["testPhase"] == "startConvA")
{
this.convA.StartResumeConversation();
if (!this.convA.Ended && this.convB.Ended)
this.Session["result"] = "OK";
else
this.Session["result"] = "(!this.convA.Ended && this.convB.Ended) is false";
}
}
}

View File

@@ -0,0 +1,3 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="GetParentObjetFromChild.aspx.cs" Inherits="GetParentObjetFromChild" %><%
Response.Write("OK");
%>

View File

@@ -0,0 +1,30 @@
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using Spring.ConversationWA;
public partial class GetParentObjetFromChild : System.Web.UI.Page
{
private IConversationState conversation;
public IConversationState Conversation
{
get { return conversation; }
set { conversation = value; }
}
protected void Page_Load(object sender, EventArgs e)
{
this.Conversation.StartResumeConversation();
Session["parentKey"] = this.Conversation["parentKey"];
Session["childKey"] = this.Conversation["childKey"];
Session["overwrittenKey"] = this.Conversation["overwrittenKey"];
}
}

View File

@@ -0,0 +1,3 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="IoeTests.aspx.cs" Inherits="IoeTests" %><%
Response.Write("OK");
%>

View File

@@ -0,0 +1,466 @@
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using Spring.ConversationWA;
using Spring.ConversationWA.Imple;
using System.Text.RegularExpressions;
using NHibernate;
using Spring.Data.NHibernate.Support;
using Common.Logging;
using Spring.Objects.Factory;
public partial class IoeTests : System.Web.UI.Page
{
private static readonly ILog LOG = LogManager.GetLogger(typeof(IoeTests));
private IConversationState conversationA;
public IConversationState ConversationA
{
get { return conversationA; }
set { conversationA = value; }
}
private IConversationState conversationAA;
public IConversationState ConversationAA
{
get { return conversationAA; }
set { conversationAA = value; }
}
private IConversationManager conversationManager;
public IConversationManager ConversationManager
{
get { return conversationManager; }
set { conversationManager = value; }
}
private ISessionFactory sessionFactory;
public ISessionFactory SessionFactory
{
get { return sessionFactory; }
set { sessionFactory = value; }
}
protected void Page_Load(object sender, EventArgs e)
{
try
{
if ("reset".Equals(this.Request.Params["test"]))
{
this.ConversationA.EndConversation();
this.Session["testResult"] = "OK";
}
else if ("alreadyHasAnotherManagerNotRaise".Equals(this.Request.Params["test"]))
{
this.alreadyHasAnotherManagerNotRaise();
}
else if ("alreadyHasAnotherManagerRaise".Equals(this.Request.Params["test"]))
{
this.alreadyHasAnotherManagerRaise();
}
else if ("conversationAlreadyDifferentParent".Equals(this.Request.Params["test"]))
{
this.conversationAlreadyDifferentParent();
}
else if ("setParentConversationIsNotNew".Equals(this.Request.Params["test"]))
{
this.setParentConversationIsNotNew();
}
else if ("startResumeConversationIsEnded".Equals(this.Request.Params["test"]))
{
this.startResumeConversationIsEnded();
}
else if ("participatingHibernateNotAlowed".Equals(this.Request.Params["test"]))
{
this.participatingHibernateNotAlowed();
}
else if ("idIsDifferentFromSpringName".Equals(this.Request.Params["test"]))
{
this.idIsDifferentFromSpringName();
}
else
{
throw new Exception("'test' request parameter was not recognized");
}
}
catch (Exception ex)
{
this.Session["testResult"] = "FAIL: " + ex.ToString();
}
}
private void alreadyHasAnotherManagerNotRaise()
{
IConversationManager otherConversationManager = new WebConversationManager();
//Not raise error
IConversationState otherConversationState = null;
try
{
otherConversationState = new WebConversationSpringState();
otherConversationState.Id = "otherConversationState";
otherConversationManager.AddConversation(otherConversationState);
this.Session["testResult"] = "OK";
}
catch (InvalidOperationException ioe)
{
this.Session["testResult"] = "NOT OK " + ioe.ToString();
}
finally
{
otherConversationState.EndConversation();
}
}
private void alreadyHasAnotherManagerRaise()
{
Regex msgErrorRx = new Regex(".*already.*has.*another.*manager.*");
IConversationManager otherConversationManager = null;
//Raise error
try
{
otherConversationManager = new WebConversationManager();
otherConversationManager.AddConversation(this.ConversationA);
this.Session["testResult"] = "NOT OK";
}
catch (InvalidOperationException ioe)
{
if (msgErrorRx.IsMatch(ioe.Message))
{
this.Session["testResult"] = "OK";
}
else
{
this.Session["testResult"] = "NOT OK " + ioe.Message;
}
}
}
private void conversationAlreadyDifferentParent()
{
Regex msgErrorRx = new Regex(".*conversation.*already.*different.*parent.*");
//BEGIN: Raise error
IConversationState otherConversationState = null;
try
{
otherConversationState = new WebConversationSpringState();
otherConversationState.Id = "otherConversationState";
//try first by 'InnerConversations.Add'
otherConversationState.InnerConversations.Add(this.ConversationAA);
throw new Exception("NOT OK: No raise for 'InnerConversations.Add(this.ConversationAA)'");
}
catch (InvalidOperationException ioe)
{
if (msgErrorRx.IsMatch(ioe.Message))
{
this.Session["testResult"] = "OK";
}
else
{
throw new Exception("NOT OK " + ioe.Message);
}
}
finally
{
otherConversationState.EndConversation();
}
try
{
otherConversationState = new WebConversationSpringState();
otherConversationState.Id = "otherConversationState";
//try second by 'ParenteConversation = '
this.ConversationAA.ParenteConversation = otherConversationState;
throw new Exception("NOT OK: No raise for 'this.ConversationAA.ParenteConversation = otherConversationState'");
}
catch (InvalidOperationException ioe)
{
if (msgErrorRx.IsMatch(ioe.Message))
{
this.Session["testResult"] = "OK";
}
else
{
throw new Exception("NOT OK, 'ex.Message' not match :" + ioe.Message);
}
}
finally
{
otherConversationState.EndConversation();
}
//END: Raise error
//BEGIN: NO Raise error
otherConversationState = null;
try
{
otherConversationState = new WebConversationSpringState();
otherConversationState.Id = "otherConversationState";
//try first by 'InnerConversations.Add'
this.ConversationAA.InnerConversations.Add(otherConversationState);
this.Session["testResult"] = "OK";
}
finally
{
otherConversationState.EndConversation();
}
try
{
otherConversationState = new WebConversationSpringState();
otherConversationState.Id = "otherConversationState";
//try second by 'ParenteConversation = '
otherConversationState.ParenteConversation = this.ConversationA;
this.Session["testResult"] = "OK";
}
finally
{
otherConversationState.EndConversation();
}
//END: NO Raise error
}
private void setParentConversationIsNotNew()
{
Regex msgErrorRx = new Regex(".*Conversation.*not.*new.*Conversation.Id.*Parent.*Tried.*");
IConversationState otherConversationState = null;
//BEGIN: Raise error
try
{
otherConversationState = new WebConversationSpringState();
otherConversationState.Id = "otherConversationState";
// make not new
otherConversationState.StartResumeConversation();
//try first by 'InnerConversations.Add'
this.ConversationA.InnerConversations.Add(otherConversationState);
throw new Exception("NOT OK: No raise for 'this.ConversationA.InnerConversations.Add(otherConversationState)'");
}
catch (InvalidOperationException ioe)
{
if (msgErrorRx.IsMatch(ioe.Message))
{
this.Session["testResult"] = "OK";
}
else
{
throw new Exception("NOT OK " + ioe.Message);
}
}
finally
{
otherConversationState.EndConversation();
}
try
{
otherConversationState = new WebConversationSpringState();
otherConversationState.Id = "otherConversationState";
// make not new
otherConversationState.StartResumeConversation();
//try second by 'ParenteConversation = '
otherConversationState.ParenteConversation = this.ConversationA;
throw new Exception("NOT OK: No raise for 'this.ConversationAA.ParenteConversation = otherConversationState'");
}
catch (InvalidOperationException ioe)
{
if (msgErrorRx.IsMatch(ioe.Message))
{
this.Session["testResult"] = "OK";
}
else
{
throw new Exception("NOT OK, 'ex.Message' not match :" + ioe.Message);
}
}
finally
{
otherConversationState.EndConversation();
}
//END: Raise error
//BEGIN: NO Raise error
try
{
otherConversationState = new WebConversationSpringState();
otherConversationState.Id = "otherConversationState";
// leave new
//try first by 'InnerConversations.Add'
this.ConversationA.InnerConversations.Add(otherConversationState);
this.Session["testResult"] = "OK";
}
finally
{
otherConversationState.EndConversation();
}
try
{
otherConversationState = new WebConversationSpringState();
otherConversationState.Id = "otherConversationState";
// leave new
//try second by 'ParenteConversation = '
otherConversationState.ParenteConversation = this.ConversationA;
this.Session["testResult"] = "OK";
}
finally
{
otherConversationState.EndConversation();
}
//END: NO Raise error
}
private void startResumeConversationIsEnded()
{
Regex msgErrorRx = new Regex(".*StartResumeConversation.*conversation.*is.*ended.*");
IConversationState otherConversationState = null;
//BEGIN: Raise error
try
{
otherConversationState = new WebConversationSpringState();
otherConversationState.Id = "otherConversationState";
// make not new
otherConversationState.EndConversation();
otherConversationState.StartResumeConversation();
throw new Exception("NOT OK: No raise for 'otherConversationState.StartResumeConversation()'");
}
catch (InvalidOperationException ioe)
{
if (msgErrorRx.IsMatch(ioe.Message))
{
this.Session["testResult"] = "OK";
}
else
{
throw new Exception("NOT OK " + ioe.Message);
}
}
finally
{
otherConversationState.EndConversation();
}
//END: Raise error
//BEGIN: NO Raise error
try
{
otherConversationState = new WebConversationSpringState();
otherConversationState.Id = "otherConversationState";
// make not new
otherConversationState.StartResumeConversation();
otherConversationState.EndConversation();
this.Session["testResult"] = "OK";
}
finally
{
otherConversationState.EndConversation();
}
//END: NO Raise error
}
private void participatingHibernateNotAlowed()
{
Regex msgErrorRx = new Regex(".*Participating.*Hibernate.*NOT.*ALOWED.*");
try
{
//No raise
this.ConversationA.StartResumeConversation();
ISession session = this.SessionFactory.GetCurrentSession();
this.ConversationManager.FreeEnded();
this.ConversationManager.PauseConversations();
this.Session["testResult"] = "OK";
}
finally
{
this.ConversationManager.FreeEnded();
this.ConversationManager.PauseConversations();
}
try
{
//Raise
this.ConversationA.StartResumeConversation();
this.ConversationManager.FreeEnded();
this.ConversationManager.PauseConversations();
SessionScopeSettings sessionScopeSettings = new SessionScopeSettings(this.sessionFactory);
sessionScopeSettings.SingleSession = true;
using (new SessionScope(sessionScopeSettings, true))
{
ISession session = this.SessionFactory.GetCurrentSession();
this.ConversationA.StartResumeConversation();
}
throw new Exception("NOT OK: No raise for 'this.ConversationA.StartResumeConversation()'");
}
catch (InvalidOperationException ioe)
{
if (msgErrorRx.IsMatch(ioe.Message))
{
this.Session["testResult"] = "OK";
}
else
{
throw new Exception("NOT OK " + ioe.Message);
}
}
finally
{
this.ConversationManager.FreeEnded();
this.ConversationManager.PauseConversations();
}
}
private void idIsDifferentFromSpringName()
{
Regex msgErrorRx = new Regex(".*Id.*is.*different.*from.*spring.*name.*");
IConversationState otherConversationState = null;
//BEGIN: Raise error
try
{
otherConversationState = new WebConversationSpringState();
otherConversationState.Id = "otherConversationState";
// different name
((IObjectNameAware)otherConversationState).ObjectName = "different_name";
throw new Exception("NOT OK: No raise for '((IObjectNameAware)otherConversationState).ObjectName ='");
}
catch (InvalidOperationException ioe)
{
if (msgErrorRx.IsMatch(ioe.Message))
{
this.Session["testResult"] = "OK";
}
else
{
throw new Exception("NOT OK " + ioe.Message);
}
}
finally
{
otherConversationState.EndConversation();
}
//END: Raise error
//BEGIN: NO Raise error
try
{
otherConversationState = new WebConversationSpringState();
otherConversationState.Id = "otherConversationState";
// make not new
// different name
((IObjectNameAware)otherConversationState).ObjectName = "otherConversationState";
this.Session["testResult"] = "OK";
}
finally
{
otherConversationState.EndConversation();
}
//END: NO Raise error
}
}

View File

@@ -0,0 +1,3 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="PatialEndConv_A_B_Begin.aspx.cs" Inherits="PatialEndConv_A_B_Begin" %><%
Response.Write("OK");
%>

View File

@@ -0,0 +1,15 @@
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using Spring.ConversationWA;
public partial class PatialEndConv_A_B_Begin : PatialEndConvBeginBasePage
{
}

View File

@@ -0,0 +1,3 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="PatialEndConv_A_B_End.aspx.cs" Inherits="PatialEndConv_A_B_End" %><%
Response.Write("OK");
%>

View File

@@ -0,0 +1,15 @@
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using Spring.ConversationWA;
public partial class PatialEndConv_A_B_End : PatialEndConvEndBasePage
{
}

View File

@@ -0,0 +1,3 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="PatialEndConv_A_Begin.aspx.cs" Inherits="PatialEndConv_A_Begin" %><%
Response.Write("OK");
%>

View File

@@ -0,0 +1,15 @@
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using Spring.ConversationWA;
public partial class PatialEndConv_A_Begin : PatialEndConvBeginBasePage
{
}

View File

@@ -0,0 +1,3 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="PatialEndConv_A_End.aspx.cs" Inherits="PatialEndConv_A_End" %><%
Response.Write("OK");
%>

View File

@@ -0,0 +1,15 @@
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using Spring.ConversationWA;
public partial class PatialEndConv_A_End : PatialEndConvEndBasePage
{
}

View File

@@ -0,0 +1,3 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="RedirectErrorNoPauseConversation.aspx.cs" Inherits="RedirectErrorNoPauseConversation" %><%
Response.Write("OK");
%>

View File

@@ -0,0 +1,58 @@
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using Spring.ConversationWA;
using Spring.Entities;
using System.Threading;
using NHibernate;
public partial class RedirectErrorNoPauseConversation : System.Web.UI.Page
{
private IConversationState conversation;
public IConversationState Conversation
{
get { return conversation; }
set { conversation = value; }
}
protected void Page_Load(object sender, EventArgs e)
{
if (this.Request.Params["step"].Equals("obtain_session_cookie"))
{
//nothing, only for obtain session cookie
}
if (this.Request.Params["step"].Equals("step_01"))
{
this.Conversation.StartResumeConversation();
//Open Session for the first time
ISession ss = this.Conversation.SessionFactory.GetCurrentSession();
this.Response.Redirect("RedirectErrorNoPauseConversation.aspx?step=step_02");
}
else if (this.Request.Params["step"].Equals("step_02"))
{
this.Conversation.StartResumeConversation();
}
else if (this.Request.Params["step"].Equals("Some_Exception"))
{
this.Conversation.StartResumeConversation();
//Open Session for the first time
ISession ss = this.Conversation.SessionFactory.GetCurrentSession();
throw new Exception("Some_Exception");
}
else if (this.Request.Params["step"].Equals("Post_Some_Exception"))
{
this.Conversation.StartResumeConversation();
}
else if (this.Request.Params["step"].Equals("end_conversation"))
{
this.Conversation.EndConversation();
}
}
}

View File

@@ -0,0 +1,3 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="SPCLazyLoadTest_A_Begin.aspx.cs" Inherits="SPCLazyLoadTest_A_Begin" %><%
Response.Write("OK");
%>

View File

@@ -0,0 +1,45 @@
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using Spring.ConversationWA;
using NHibernate;
using Spring.Entities;
public partial class SPCLazyLoadTest_A_Begin : System.Web.UI.Page
{
private IConversationState conversation;
public IConversationState Conversation
{
get { return conversation; }
set { conversation = value; }
}
private ISessionFactory sessionFactory;
public ISessionFactory SessionFactory
{
get { return sessionFactory; }
set { sessionFactory = value; }
}
protected void Page_Load(object sender, EventArgs e)
{
if (this.Request["endConversation"] != null && bool.Parse(this.Request["endConversation"]))
{
this.Conversation.EndConversation();
}
else
{
this.Conversation.StartResumeConversation();
ISession session = this.SessionFactory.GetCurrentSession();
SPCMasterEnt sPCMasterEnt = session.Get<SPCMasterEnt>(1);
this.Session["sPCMasterEnt"] = sPCMasterEnt;
}
}
}

View File

@@ -0,0 +1,3 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="SPCLazyLoadTest_A_Status.aspx.cs" Inherits="SPCLazyLoadTest_A_Status" %><%
Response.Write("OK");
%>

View File

@@ -0,0 +1,48 @@
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using Spring.ConversationWA;
using Spring.Entities;
using Common.Logging;
using NHibernate;
public partial class SPCLazyLoadTest_A_Status : System.Web.UI.Page
{
private static readonly ILog LOG = LogManager.GetLogger(typeof(SPCLazyLoadTest_A_Status));
private IConversationState conversation;
public IConversationState Conversation
{
get { return conversation; }
set { conversation = value; }
}
protected void Page_Load(object sender, EventArgs e)
{
try
{
this.Conversation.StartResumeConversation();
SPCMasterEnt sPCMasterEnt = (SPCMasterEnt)this.Session["sPCMasterEnt"];
foreach (SPCDetailEnt sPCDetailEntItem in sPCMasterEnt.SPCDetailEntList)
{
LOG.Debug(String.Format("Page_Load: sPCDetailEntItem.Description={0}", sPCDetailEntItem.Description));
}
this.Session["messageTest"] = "no lazy error";
}
catch (LazyInitializationException lex)
{
this.Session["messageTest"] = lex.GetType().FullName + ": " + lex.Message + "\n" + lex.StackTrace;
}
catch (Exception ex)
{
this.Session["messageTest"] = ex.GetType().FullName + ": " + ex.Message + "\n" + ex.StackTrace;
}
}
}

View File

@@ -0,0 +1,3 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="SPCSwitchConversationSameRequest.aspx.cs" Inherits="SPCSwitchConversationSameRequest" %><%
Response.Write("OK");
%>

View File

@@ -0,0 +1,112 @@
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using Spring.ConversationWA;
using Spring.Entities;
using NHibernate;
using Common.Logging;
public partial class SPCSwitchConversationSameRequest : System.Web.UI.Page
{
private static readonly ILog LOG = LogManager.GetLogger(typeof(SPCSwitchConversationSameRequest));
private IConversationState conversationA;
public IConversationState ConversationA
{
get { return conversationA; }
set { conversationA = value; }
}
private IConversationState conversationB;
public IConversationState ConversationB
{
get { return conversationB; }
set { conversationB = value; }
}
private ISessionFactory sessionFactory;
public ISessionFactory SessionFactory
{
get { return sessionFactory; }
set { sessionFactory = value; }
}
protected void Page_Load(object sender, EventArgs e)
{
this.ConversationA.StartResumeConversation();
SPCMasterEnt sPCMasterEntA = this.SessionFactory.GetCurrentSession().Get<SPCMasterEnt>(1);
this.ConversationB.StartResumeConversation();
SPCMasterEnt sPCMasterEntB = this.SessionFactory.GetCurrentSession().Get<SPCMasterEnt>(1);
//testeRaizeLazy_A
try
{
this.LoopSPCMasterEnt(sPCMasterEntA, "sPCMasterEntA");
}
catch (LazyInitializationException)
{
this.Session["testeRaizeLazy_A"] = "OK";
}
catch (Exception ex)
{
this.Session["testeRaizeLazy_A"] = ex.ToString();
}
//testeRaizeLazy_B
this.ConversationA.StartResumeConversation();
try
{
this.LoopSPCMasterEnt(sPCMasterEntB, "sPCMasterEntB");
}
catch (LazyInitializationException)
{
this.Session["testeRaizeLazy_B"] = "OK";
}
catch (Exception ex)
{
this.Session["testeRaizeLazy_B"] = ex.ToString();
}
//testeNoRaizeLazy_A
this.ConversationA.StartResumeConversation();
try
{
this.LoopSPCMasterEnt(sPCMasterEntA, "sPCMasterEntA");
this.Session["testeNoRaizeLazy_A"] = "OK";
}
catch (Exception ex)
{
this.Session["testeNoRaizeLazy_A"] = ex.ToString();
}
//testeNoRaizeLazy_B
this.ConversationB.StartResumeConversation();
try
{
this.LoopSPCMasterEnt(sPCMasterEntB, "sPCMasterEntB");
this.Session["testeNoRaizeLazy_B"] = "OK";
}
catch (Exception ex)
{
this.Session["testeNoRaizeLazy_B"] = ex.ToString();
}
this.ConversationA.EndConversation();
this.ConversationB.EndConversation();
}
private void LoopSPCMasterEnt(SPCMasterEnt sPCMasterEnt, String desc)
{
foreach (SPCDetailEnt sPCDetailEntItem in sPCMasterEnt.SPCDetailEntList)
{
LOG.Debug(String.Format("Page_Load({1}): sPCDetailEntItem.Description={0}", sPCDetailEntItem.Description, desc));
}
}
}

View File

@@ -0,0 +1,16 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="SessionIsClosedA.aspx.cs" Inherits="SessionIsClosedA" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
</div>
</form>
</body>
</html>

View File

@@ -0,0 +1,46 @@
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using Spring.ConversationWA;
using Spring.Entities;
using NHibernate;
public partial class SessionIsClosedA : System.Web.UI.Page
{
private IConversationState conversation;
/// <summary>
/// <see cref="IConversationState"/>
/// </summary>
public IConversationState Conversation
{
get { return conversation; }
set { conversation = value; }
}
protected void Page_Load(object sender, EventArgs e)
{
this.Session["result"] = "NOT OK";
try
{
this.Conversation.StartResumeConversation();
//database access
ISession session = this.Conversation.SessionFactory.GetCurrentSession();
SPCMasterEnt sPCMasterEnt = session.Get<SPCMasterEnt>(1);
this.Session["result"] = "OK";
}
catch (Exception ex)
{
this.Session["result"] = ex.Message;
}
}
}

View File

@@ -0,0 +1,16 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="SessionIsClosedB.aspx.cs" Inherits="SessionIsClosedB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
</div>
</form>
</body>
</html>

View File

@@ -0,0 +1,71 @@
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using Spring.ConversationWA;
using Spring.Entities;
using NHibernate;
public partial class SessionIsClosedB : System.Web.UI.Page
{
private IConversationState conversation;
/// <summary>
/// <see cref="IConversationState"/>
/// </summary>
public IConversationState Conversation
{
get { return conversation; }
set { conversation = value; }
}
private IConversationState conversationA;
/// <summary>
/// "convASessionIsClosed"
/// </summary>
public IConversationState ConversationA
{
get { return conversationA; }
set { conversationA = value; }
}
protected void Page_Load(object sender, EventArgs e)
{
this.Session["result"] = "NOT OK";
try
{
if ("endA_FreeEnded".Equals(this.Request["command"]))
{
this.Conversation.StartResumeConversation();
/*
* Producing the error "HibernateException: Session is closed..." This is because in
* "SessionPerConversationScope.LazySessionPerConversationHolder.CloseConversation(IConversationState)"
* we are closing the "SessionPerConversationScope.LazySessionPerConversationHolder.activeConversation"
* instead of parameter "conversation" (BUG).
*/
this.ConversationA.EndConversation();
this.ConversationA.ConversationManager.FreeEnded();
this.Conversation.ConversationManager.PauseConversations();
}
this.Conversation.StartResumeConversation();
//database access
ISession session = this.Conversation.SessionFactory.GetCurrentSession();
SPCMasterEnt sPCMasterEnt = session.Get<SPCMasterEnt>(1);
this.Session["result"] = "OK";
}
catch (Exception ex)
{
this.Session["result"] = ex.Message;
}
}
}

View File

@@ -0,0 +1,3 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="TimeOut_NoTimeOut.aspx.cs" Inherits="TimeOut_NoTimeOut" %><%
Response.Write("OK");
%>

View File

@@ -0,0 +1,32 @@
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using Spring.ConversationWA;
public partial class TimeOut_NoTimeOut : System.Web.UI.Page
{
private IConversationState conversation;
public IConversationState Conversation
{
get { return conversation; }
set { conversation = value; }
}
protected void Page_Load(object sender, EventArgs e)
{
this.Conversation.StartResumeConversation();
this.Session["keyTimeOut_Old"] = Conversation["keyTimeOut"];
Conversation["keyTimeOut"] = "this is the new value";
this.Session["keyTimeOut_New"] = Conversation["keyTimeOut"];
//This should not cause the end of the conversation by timeout
this.Conversation.LastAccess = DateTime.Now.AddMilliseconds(-(this.Conversation.TimeOut / 2));
}
}

View File

@@ -0,0 +1,3 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="TimeOut_WithTimeOut.aspx.cs" Inherits="TimeOut_WithTimeOut" %><%
Response.Write("OK");
%>

View File

@@ -0,0 +1,27 @@
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using Spring.ConversationWA;
public partial class TimeOut_WithTimeOut : System.Web.UI.Page
{
private IConversationState conversation;
public IConversationState Conversation
{
get { return conversation; }
set { conversation = value; }
}
protected void Page_Load(object sender, EventArgs e)
{
//This should cause the end of the conversation by timeout
this.Conversation.LastAccess = DateTime.Now.AddMilliseconds(-(this.Conversation.TimeOut * 2));
}
}

View File

@@ -0,0 +1,97 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<sectionGroup name="spring">
<section name="context" type="Spring.Context.Support.WebContextHandler, Spring.Web"/>
<section name="parsers" type="Spring.Context.Support.NamespaceParsersSectionHandler, Spring.Core"/>
</sectionGroup>
<sectionGroup name="common">
<section name="logging" type="Common.Logging.ConfigurationSectionHandler, Common.Logging" />
</sectionGroup>
</configSections>
<common>
<logging>
<factoryAdapter type="Common.Logging.Simple.ConsoleOutLoggerFactoryAdapter, Common.Logging">
<arg key="level" value="ERROR" />
</factoryAdapter>
</logging>
<!--
<logging>
<factoryAdapter type="Common.Logging.Log4Net.Log4NetLoggerFactoryAdapter, Common.Logging.Log4net">
<arg key="configType" value="FILE-WATCH" />
<arg key="configFile" value="~/log4net.config" />
</factoryAdapter>
</logging>
-->
</common>
<spring>
<parsers>
<parser type="Spring.Data.Config.DatabaseNamespaceParser, Spring.Data" />
<parser type="Spring.Transaction.Config.TxNamespaceParser, Spring.Data" />
</parsers>
<context name="SpringPrvConctWbApp" type="Spring.Context.Support.WebApplicationContext, Spring.Web">
<resource uri="~/services.xml.config"/>
</context>
</spring>
<appSettings>
<add key="testkey" value="testvalue" />
</appSettings>
<system.web>
<compilation debug="true">
<assemblies>
<add assembly="System.Transactions, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
</assemblies>
</compilation>
<httpModules>
<add name="NUnitAspExModule" type="NUnitAspEx.AspTestExecutionModule, NUnitAspEx" />
<add name="Spring" type="Spring.Context.Support.WebSupportModule, Spring.Web"/>
<add name="ConversationModule" type="Spring.ConversationWA.HttpModule.ConversationModule, Spring.ConversationWA.NH32"/>
</httpModules>
<httpHandlers>
<add verb="*" path="*.test" type="NUnitAspEx.AspTestMethodHandler, NUnitAspEx" validate="false" />
<add verb="*" path="*.aspx" type="Spring.Web.Support.PageHandlerFactory, Spring.Web"/>
<add verb="*" path="ContextMonitor.ashx" type="Spring.Web.Support.ContextMonitor, Spring.Web"/>
</httpHandlers>
</system.web>
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<modules>
<add name="NUnitAspExModule" preCondition="integratedMode" type="NUnitAspEx.AspTestExecutionModule, NUnitAspEx" />
<add name="Spring" preCondition="integratedMode" type="Spring.Context.Support.WebSupportModule, Spring.Web"/>
<add name="ConversationModule" preCondition="integratedMode" type="Spring.ConversationWA.HttpModule.ConversationModule, Spring.ConversationWA.NH32"/>
</modules>
<handlers>
<add name="AspTestMethodHandler" verb="*" path="*.test" preCondition="integratedMode" type="NUnitAspEx.AspTestMethodHandler, NUnitAspEx" validate="false" />
<add name="PageHandlerFactory" verb="*" path="*.aspx" preCondition="integratedMode" type="Spring.Web.Support.PageHandlerFactory, Spring.Web"/>
<add name="ContextMonitor" verb="*" path="ContextMonitor.ashx" preCondition="integratedMode" type="Spring.Web.Support.ContextMonitor, Spring.Web"/>
</handlers>
</system.webServer>
<system.data>
<DbProviderFactories>
<remove invariant="System.Data.SQLite"/>
<add name="SQLite Data Provider"
invariant="System.Data.SQLite"
description=".Net Framework Data Provider for SQLite"
type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite" />
</DbProviderFactories>
</system.data>
<startup>
<supportedRuntime version="v2.0.50727"/>
</startup>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Data.SQLite"
publicKeyToken="db937bc2d44ff139"
culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-65535.65535.65535.65535" newVersion="1.0.80.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

View File

@@ -0,0 +1,67 @@
<?xml version="1.0" encoding="utf-8" ?>
<log4net>
<!--
(fonte:)
The "importance" of the log statement can be set by using the appropriate
methods: debug<info<warn<error<fatal "debug" should be used for debug
statements, "info" for general information logged by the application, "warn"
for warning of problematic conditions, "error" when a recoverable error and
"fatal" when a non-recoverable error occured. In the log-configuration this
level can be configured for output of individual components: e.g., you could
define that the "main" application should log everything up to "info" level,
Springframework only up to "warn" and Hibernate only "error" statements.
Log4J can be configured (without changing the code) to filter these messages,
store them in a database, output them on a console or even send you a mail
if certain errors arise - and all of that quite fast.
debug<info<warn<error<fatal
-"debug" should be used for debug statements
-"info" for general information logged by the application
-"warn" for warning of problematic conditions
-"error" when a recoverable error
-"fatal" when a non-recoverable error occured
-->
<!-- Define some output appenders -->
<appender name="trace"
type="log4net.Appender.TraceAppender, log4net">
<layout type="log4net.Layout.PatternLayout, log4net">
<param name="ConversionPattern"
value="%d{ABSOLUTE} %-5p %c{1}:%L - %m%n" />
</layout>
</appender>
<appender name="console"
type="log4net.Appender.ConsoleAppender, log4net">
<layout type="log4net.Layout.PatternLayout, log4net">
<param name="ConversionPattern"
value="%d{ABSOLUTE} %-5p %c{1}:%L - %m%n" />
</layout>
</appender>
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="logs\logfile.log.txt" />
<appendToFile value="true" />
<rollingStyle value="Composite" />
<datePattern value="yyyyMMdd" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="5MB" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%d{dd/MM/yyyy HH:mm:ss,SSS} [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
</layout>
</appender>
<!-- Setup the root category, add the appenders and set the default priority -->
<root>
<priority value="TRACE" />
<appender-ref ref="console" />
<appender-ref ref="trace" />
<!--this appender fails to release file after 'host.Dispose'-->
<!--<appender-ref ref="RollingLogFileAppender" />-->
</root>
<!--Use it to view injection activite at obtain evidence of injection. If injection ocurre, there is only one instaciation-->
<logger name="Spring.ConversationWA">
<priority value="TRACE" />
</logger>
</log4net>

View File

@@ -0,0 +1,340 @@
<?xml version="1.0" encoding="utf-8" ?>
<objects xmlns="http://www.springframework.net"
xmlns:db="http://www.springframework.net/database"
xmlns:tx="http://www.springframework.net/tx">
<!--BEGIN: Teste de Conversation-->
<object type="EndConversationTestBegin.aspx">
<property name="Conversation" ref="convEndConversationTest"></property>
<property name="ConversationEvidenceBsn" expression="@(convEndConversationTest)['conversationEvidenceBsn']"></property>
</object>
<object type="EndConversationTestEnd.aspx">
<property name="Conversation" ref="convEndConversationTest"></property>
<property name="ConversationEvidenceBsn" expression="@(convEndConversationTest)['conversationEvidenceBsn']"></property>
</object>
<object name="convEndConversationTest" type="Spring.ConversationWA.Imple.WebConversationSpringState, Spring.ConversationWA.NH32" scope="session">
<property name="Id" value="convEndConversationTest"></property>
<property name="['conversationEvidenceBsn']" ref="conversationEvidenceBsn"></property>
</object>
<object name="convCircularDependenceTest_A" type="Spring.ConversationWA.Imple.WebConversationSpringState, Spring.ConversationWA.NH32" scope="session">
<property name="Id" value="convCircularDependenceTest_A"></property>
<property name="InnerConversations">
<list>
<ref object="convCircularDependenceTest_A_A"/>
</list>
</property>
</object>
<object name="convCircularDependenceTest_A_A" type="Spring.ConversationWA.Imple.WebConversationSpringState, Spring.ConversationWA.NH32" scope="session">
<property name="Id" value="convCircularDependenceTest_A_A"></property>
<property name="InnerConversations">
<list>
<ref object="convCircularDependenceTest_A_A_A"/>
</list>
</property>
</object>
<object name="convCircularDependenceTest_A_A_A" type="Spring.ConversationWA.Imple.WebConversationSpringState, Spring.ConversationWA.NH32" scope="session">
<property name="Id" value="convCircularDependenceTest_A_A_A"></property>
<property name="['conversationEvidenceBsn']" ref="conversationEvidenceBsn"></property>
</object>
<object name="conversationEvidenceBsn" type="Spring.Bsn.ConversationEvidenceBsnImpl, Spring.ConversationWA.NH32.Tests" singleton="false">
</object>
<object type="PatialEndConv_A_Begin.aspx">
<property name="Conversation" ref="convPatialEndConv_A"></property>
</object>
<object type="PatialEndConv_A_End.aspx">
<property name="Conversation" ref="convPatialEndConv_A"></property>
</object>
<object type="PatialEndConv_A_B_Begin.aspx">
<property name="Conversation" ref="convPatialEndConv_A_B"></property>
</object>
<object type="PatialEndConv_A_B_End.aspx">
<property name="Conversation" ref="convPatialEndConv_A_B"></property>
</object>
<object name="convPatialEndConv_A" type="Spring.ConversationWA.Imple.WebConversationSpringState, Spring.ConversationWA.NH32" scope="session">
<property name="Id" value="convPatialEndConv_A"></property>
<property name="InnerConversations">
<list>
<ref object="convPatialEndConv_A_A"/>
<ref object="convPatialEndConv_A_B"/>
<ref object="convPatialEndConv_A_C"/>
</list>
</property>
</object>
<object name="convPatialEndConv_A_A" type="Spring.ConversationWA.Imple.WebConversationSpringState, Spring.ConversationWA.NH32" scope="session">
<property name="Id" value="convPatialEndConv_A_A"></property>
</object>
<object name="convPatialEndConv_A_B" type="Spring.ConversationWA.Imple.WebConversationSpringState, Spring.ConversationWA.NH32" scope="session">
<property name="Id" value="convPatialEndConv_A_B"></property>
<property name="InnerConversations">
<list>
<ref object="convPatialEndConv_A_B_A"/>
<ref object="convPatialEndConv_A_B_B"/>
</list>
</property>
</object>
<object name="convPatialEndConv_A_B_A" type="Spring.ConversationWA.Imple.WebConversationSpringState, Spring.ConversationWA.NH32" scope="session">
<property name="Id" value="convPatialEndConv_A_B_A"></property>
</object>
<object name="convPatialEndConv_A_B_B" type="Spring.ConversationWA.Imple.WebConversationSpringState, Spring.ConversationWA.NH32" scope="session">
<property name="Id" value="convPatialEndConv_A_B_B"></property>
</object>
<object name="convPatialEndConv_A_C" type="Spring.ConversationWA.Imple.WebConversationSpringState, Spring.ConversationWA.NH32" scope="session">
<property name="Id" value="convPatialEndConv_A_C"></property>
</object>
<object type="GetParentObjetFromChild.aspx">
<property name="Conversation" ref="convGetParentObjetFromChildChild"></property>
</object>
<object name="convGetParentObjetFromChildParent" type="Spring.ConversationWA.Imple.WebConversationSpringState, Spring.ConversationWA.NH32" scope="session">
<property name="Id" value="convGetParentObjetFromChildParent"></property>
<property name="['parentKey']" value="parentValue"></property>
<property name="['overwrittenKey']" value="overwrittenValueParent"></property>
<property name="InnerConversations">
<list>
<ref object="convGetParentObjetFromChildChild"/>
</list>
</property>
</object>
<object name="convGetParentObjetFromChildChild" type="Spring.ConversationWA.Imple.WebConversationSpringState, Spring.ConversationWA.NH32" scope="session">
<property name="Id" value="convGetParentObjetFromChildChild"></property>
<property name="ParenteConversation" ref="convGetParentObjetFromChildParent"></property>
<property name="['childKey']" value="childValue"></property>
<property name="['overwrittenKey']" value="overwrittenValueChild"></property>
</object>
<object type="TimeOut_NoTimeOut.aspx">
<property name="Conversation" ref="convTimeOut"></property>
</object>
<object type="TimeOut_WithTimeOut.aspx">
<property name="Conversation" ref="convTimeOut"></property>
</object>
<object name="convTimeOut" type="Spring.ConversationWA.Imple.WebConversationSpringState, Spring.ConversationWA.NH32" scope="session">
<property name="Id" value="convTimeOut"></property>
<property name="TimeOut" value="60000"></property>
<property name="ConversationManager" ref="conversationManager"></property>
<property name="['keyTimeOut']" value="this is the orinal value"></property>
</object>
<!--END: Teste de Conversation-->
<object name="HttpApplicationConfigurer" type="Spring.Context.Support.HttpApplicationConfigurer, Spring.Web">
<property name="ModuleTemplates">
<dictionary>
<entry key="ConversationModule">
<!-- this name must match the module name -->
<object>
<!-- select "view source" in your browser on any page to see the appended html comment -->
<property name="ConversationManagerNameList">
<list element-type="string">
<value>conversationManager</value>
<value>conversationManagerEndPaused</value>
<value>convMngEndPausedSessionIsClosed</value>
</list>
</property>
</object>
</entry>
</dictionary>
</property>
</object>
<!--BEGIN: session-per-conversation -->
<object type="SPCLazyLoadTest_A_Begin.aspx">
<property name="Conversation" ref="convSPCLazyLoad"></property>
<property name="SessionFactory" ref="MySessionFactory"/>
</object>
<object type="SPCLazyLoadTest_A_Status.aspx">
<property name="Conversation" ref="convSPCLazyLoad"></property>
</object>
<object name="convSPCLazyLoad" type="Spring.ConversationWA.Imple.WebConversationSpringState, Spring.ConversationWA.NH32" scope="session">
<property name="Id" value="convSPCLazyLoad"></property>
<property name="TimeOut" value="600000"></property>
<property name="ConversationManager" ref="conversationManager"></property>
<property name="SessionFactory" ref="MySessionFactory"/>
<property name="DbProvider" ref="DbProvider"/>
</object>
<object type="SPCSwitchConversationSameRequest.aspx">
<property name="ConversationB" ref="convSPCSwitchConversationSameRequestB"></property>
<property name="ConversationA" ref="convSPCSwitchConversationSameRequestA"></property>
<property name="SessionFactory" ref="MySessionFactory"/>
</object>
<object name="convSPCSwitchConversationSameRequestA" type="Spring.ConversationWA.Imple.WebConversationSpringState, Spring.ConversationWA.NH32" scope="session">
<property name="Id" value="convSPCSwitchConversationSameRequestA"></property>
<property name="TimeOut" value="600000"></property>
<property name="ConversationManager" ref="conversationManager"></property>
<property name="SessionFactory" ref="MySessionFactory"/>
<property name="DbProvider" ref="DbProvider"/>
</object>
<object name="convSPCSwitchConversationSameRequestB" type="Spring.ConversationWA.Imple.WebConversationSpringState, Spring.ConversationWA.NH32" scope="session">
<property name="Id" value="convSPCSwitchConversationSameRequestB"></property>
<property name="TimeOut" value="600000"></property>
<property name="ConversationManager" ref="conversationManager"></property>
<property name="SessionFactory" ref="MySessionFactory"/>
<property name="DbProvider" ref="DbProvider"/>
</object>
<!--END: session-per-conversation -->
<!--BEGIN:RedirectErrorNoPauseConversation-->
<object type="RedirectErrorNoPauseConversation.aspx">
<property name="Conversation" ref="convRedirectErrorNoPauseConversation"></property>
</object>
<object name="convRedirectErrorNoPauseConversation" type="Spring.ConversationWA.Imple.WebConversationSpringState, Spring.ConversationWA.NH32" scope="session">
<property name="Id" value="convRedirectErrorNoPauseConversation"></property>
<property name="TimeOut" value="600000"></property>
<property name="ConversationManager" ref="conversationManager"></property>
<property name="SessionFactory" ref="MySessionFactory"/>
<property name="DbProvider" ref="DbProvider"/>
</object>
<!--BEGIN:RedirectErrorNoPauseConversation-->
<!--BEGIN: InvalidOperationException Tests -->
<object type="IoeTests.aspx">
<property name="ConversationA" ref="convIoeTestsA"></property>
<property name="ConversationAA" ref="convIoeTestsAA"></property>
<property name="ConversationManager" ref="conversationManager"></property>
<property name="SessionFactory" ref="MySessionFactory"></property>
</object>
<object name="convIoeTestsA" type="Spring.ConversationWA.Imple.WebConversationSpringState, Spring.ConversationWA.NH32" scope="session">
<property name="Id" value="convIoeTestsA"></property>
<property name="TimeOut" value="600000"></property>
<property name="ConversationManager" ref="conversationManager"></property>
<property name="SessionFactory" ref="MySessionFactory"/>
<property name="DbProvider" ref="DbProvider"/>
</object>
<object name="convIoeTestsAA" type="Spring.ConversationWA.Imple.WebConversationSpringState, Spring.ConversationWA.NH32" scope="session">
<property name="Id" value="convIoeTestsAA"></property>
<property name="TimeOut" value="600000"></property>
<property name="ConversationManager" ref="conversationManager"></property>
<property name="ParenteConversation" ref="convIoeTestsA"></property>
</object>
<!--END: InvalidOperationException Tests -->
<!--BEGIN: EndPausedTest Tests -->
<object type="EndPausedTest.aspx">
<property name="ConvA" ref="convAEndPaused"></property>
<property name="ConvB" ref="convBEndPaused"></property>
</object>
<object name="convAEndPaused" type="Spring.ConversationWA.Imple.WebConversationSpringState, Spring.ConversationWA.NH32" scope="session">
<property name="Id" value="convAEndPaused"></property>
<property name="ConversationManager" ref="conversationManagerEndPaused"></property>
</object>
<object name="convBEndPaused" type="Spring.ConversationWA.Imple.WebConversationSpringState, Spring.ConversationWA.NH32" scope="session">
<property name="Id" value="convBEndPaused"></property>
<property name="ConversationManager" ref="conversationManagerEndPaused"></property>
</object>
<object name="conversationManagerEndPaused" type="Spring.ConversationWA.Imple.WebConversationManager, Spring.ConversationWA.NH32" scope="session">
<property name="EndPaused" value="true"></property>
</object>
<!--END: EndPausedTest Tests -->
<!--BEGIN: SessionIsClosed-->
<object type="SessionIsClosedA.aspx">
<property name="Conversation" ref="convASessionIsClosed"></property>
</object>
<object type="SessionIsClosedB.aspx">
<property name="Conversation" ref="convBSessionIsClosed"></property>
<property name="ConversationA" ref="convASessionIsClosed"></property>
</object>
<object name="convASessionIsClosed" type="Spring.ConversationWA.Imple.WebConversationSpringState, Spring.ConversationWA.NH32" scope="session">
<property name="Id" value="convASessionIsClosed"></property>
<property name="TimeOut" value="600000"></property>
<property name="ConversationManager" ref="conversationManager"></property>
<property name="SessionFactory" ref="MySessionFactory"/>
<property name="DbProvider" ref="DbProvider"/>
</object>
<object name="convBSessionIsClosed" type="Spring.ConversationWA.Imple.WebConversationSpringState, Spring.ConversationWA.NH32" scope="session">
<property name="Id" value="convBSessionIsClosed"></property>
<property name="TimeOut" value="600000"></property>
<property name="ConversationManager" ref="conversationManager"></property>
<property name="SessionFactory" ref="MySessionFactory"/>
<property name="DbProvider" ref="DbProvider"/>
</object>
<!--END: SessionIsClosed-->
<!--BEGIN: EndPausedSessionIsClosed-->
<object type="EndPausedSessionIsClosedA.aspx">
<property name="Conversation" ref="convAEndPausedSessionIsClosed"></property>
</object>
<object type="EndPausedSessionIsClosedB.aspx">
<property name="Conversation" ref="convBEndPausedSessionIsClosed"></property>
</object>
<object name="convAEndPausedSessionIsClosed" type="Spring.ConversationWA.Imple.WebConversationSpringState, Spring.ConversationWA.NH32" scope="session">
<property name="Id" value="convAEndPausedSessionIsClosed"></property>
<property name="TimeOut" value="600000"></property>
<property name="ConversationManager" ref="convMngEndPausedSessionIsClosed"></property>
<property name="SessionFactory" ref="MySessionFactory"/>
<property name="DbProvider" ref="DbProvider"/>
</object>
<object name="convBEndPausedSessionIsClosed" type="Spring.ConversationWA.Imple.WebConversationSpringState, Spring.ConversationWA.NH32" scope="session">
<property name="Id" value="convBEndPausedSessionIsClosed"></property>
<property name="TimeOut" value="600000"></property>
<property name="ConversationManager" ref="convMngEndPausedSessionIsClosed"></property>
<property name="SessionFactory" ref="MySessionFactory"/>
<property name="DbProvider" ref="DbProvider"/>
</object>
<object name="convMngEndPausedSessionIsClosed" type="Spring.ConversationWA.Imple.WebConversationManager, Spring.ConversationWA.NH32" scope="session">
<property name="SessionFactory" ref="MySessionFactory"/>
<property name="EndPaused" value="true"/>
</object>
<!--END: EndPausedSessionIsClosed-->
<!--BEGIN: ConnectionReleaseModeIssue-->
<object type="ConnectionReleaseModeIssue.aspx">
<property name="Conversation" ref="convConnectionReleaseModeIssue"/>
<property name="SessionFactory" ref="MySessionFactory"/>
<property name="ConnectionReleaseModeIssueBsn" ref="connectionReleaseModeIssueBsn"/>
</object>
<object name="convConnectionReleaseModeIssue" type="Spring.ConversationWA.Imple.WebConversationSpringState, Spring.ConversationWA.NH32" scope="session">
<property name="Id" value="convConnectionReleaseModeIssue"></property>
<property name="TimeOut" value="600000"></property>
<property name="ConversationManager" ref="conversationManager"></property>
<property name="SessionFactory" ref="MySessionFactory"/>
<property name="DbProvider" ref="DbProvider"/>
</object>
<object id="connectionReleaseModeIssueBsn" type="Spring.Bsn.ConnectionReleaseModeIssueBsnImpl, Spring.ConversationWA.NH32.Tests" singleton="true">
<property name="SessionFactory" ref="MySessionFactory"/>
</object>
<!--END: ConnectionReleaseModeIssue-->
<!-- BEGIN: Common configuration-->
<object name="conversationManager" type="Spring.ConversationWA.Imple.WebConversationManager, Spring.ConversationWA.NH32" scope="session">
<property name="SessionFactory" ref="MySessionFactory"/>
</object>
<object id="transactionManager" type="Spring.Data.NHibernate.HibernateTransactionManager, Spring.Data.NHibernate32">
<property name="DbProvider" ref="DbProvider"/>
<property name="SessionFactory" ref="MySessionFactory"/>
</object>
<object id="MySessionFactory" type="Spring.Data.NHibernate.LocalSessionFactoryObject, Spring.Data.NHibernate32">
<property name="DbProvider" ref="DbProvider"/>
<property name="MappingAssemblies">
<list>
<value>Spring.ConversationWA.NH32.Tests</value>
</list>
</property>
<property name="HibernateProperties">
<dictionary>
<!--<entry key="connection.provider" value="AcessaDados.NHibernate.Connection.SiefDriverConnectionProvider, AcessaDados"/>-->
<entry key="dialect" value="NHibernate.Dialect.SQLiteDialect"/>
<entry key="connection.driver_class" value="NHibernate.Driver.SQLite20Driver"/>
<entry key="current_session_context_class" value="Spring.Data.NHibernate.SpringSessionContext, Spring.Data.NHibernate32"/>
<entry key="hbm2ddl.keywords" value="none"/>
<entry key="query.startup_check" value="false"/>
<entry key="show_sql" value="false"/>
<entry key="use_outer_join" value="true"/>
<entry key="format_sql" value="true"/>
<entry key="connection.release_mode" value="on_close"/>
</dictionary>
</property>
</object>
<object id="DbProvider" type="Spring.Spring.Data.Common.CountGetConnDbProvider, Spring.ConversationWA.NH32.Tests">
<property name="TargetDbProvider" ref="targetDbProvider"/>
</object>
<db:provider id="targetDbProvider" provider="System.Data.SQLite" connectionString="Data Source=|DataDirectory|../sqlite/conversationTests.db;Version=3;FailIfMissing=True;"></db:provider>
<tx:attribute-driven transaction-manager="transactionManager"/>
<!-- END: Common configuration-->
</objects>

View File

@@ -0,0 +1,97 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<sectionGroup name="spring">
<section name="context" type="Spring.Context.Support.WebContextHandler, Spring.Web"/>
<section name="parsers" type="Spring.Context.Support.NamespaceParsersSectionHandler, Spring.Core"/>
</sectionGroup>
<sectionGroup name="common">
<section name="logging" type="Common.Logging.ConfigurationSectionHandler, Common.Logging" />
</sectionGroup>
</configSections>
<common>
<logging>
<factoryAdapter type="Common.Logging.Simple.ConsoleOutLoggerFactoryAdapter, Common.Logging">
<arg key="level" value="ERROR" />
</factoryAdapter>
</logging>
<!--
<logging>
<factoryAdapter type="Common.Logging.Log4Net.Log4NetLoggerFactoryAdapter, Common.Logging.Log4net">
<arg key="configType" value="FILE-WATCH" />
<arg key="configFile" value="~/log4net.config" />
</factoryAdapter>
</logging>
-->
</common>
<spring>
<parsers>
<parser type="Spring.Data.Config.DatabaseNamespaceParser, Spring.Data" />
<parser type="Spring.Transaction.Config.TxNamespaceParser, Spring.Data" />
</parsers>
<context name="SpringPrvConctWbApp" type="Spring.Context.Support.WebApplicationContext, Spring.Web">
<resource uri="~/services.xml.config"/>
</context>
</spring>
<appSettings>
<add key="testkey" value="testvalue" />
</appSettings>
<system.web>
<compilation debug="true">
<assemblies>
<add assembly="System.Transactions, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
</assemblies>
</compilation>
<httpModules>
<add name="NUnitAspExModule" type="NUnitAspEx.AspTestExecutionModule, NUnitAspEx" />
<add name="Spring" type="Spring.Context.Support.WebSupportModule, Spring.Web"/>
<add name="ConversationModule" type="Spring.ConversationWA.HttpModule.ConversationModule, Spring.ConversationWA.NH32"/>
</httpModules>
<httpHandlers>
<add verb="*" path="*.test" type="NUnitAspEx.AspTestMethodHandler, NUnitAspEx" validate="false" />
<add verb="*" path="*.aspx" type="Spring.Web.Support.PageHandlerFactory, Spring.Web"/>
<add verb="*" path="ContextMonitor.ashx" type="Spring.Web.Support.ContextMonitor, Spring.Web"/>
</httpHandlers>
</system.web>
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<modules>
<add name="NUnitAspExModule" preCondition="integratedMode" type="NUnitAspEx.AspTestExecutionModule, NUnitAspEx" />
<add name="Spring" preCondition="integratedMode" type="Spring.Context.Support.WebSupportModule, Spring.Web"/>
<add name="ConversationModule" preCondition="integratedMode" type="Spring.ConversationWA.HttpModule.ConversationModule, Spring.ConversationWA.NH32"/>
</modules>
<handlers>
<add name="AspTestMethodHandler" verb="*" path="*.test" preCondition="integratedMode" type="NUnitAspEx.AspTestMethodHandler, NUnitAspEx" validate="false" />
<add name="PageHandlerFactory" verb="*" path="*.aspx" preCondition="integratedMode" type="Spring.Web.Support.PageHandlerFactory, Spring.Web"/>
<add name="ContextMonitor" verb="*" path="ContextMonitor.ashx" preCondition="integratedMode" type="Spring.Web.Support.ContextMonitor, Spring.Web"/>
</handlers>
</system.webServer>
<system.data>
<DbProviderFactories>
<remove invariant="System.Data.SQLite"/>
<add name="SQLite Data Provider"
invariant="System.Data.SQLite"
description=".Net Framework Data Provider for SQLite"
type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite" />
</DbProviderFactories>
</system.data>
<startup>
<supportedRuntime version="v2.0.50727"/>
</startup>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Data.SQLite"
publicKeyToken="db937bc2d44ff139"
culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-65535.65535.65535.65535" newVersion="1.0.80.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

View File

@@ -0,0 +1,36 @@
using System;
using System.Collections.Generic;
using System.Text;
using Spring.ConversationWA;
namespace Spring.Entities
{
/// <summary>
/// Detail Entity for 'session-per-conversation' tests:
/// <see cref="WebConversationStateTest.SPCLazyLoadTest()"/>,
/// <see cref="WebConversationStateTest.SPCSwitchConversationSameRequestTest()"/>
/// </summary>
/// <author>Hailton de Castro</author>
public class SPCDetailEnt
{
private Int32? id;
/// <summary>
/// Entity key
/// </summary>
public virtual Int32? Id
{
get { return id; }
set { id = value; }
}
private String description;
/// <summary>
/// Description
/// </summary>
public virtual String Description
{
get { return description; }
set { description = value; }
}
}
}

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" namespace="Spring.Entities" assembly="Spring.ConversationWA.NH32.Tests">
<class name="SPCDetailEnt" table="SPCDetail">
<id name="Id" type="Int32" column="Id">
<generator class="increment"></generator>
</id>
<property name="Description" column="Description" type="String"/>
</class>
</hibernate-mapping>

View File

@@ -0,0 +1,46 @@
using System;
using System.Collections.Generic;
using System.Text;
using Spring.ConversationWA;
namespace Spring.Entities
{
/// <summary>
/// Master Entity for 'session-per-conversation' tests:
/// <see cref="WebConversationStateTest.SPCLazyLoadTest()"/>,
/// <see cref="WebConversationStateTest.SPCSwitchConversationSameRequestTest()"/>
/// </summary>
/// <author>Hailton de Castro</author>
public class SPCMasterEnt
{
private Int32? id;
/// <summary>
/// Entity key
/// </summary>
public virtual Int32? Id
{
get { return id; }
set { id = value; }
}
private String description;
/// <summary>
/// Description
/// </summary>
public virtual String Description
{
get { return description; }
set { description = value; }
}
private IList<SPCDetailEnt> sPCDetailEntList;
/// <summary>
/// <see cref="SPCDetailEnt"/> one-to-many relationship.
/// </summary>
public virtual IList<SPCDetailEnt> SPCDetailEntList
{
get { return sPCDetailEntList; }
set { sPCDetailEntList = value; }
}
}
}

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" namespace="Spring.Entities" assembly="Spring.ConversationWA.NH32.Tests">
<class name="SPCMasterEnt" table="SPCMaster">
<id name="Id" type="Int32" column="Id">
<generator class="increment"></generator>
</id>
<property name="Description" column="Description" type="String"/>
<bag name="SPCDetailEntList" fetch="select">
<key column="MasterId"></key>
<one-to-many class="Spring.Entities.SPCDetailEnt, Spring.ConversationWA.NH32.Tests"/>
</bag>
</class>
</hibernate-mapping>

View File

@@ -0,0 +1,148 @@
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>9.0.30729</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{2FB16852-22AD-4A5B-885A-97136265CC46}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Spring</RootNamespace>
<AssemblyName>Spring.ConversationWA.NH32.Tests</AssemblyName>
<FileUpgradeFlags>
</FileUpgradeFlags>
<OldToolsVersion>2.0</OldToolsVersion>
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
<UpgradeBackupLocation>
</UpgradeBackupLocation>
<TargetFrameworkSubset>
</TargetFrameworkSubset>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>..\..\..\build\VS.Net.2008\Spring.ConversationWA.NH32.Tests\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<DocumentationFile>..\..\..\build\VS.Net.2008\Spring.ConversationWA.NH32.Tests\Debug\Spring.ConversationWA.NH32.Tests.XML</DocumentationFile>
<StartAction>Program</StartAction>
<StartProgram>$(MSBuildProjectDirectory)\..\..\dependencies\tools\NUnit-2.6.0.12051\bin\nunit-x86.exe</StartProgram>
<StartArguments>"$(MSBuildProjectDirectory)\$(OutputPath)\$(AssemblyName).dll"</StartArguments>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="Common.Logging, Version=2.0.0.0, Culture=neutral, PublicKeyToken=af08829b84f0328e, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\lib\Net\2.0\Common.Logging.dll</HintPath>
</Reference>
<Reference Include="NHibernate, Version=3.2.0.4000, Culture=neutral, PublicKeyToken=aa95f207798dfdb4, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\lib\NHibernate32\net\3.5\NHibernate.dll</HintPath>
</Reference>
<Reference Include="nunit.framework, Version=2.5.7.10213, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\lib\Net\2.0\nunit.framework.dll</HintPath>
</Reference>
<Reference Include="NUnitAspEx, Version=2.0.3482.27831, Culture=neutral">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\lib\Net\2.0\NUnitAspEx.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Core">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<Reference Include="System.Data" />
<Reference Include="System.Data.SQLite, Version=1.0.80.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139, processorArchitecture=x86">
<SpecificVersion>False</SpecificVersion>
<HintPath>lib\net\2.0\System.Data.SQLite.dll</HintPath>
</Reference>
<Reference Include="System.Web" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="..\..\..\src\Spring\CommonAssemblyInfo.cs">
<Link>CommonAssemblyInfo.cs</Link>
</Compile>
<Compile Include="Bsn\ConversationEvidenceBsnImpl.cs" />
<Compile Include="Bsn\IConversationEvidenceBsn.cs" />
<Compile Include="Bsn\INoDeferedErrorBsn.cs" />
<Compile Include="Bsn\NoDeferedErrorBsnImpl.cs" />
<Compile Include="ConversationWA\PatialEndConvBeginBasePage.cs">
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="ConversationWA\PatialEndConvEndBasePage.cs">
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="ConversationWA\SimpleTest.cs" />
<Compile Include="ConversationWA\WebConversationStateTest.cs" />
<Compile Include="Entities\SPCDetailEnt.cs" />
<Compile Include="Entities\SPCMasterEnt.cs" />
<Compile Include="Spring\Data\Common\CountGetConnDbProvider.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\src\Spring\Spring.Aop\Spring.Aop.2008.csproj">
<Project>{3A3A4E65-45A6-4B20-B460-0BEDC302C02C}</Project>
<Name>Spring.Aop.2008</Name>
</ProjectReference>
<ProjectReference Include="..\..\..\src\Spring\Spring.ConversationWA.NH32\Spring.ConversationWA.NH32.2008.csproj">
<Project>{64400FF8-2E9F-4809-B5F4-0C7EB8ABFF87}</Project>
<Name>Spring.ConversationWA.NH32.2008</Name>
</ProjectReference>
<ProjectReference Include="..\..\..\src\Spring\Spring.Core\Spring.Core.2008.csproj">
<Project>{710961A3-0DF4-49E4-A26E-F5B9C044AC84}</Project>
<Name>Spring.Core.2008</Name>
</ProjectReference>
<ProjectReference Include="..\..\..\src\Spring\Spring.Data.NHibernate32\Spring.Data.NHibernate32.2008.csproj">
<Project>{1C8E0481-A70D-445E-AB4D-4A963CF7DC83}</Project>
<Name>Spring.Data.NHibernate32.2008</Name>
</ProjectReference>
<ProjectReference Include="..\..\..\src\Spring\Spring.Data\Spring.Data.2008.csproj">
<Project>{AE00E5AB-C39A-436F-86D2-33BFE33E2E40}</Project>
<Name>Spring.Data.2008</Name>
</ProjectReference>
<ProjectReference Include="..\..\..\src\Spring\Spring.Web\Spring.Web.2008.csproj">
<Project>{BA4789EB-281A-48EA-8763-28B9F0596A18}</Project>
<Name>Spring.Web.2008</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<None Include="Data\Spring\ConversationWA\WebConversationStateTest\log4net.config" />
<None Include="Data\Spring\ConversationWA\WebConversationStateTest\services.xml.config" />
<None Include="Data\Spring\ConversationWA\WebConversationStateTest\web.config.net-2.0" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="Entities\SPCDetailEnt.hbm.xml" />
<EmbeddedResource Include="Entities\SPCMasterEnt.hbm.xml" />
</ItemGroup>
<ItemGroup>
<None Include="app.config" />
<None Include="Data\Spring\ConversationWA\WebConversationStateTest\Web.Config" />
</ItemGroup>
<ItemGroup>
<Folder Include="Properties\" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
<PropertyGroup>
<PostBuildEvent>echo "Copying TestWebs to output directory"
rd /S /Q "$(TargetDir)Data"
xcopy "$(ProjectDir)Data" "$(TargetDir)Data\" /y /s
rd /S /Q "$(TargetDir)Data\Spring\ConversationWA\WebConversationStateTest\Bin"
</PostBuildEvent>
</PropertyGroup>
</Project>

View File

@@ -0,0 +1,184 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>9.0.30729</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{2FB16852-22AD-4A5B-885A-97136265CC46}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Spring</RootNamespace>
<AssemblyName>Spring.ConversationWA.NH32.Tests</AssemblyName>
<FileUpgradeFlags>
</FileUpgradeFlags>
<OldToolsVersion>3.5</OldToolsVersion>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<UpgradeBackupLocation>
</UpgradeBackupLocation>
<PublishUrl>http://localhost/Spring.ConversationWA.NH32.Tests/</PublishUrl>
<Install>true</Install>
<InstallFrom>Web</InstallFrom>
<UpdateEnabled>true</UpdateEnabled>
<UpdateMode>Foreground</UpdateMode>
<UpdateInterval>7</UpdateInterval>
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
<UpdatePeriodically>false</UpdatePeriodically>
<UpdateRequired>false</UpdateRequired>
<MapFileExtensions>true</MapFileExtensions>
<ApplicationRevision>0</ApplicationRevision>
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
<IsWebBootstrapper>true</IsWebBootstrapper>
<UseApplicationTrust>false</UseApplicationTrust>
<BootstrapperEnabled>true</BootstrapperEnabled>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>..\..\..\build\VS.Net.2010\Spring.ConversationWA.NH32.Tests\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<DocumentationFile>..\..\..\build\VS.Net.2010\Spring.ConversationWA.NH32.Tests\Debug\Spring.ConversationWA.NH32.Tests.XML</DocumentationFile>
<StartAction>Program</StartAction>
<StartProgram>$(MSBuildProjectDirectory)\..\..\dependencies\tools\NUnit-2.6.0.12051\bin\nunit-x86.exe</StartProgram>
<StartArguments>"$(MSBuildProjectDirectory)\$(OutputPath)\$(AssemblyName).dll"</StartArguments>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="Common.Logging, Version=2.0.0.0, Culture=neutral, PublicKeyToken=af08829b84f0328e, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\lib\Net\2.0\Common.Logging.dll</HintPath>
</Reference>
<Reference Include="NHibernate, Version=3.2.0.4000, Culture=neutral, PublicKeyToken=aa95f207798dfdb4, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\lib\NHibernate32\net\3.5\NHibernate.dll</HintPath>
</Reference>
<Reference Include="nunit.framework, Version=2.5.7.10213, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\lib\Net\2.0\nunit.framework.dll</HintPath>
</Reference>
<Reference Include="NUnitAspEx, Version=2.0.3482.27831, Culture=neutral">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\lib\Net\2.0\NUnitAspEx.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Core">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<Reference Include="System.Data" />
<Reference Include="System.Data.SQLite, Version=1.0.80.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139, processorArchitecture=x86">
<SpecificVersion>False</SpecificVersion>
<HintPath>lib\net\2.0\System.Data.SQLite.dll</HintPath>
</Reference>
<Reference Include="System.Web" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="..\..\..\src\Spring\CommonAssemblyInfo.cs">
<Link>CommonAssemblyInfo.cs</Link>
</Compile>
<Compile Include="Bsn\ConversationEvidenceBsnImpl.cs" />
<Compile Include="Bsn\IConversationEvidenceBsn.cs" />
<Compile Include="Bsn\INoDeferedErrorBsn.cs" />
<Compile Include="Bsn\NoDeferedErrorBsnImpl.cs" />
<Compile Include="ConversationWA\PatialEndConvBeginBasePage.cs">
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="ConversationWA\PatialEndConvEndBasePage.cs">
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="ConversationWA\SimpleTest.cs" />
<Compile Include="ConversationWA\WebConversationStateTest.cs" />
<Compile Include="Entities\SPCDetailEnt.cs" />
<Compile Include="Entities\SPCMasterEnt.cs" />
<Compile Include="Spring\Data\Common\CountGetConnDbProvider.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\src\Spring\Spring.Aop\Spring.Aop.2010.csproj">
<Project>{3A3A4E65-45A6-4B20-B460-0BEDC302C02C}</Project>
<Name>Spring.Aop.2010</Name>
</ProjectReference>
<ProjectReference Include="..\..\..\src\Spring\Spring.ConversationWA.NH32\Spring.ConversationWA.NH32.2010.csproj">
<Project>{64400FF8-2E9F-4809-B5F4-0C7EB8ABFF87}</Project>
<Name>Spring.ConversationWA.NH32.2010</Name>
</ProjectReference>
<ProjectReference Include="..\..\..\src\Spring\Spring.Core\Spring.Core.2010.csproj">
<Project>{710961A3-0DF4-49E4-A26E-F5B9C044AC84}</Project>
<Name>Spring.Core.2010</Name>
</ProjectReference>
<ProjectReference Include="..\..\..\src\Spring\Spring.Data.NHibernate32\Spring.Data.NHibernate32.2010.csproj">
<Project>{9F0F739C-876E-4C4B-AA55-9AC9242C25C8}</Project>
<Name>Spring.Data.NHibernate32.2010</Name>
</ProjectReference>
<ProjectReference Include="..\..\..\src\Spring\Spring.Data\Spring.Data.2010.csproj">
<Project>{AE00E5AB-C39A-436F-86D2-33BFE33E2E40}</Project>
<Name>Spring.Data.2010</Name>
</ProjectReference>
<ProjectReference Include="..\..\..\src\Spring\Spring.Web\Spring.Web.2010.csproj">
<Project>{BA4789EB-281A-48EA-8763-28B9F0596A18}</Project>
<Name>Spring.Web.2010</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<None Include="Data\Spring\ConversationWA\WebConversationStateTest\log4net.config" />
<None Include="Data\Spring\ConversationWA\WebConversationStateTest\services.xml.config" />
<None Include="Data\Spring\ConversationWA\WebConversationStateTest\web.config.net-2.0" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="Entities\SPCDetailEnt.hbm.xml" />
<EmbeddedResource Include="Entities\SPCMasterEnt.hbm.xml" />
</ItemGroup>
<ItemGroup>
<None Include="app.config" />
<None Include="Data\Spring\ConversationWA\WebConversationStateTest\Web.Config" />
</ItemGroup>
<ItemGroup>
<Folder Include="Properties\" />
</ItemGroup>
<ItemGroup>
<BootstrapperPackage Include=".NETFramework,Version=v4.0">
<Visible>False</Visible>
<ProductName>Microsoft .NET Framework 4 %28x86 and x64%29</ProductName>
<Install>true</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Client.3.5">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">
<Visible>False</Visible>
<ProductName>Windows Installer 3.1</ProductName>
<Install>true</Install>
</BootstrapperPackage>
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
<PropertyGroup>
<PostBuildEvent>echo "Copying TestWebs to output directory"
rd /S /Q "$(TargetDir)Data"
xcopy "$(ProjectDir)Data" "$(TargetDir)Data\" /y /s
rd /S /Q "$(TargetDir)Data\Spring\ConversationWA\WebConversationStateTest\Bin"
</PostBuildEvent>
</PropertyGroup>
</Project>

View File

@@ -0,0 +1,127 @@
<?xml version="1.0" ?>
<project name="Spring.ConversationWA.NH32.Tests" default="test" xmlns="http://nant.sf.net/release/0.91-alpha2/nant.xsd">
<include buildfile="${spring.basedir}/common-project.include" />
<!--
Required properties:
* current.bin.dir - (path) root level to build to
* build.debug - (true|false) debug build?
* current.build.defines.csc - framework-specific build defines
-->
<target name="build">
<!-- copy nh libs. It's necessary here to avoid wrong reference to NHibernate 3.3-->
<copy todir="${current.bin.dir}" overwrite="true">
<fileset basedir="${nh32.lib.dir}">
<include name="**/*.dll" />
</fileset>
</copy>
<csc target="library" define="${current.build.defines.csc}"
warnaserror="true"
optimize="${build.optimize}"
debug="${current.build.debug}"
output="${current.bin.dir}/${project::get-name()}.dll"
doc="${current.bin.dir}/${project::get-name()}.xml">
<nowarn>
<warning number="${nowarn.numbers.test}" />
</nowarn>
<sources failonempty="true">
<include name="**/*.cs" />
<include name="../CommonAssemblyInfo.cs" />
<exclude name="Data/**/*.*" />
<exclude name="bin/**/*" />
</sources>
<references basedir="${current.bin.dir}">
<lib>
<include name="${nh32.lib.dir}"/>
</lib>
<include name="System.Data.dll" />
<include name="System.EnterpriseServices.dll" />
<include name="*.dll" />
<exclude name="${project::get-name()}.dll" />
<exclude name="Spring.Data.NHibernate1*.dll" />
<exclude name="Spring.Data.NHibernate2*.dll" />
<exclude name="Spring.Data.NHibernate30*.dll" />
<exclude name="Spring.Data.NHibernate33*.dll" />
<exclude name="Spring.ConversationWA.NH33*.dll" />
<exclude name="Spring.Data.NHibernate*Tests*.dll" />
<exclude name="CloverRuntime.dll" />
<exclude if="${net-4.0}" name="System.Web.Extensions.dll" />
</references>
<resources prefix="Spring" dynamicprefix="true" failonempty="true">
<include name="**/*.xml" />
<exclude name="Data/**/*" />
<exclude name="obj/**/*" />
<exclude name="bin/**/*" />
</resources>
</csc>
<copy file="${project::get-base-directory()}/app.config"
tofile="${current.bin.dir}/${project::get-name()}.dll.config"/>
<echo message="Copying TestWebs to output directory"/>
<delete dir="${current.bin.dir}/Data"/>
<copy todir="${current.bin.dir}/Data">
<fileset basedir="${project::get-base-directory()}/Data">
<include name="**/*.*" />
<exclude name="bin/*.*" />
</fileset>
</copy>
<copy todir="${current.bin.dir}/Data">
<fileset basedir="${project::get-base-directory()}/Data">
<include name="**/*.*" />
<exclude name="bin/*.*" />
</fileset>
</copy>
</target>
<target name="test" depends="build">
<!--moving temporary files that break the build or test of this project (MOVE)-->
<mkdir dir="${current.bin.dir}/nunitaspex_excluded"/>
<move todir="${current.bin.dir}/nunitaspex_excluded" failonerror="true">
<fileset basedir="${current.bin.dir}">
<include name="Spring.Data.NHibernate33.dll"/>
<include name="Spring.ConversationWA.NH33*.dll"/>
</fileset>
</move>
<!--conditional copies of dll's that can break the build's or test's of other projects (COPY)-->
<!--temporary copies of "System.Data.SQLite.dll" because it is 32bit and causes problems in the compilation of the other test projects. It occurs in 64-bit Windows environment.-->
<property name="no.preexisting.sqlite" value="${not file::exists('${current.bin.dir}/System.Data.SQLite.dll')}"/>
<copy todir="${current.bin.dir}">
<fileset basedir="${project::get-base-directory()}/${lib.dir.relative}">
<include name="System.Data.SQLite.dll" if="${no.preexisting.sqlite}"/>
</fileset>
</copy>
<!-- property name="test.assemblyname" value="${project::get-name()}" / -->
<call target="common.run-tests" />
<!--conditional copies of dll's that can break the build's or test's of other projects (DELETE)-->
<delete>
<fileset basedir="${current.bin.dir}">
<include name="System.Data.SQLite.dll" if="${no.preexisting.sqlite}"/>
</fileset>
</delete>
<!--moving temporary files that break the build or test of this project (UNDO MOVE)-->
<move todir="${current.bin.dir}">
<fileset basedir="${current.bin.dir}/nunitaspex_excluded">
<include name="Spring.Data.NHibernate33.dll"/>
<include name="Spring.ConversationWA.NH33*.dll"/>
</fileset>
</move>
</target>
<!--
<target name="test" depends="build">
<nunit2outproc>
<formatter type="Plain" />
<formatter type="Xml" usefile="true" extension=".xml"
outputdir="${current.bin.dir}/results" />
<test assemblyname="${current.bin.dir}/${project::get-name()}.dll"
appconfig="${current.bin.dir}/${project::get-name()}.dll.config" />
</nunit2outproc>
</target>
-->
</project>

View File

@@ -0,0 +1,29 @@
using System;
using System.Collections.Generic;
using System.Text;
using Spring.Data.Common;
using System.Data;
namespace Spring.Spring.Data.Common
{
/// <summary>
/// Count the number of calls to "CreateConnection()".
/// </summary>
public class CountGetConnDbProvider : DelegatingDbProvider
{
/// <summary>
/// Count of calls to <see cref="CreateConnection"/>
/// </summary>
public static Int32 Count = 0;
/// <summary>
/// Count.
/// </summary>
/// <returns></returns>
public override IDbConnection CreateConnection()
{
Count++;
return this.TargetDbProvider.CreateConnection();
}
}
}

View File

@@ -0,0 +1,19 @@
<?xml version="1.0"?>
<configuration>
<startup>
</startup>
<system.data>
<DbProviderFactories>
<remove invariant="System.Data.SQLite"/>
<add name="SQLite Data Provider" invariant="System.Data.SQLite" description=".Net Framework Data Provider for SQLite" type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite"/>
</DbProviderFactories>
</system.data>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Data.SQLite" publicKeyToken="db937bc2d44ff139" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-65535.65535.65535.65535" newVersion="1.0.80.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

View File

@@ -0,0 +1,97 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<sectionGroup name="spring">
<section name="context" type="Spring.Context.Support.WebContextHandler, Spring.Web"/>
<section name="parsers" type="Spring.Context.Support.NamespaceParsersSectionHandler, Spring.Core"/>
</sectionGroup>
<sectionGroup name="common">
<section name="logging" type="Common.Logging.ConfigurationSectionHandler, Common.Logging" />
</sectionGroup>
</configSections>
<common>
<logging>
<factoryAdapter type="Common.Logging.Simple.ConsoleOutLoggerFactoryAdapter, Common.Logging">
<arg key="Level" value="ERROR" />
</factoryAdapter>
</logging>
<!--
<logging>
<factoryAdapter type="Common.Logging.Log4Net.Log4NetLoggerFactoryAdapter, Common.Logging.Log4net">
<arg key="configType" value="FILE-WATCH" />
<arg key="configFile" value="~/log4net.config" />
</factoryAdapter>
</logging>
-->
</common>
<spring>
<parsers>
<parser type="Spring.Data.Config.DatabaseNamespaceParser, Spring.Data" />
<parser type="Spring.Transaction.Config.TxNamespaceParser, Spring.Data" />
</parsers>
<context name="SpringPrvConctWbApp" type="Spring.Context.Support.WebApplicationContext, Spring.Web">
<resource uri="~/services.xml.config"/>
</context>
</spring>
<appSettings>
<add key="testkey" value="testvalue" />
</appSettings>
<system.web>
<compilation debug="true">
<assemblies>
<add assembly="System.Transactions, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
</assemblies>
</compilation>
<httpModules>
<add name="NUnitAspExModule" type="NUnitAspEx.AspTestExecutionModule, NUnitAspEx" />
<add name="Spring" type="Spring.Context.Support.WebSupportModule, Spring.Web"/>
<add name="ConversationModule" type="Spring.ConversationWA.HttpModule.ConversationModule, Spring.ConversationWA.NH33"/>
</httpModules>
<httpHandlers>
<add verb="*" path="*.test" type="NUnitAspEx.AspTestMethodHandler, NUnitAspEx" validate="false" />
<add verb="*" path="*.aspx" type="Spring.Web.Support.PageHandlerFactory, Spring.Web"/>
<add verb="*" path="ContextMonitor.ashx" type="Spring.Web.Support.ContextMonitor, Spring.Web"/>
</httpHandlers>
</system.web>
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<modules>
<add name="NUnitAspExModule" preCondition="integratedMode" type="NUnitAspEx.AspTestExecutionModule, NUnitAspEx" />
<add name="Spring" preCondition="integratedMode" type="Spring.Context.Support.WebSupportModule, Spring.Web"/>
<add name="ConversationModule" preCondition="integratedMode" type="Spring.ConversationWA.HttpModule.ConversationModule, Spring.ConversationWA.NH33"/>
</modules>
<handlers>
<add name="AspTestMethodHandler" verb="*" path="*.test" preCondition="integratedMode" type="NUnitAspEx.AspTestMethodHandler, NUnitAspEx" validate="false" />
<add name="PageHandlerFactory" verb="*" path="*.aspx" preCondition="integratedMode" type="Spring.Web.Support.PageHandlerFactory, Spring.Web"/>
<add name="ContextMonitor" verb="*" path="ContextMonitor.ashx" preCondition="integratedMode" type="Spring.Web.Support.ContextMonitor, Spring.Web"/>
</handlers>
</system.webServer>
<system.data>
<DbProviderFactories>
<remove invariant="System.Data.SQLite"/>
<add name="SQLite Data Provider"
invariant="System.Data.SQLite"
description=".Net Framework Data Provider for SQLite"
type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite" />
</DbProviderFactories>
</system.data>
<startup>
<supportedRuntime version="v2.0.50727"/>
</startup>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Data.SQLite"
publicKeyToken="db937bc2d44ff139"
culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-65535.65535.65535.65535" newVersion="1.0.80.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

View File

@@ -0,0 +1,340 @@
<?xml version="1.0" encoding="utf-8" ?>
<objects xmlns="http://www.springframework.net"
xmlns:db="http://www.springframework.net/database"
xmlns:tx="http://www.springframework.net/tx">
<!--BEGIN: Teste de Conversation-->
<object type="EndConversationTestBegin.aspx">
<property name="Conversation" ref="convEndConversationTest"></property>
<property name="ConversationEvidenceBsn" expression="@(convEndConversationTest)['conversationEvidenceBsn']"></property>
</object>
<object type="EndConversationTestEnd.aspx">
<property name="Conversation" ref="convEndConversationTest"></property>
<property name="ConversationEvidenceBsn" expression="@(convEndConversationTest)['conversationEvidenceBsn']"></property>
</object>
<object name="convEndConversationTest" type="Spring.ConversationWA.Imple.WebConversationSpringState, Spring.ConversationWA.NH33" scope="session">
<property name="Id" value="convEndConversationTest"></property>
<property name="['conversationEvidenceBsn']" ref="conversationEvidenceBsn"></property>
</object>
<object name="convCircularDependenceTest_A" type="Spring.ConversationWA.Imple.WebConversationSpringState, Spring.ConversationWA.NH33" scope="session">
<property name="Id" value="convCircularDependenceTest_A"></property>
<property name="InnerConversations">
<list>
<ref object="convCircularDependenceTest_A_A"/>
</list>
</property>
</object>
<object name="convCircularDependenceTest_A_A" type="Spring.ConversationWA.Imple.WebConversationSpringState, Spring.ConversationWA.NH33" scope="session">
<property name="Id" value="convCircularDependenceTest_A_A"></property>
<property name="InnerConversations">
<list>
<ref object="convCircularDependenceTest_A_A_A"/>
</list>
</property>
</object>
<object name="convCircularDependenceTest_A_A_A" type="Spring.ConversationWA.Imple.WebConversationSpringState, Spring.ConversationWA.NH33" scope="session">
<property name="Id" value="convCircularDependenceTest_A_A_A"></property>
<property name="['conversationEvidenceBsn']" ref="conversationEvidenceBsn"></property>
</object>
<object name="conversationEvidenceBsn" type="Spring.Bsn.ConversationEvidenceBsnImpl, Spring.ConversationWA.NH33.Tests" singleton="false">
</object>
<object type="PatialEndConv_A_Begin.aspx">
<property name="Conversation" ref="convPatialEndConv_A"></property>
</object>
<object type="PatialEndConv_A_End.aspx">
<property name="Conversation" ref="convPatialEndConv_A"></property>
</object>
<object type="PatialEndConv_A_B_Begin.aspx">
<property name="Conversation" ref="convPatialEndConv_A_B"></property>
</object>
<object type="PatialEndConv_A_B_End.aspx">
<property name="Conversation" ref="convPatialEndConv_A_B"></property>
</object>
<object name="convPatialEndConv_A" type="Spring.ConversationWA.Imple.WebConversationSpringState, Spring.ConversationWA.NH33" scope="session">
<property name="Id" value="convPatialEndConv_A"></property>
<property name="InnerConversations">
<list>
<ref object="convPatialEndConv_A_A"/>
<ref object="convPatialEndConv_A_B"/>
<ref object="convPatialEndConv_A_C"/>
</list>
</property>
</object>
<object name="convPatialEndConv_A_A" type="Spring.ConversationWA.Imple.WebConversationSpringState, Spring.ConversationWA.NH33" scope="session">
<property name="Id" value="convPatialEndConv_A_A"></property>
</object>
<object name="convPatialEndConv_A_B" type="Spring.ConversationWA.Imple.WebConversationSpringState, Spring.ConversationWA.NH33" scope="session">
<property name="Id" value="convPatialEndConv_A_B"></property>
<property name="InnerConversations">
<list>
<ref object="convPatialEndConv_A_B_A"/>
<ref object="convPatialEndConv_A_B_B"/>
</list>
</property>
</object>
<object name="convPatialEndConv_A_B_A" type="Spring.ConversationWA.Imple.WebConversationSpringState, Spring.ConversationWA.NH33" scope="session">
<property name="Id" value="convPatialEndConv_A_B_A"></property>
</object>
<object name="convPatialEndConv_A_B_B" type="Spring.ConversationWA.Imple.WebConversationSpringState, Spring.ConversationWA.NH33" scope="session">
<property name="Id" value="convPatialEndConv_A_B_B"></property>
</object>
<object name="convPatialEndConv_A_C" type="Spring.ConversationWA.Imple.WebConversationSpringState, Spring.ConversationWA.NH33" scope="session">
<property name="Id" value="convPatialEndConv_A_C"></property>
</object>
<object type="GetParentObjetFromChild.aspx">
<property name="Conversation" ref="convGetParentObjetFromChildChild"></property>
</object>
<object name="convGetParentObjetFromChildParent" type="Spring.ConversationWA.Imple.WebConversationSpringState, Spring.ConversationWA.NH33" scope="session">
<property name="Id" value="convGetParentObjetFromChildParent"></property>
<property name="['parentKey']" value="parentValue"></property>
<property name="['overwrittenKey']" value="overwrittenValueParent"></property>
<property name="InnerConversations">
<list>
<ref object="convGetParentObjetFromChildChild"/>
</list>
</property>
</object>
<object name="convGetParentObjetFromChildChild" type="Spring.ConversationWA.Imple.WebConversationSpringState, Spring.ConversationWA.NH33" scope="session">
<property name="Id" value="convGetParentObjetFromChildChild"></property>
<property name="ParenteConversation" ref="convGetParentObjetFromChildParent"></property>
<property name="['childKey']" value="childValue"></property>
<property name="['overwrittenKey']" value="overwrittenValueChild"></property>
</object>
<object type="TimeOut_NoTimeOut.aspx">
<property name="Conversation" ref="convTimeOut"></property>
</object>
<object type="TimeOut_WithTimeOut.aspx">
<property name="Conversation" ref="convTimeOut"></property>
</object>
<object name="convTimeOut" type="Spring.ConversationWA.Imple.WebConversationSpringState, Spring.ConversationWA.NH33" scope="session">
<property name="Id" value="convTimeOut"></property>
<property name="TimeOut" value="60000"></property>
<property name="ConversationManager" ref="conversationManager"></property>
<property name="['keyTimeOut']" value="this is the orinal value"></property>
</object>
<!--END: Teste de Conversation-->
<object name="HttpApplicationConfigurer" type="Spring.Context.Support.HttpApplicationConfigurer, Spring.Web">
<property name="ModuleTemplates">
<dictionary>
<entry key="ConversationModule">
<!-- this name must match the module name -->
<object>
<!-- select "view source" in your browser on any page to see the appended html comment -->
<property name="ConversationManagerNameList">
<list element-type="string">
<value>conversationManager</value>
<value>conversationManagerEndPaused</value>
<value>convMngEndPausedSessionIsClosed</value>
</list>
</property>
</object>
</entry>
</dictionary>
</property>
</object>
<!--BEGIN: session-per-conversation -->
<object type="SPCLazyLoadTest_A_Begin.aspx">
<property name="Conversation" ref="convSPCLazyLoad"></property>
<property name="SessionFactory" ref="MySessionFactory"/>
</object>
<object type="SPCLazyLoadTest_A_Status.aspx">
<property name="Conversation" ref="convSPCLazyLoad"></property>
</object>
<object name="convSPCLazyLoad" type="Spring.ConversationWA.Imple.WebConversationSpringState, Spring.ConversationWA.NH33" scope="session">
<property name="Id" value="convSPCLazyLoad"></property>
<property name="TimeOut" value="600000"></property>
<property name="ConversationManager" ref="conversationManager"></property>
<property name="SessionFactory" ref="MySessionFactory"/>
<property name="DbProvider" ref="DbProvider"/>
</object>
<object type="SPCSwitchConversationSameRequest.aspx">
<property name="ConversationB" ref="convSPCSwitchConversationSameRequestB"></property>
<property name="ConversationA" ref="convSPCSwitchConversationSameRequestA"></property>
<property name="SessionFactory" ref="MySessionFactory"/>
</object>
<object name="convSPCSwitchConversationSameRequestA" type="Spring.ConversationWA.Imple.WebConversationSpringState, Spring.ConversationWA.NH33" scope="session">
<property name="Id" value="convSPCSwitchConversationSameRequestA"></property>
<property name="TimeOut" value="600000"></property>
<property name="ConversationManager" ref="conversationManager"></property>
<property name="SessionFactory" ref="MySessionFactory"/>
<property name="DbProvider" ref="DbProvider"/>
</object>
<object name="convSPCSwitchConversationSameRequestB" type="Spring.ConversationWA.Imple.WebConversationSpringState, Spring.ConversationWA.NH33" scope="session">
<property name="Id" value="convSPCSwitchConversationSameRequestB"></property>
<property name="TimeOut" value="600000"></property>
<property name="ConversationManager" ref="conversationManager"></property>
<property name="SessionFactory" ref="MySessionFactory"/>
<property name="DbProvider" ref="DbProvider"/>
</object>
<!--END: session-per-conversation -->
<!--BEGIN:RedirectErrorNoPauseConversation-->
<object type="RedirectErrorNoPauseConversation.aspx">
<property name="Conversation" ref="convRedirectErrorNoPauseConversation"></property>
</object>
<object name="convRedirectErrorNoPauseConversation" type="Spring.ConversationWA.Imple.WebConversationSpringState, Spring.ConversationWA.NH33" scope="session">
<property name="Id" value="convRedirectErrorNoPauseConversation"></property>
<property name="TimeOut" value="600000"></property>
<property name="ConversationManager" ref="conversationManager"></property>
<property name="SessionFactory" ref="MySessionFactory"/>
<property name="DbProvider" ref="DbProvider"/>
</object>
<!--BEGIN:RedirectErrorNoPauseConversation-->
<!--BEGIN: InvalidOperationException Tests -->
<object type="IoeTests.aspx">
<property name="ConversationA" ref="convIoeTestsA"></property>
<property name="ConversationAA" ref="convIoeTestsAA"></property>
<property name="ConversationManager" ref="conversationManager"></property>
<property name="SessionFactory" ref="MySessionFactory"></property>
</object>
<object name="convIoeTestsA" type="Spring.ConversationWA.Imple.WebConversationSpringState, Spring.ConversationWA.NH33" scope="session">
<property name="Id" value="convIoeTestsA"></property>
<property name="TimeOut" value="600000"></property>
<property name="ConversationManager" ref="conversationManager"></property>
<property name="SessionFactory" ref="MySessionFactory"/>
<property name="DbProvider" ref="DbProvider"/>
</object>
<object name="convIoeTestsAA" type="Spring.ConversationWA.Imple.WebConversationSpringState, Spring.ConversationWA.NH33" scope="session">
<property name="Id" value="convIoeTestsAA"></property>
<property name="TimeOut" value="600000"></property>
<property name="ConversationManager" ref="conversationManager"></property>
<property name="ParenteConversation" ref="convIoeTestsA"></property>
</object>
<!--END: InvalidOperationException Tests -->
<!--BEGIN: EndPausedTest Tests -->
<object type="EndPausedTest.aspx">
<property name="ConvA" ref="convAEndPaused"></property>
<property name="ConvB" ref="convBEndPaused"></property>
</object>
<object name="convAEndPaused" type="Spring.ConversationWA.Imple.WebConversationSpringState, Spring.ConversationWA.NH33" scope="session">
<property name="Id" value="convAEndPaused"></property>
<property name="ConversationManager" ref="conversationManagerEndPaused"></property>
</object>
<object name="convBEndPaused" type="Spring.ConversationWA.Imple.WebConversationSpringState, Spring.ConversationWA.NH33" scope="session">
<property name="Id" value="convBEndPaused"></property>
<property name="ConversationManager" ref="conversationManagerEndPaused"></property>
</object>
<object name="conversationManagerEndPaused" type="Spring.ConversationWA.Imple.WebConversationManager, Spring.ConversationWA.NH33" scope="session">
<property name="EndPaused" value="true"></property>
</object>
<!--END: EndPausedTest Tests -->
<!--BEGIN: SessionIsClosed-->
<object type="SessionIsClosedA.aspx">
<property name="Conversation" ref="convASessionIsClosed"></property>
</object>
<object type="SessionIsClosedB.aspx">
<property name="Conversation" ref="convBSessionIsClosed"></property>
<property name="ConversationA" ref="convASessionIsClosed"></property>
</object>
<object name="convASessionIsClosed" type="Spring.ConversationWA.Imple.WebConversationSpringState, Spring.ConversationWA.NH33" scope="session">
<property name="Id" value="convASessionIsClosed"></property>
<property name="TimeOut" value="600000"></property>
<property name="ConversationManager" ref="conversationManager"></property>
<property name="SessionFactory" ref="MySessionFactory"/>
<property name="DbProvider" ref="DbProvider"/>
</object>
<object name="convBSessionIsClosed" type="Spring.ConversationWA.Imple.WebConversationSpringState, Spring.ConversationWA.NH33" scope="session">
<property name="Id" value="convBSessionIsClosed"></property>
<property name="TimeOut" value="600000"></property>
<property name="ConversationManager" ref="conversationManager"></property>
<property name="SessionFactory" ref="MySessionFactory"/>
<property name="DbProvider" ref="DbProvider"/>
</object>
<!--END: SessionIsClosed-->
<!--BEGIN: EndPausedSessionIsClosed-->
<object type="EndPausedSessionIsClosedA.aspx">
<property name="Conversation" ref="convAEndPausedSessionIsClosed"></property>
</object>
<object type="EndPausedSessionIsClosedB.aspx">
<property name="Conversation" ref="convBEndPausedSessionIsClosed"></property>
</object>
<object name="convAEndPausedSessionIsClosed" type="Spring.ConversationWA.Imple.WebConversationSpringState, Spring.ConversationWA.NH33" scope="session">
<property name="Id" value="convAEndPausedSessionIsClosed"></property>
<property name="TimeOut" value="600000"></property>
<property name="ConversationManager" ref="convMngEndPausedSessionIsClosed"></property>
<property name="SessionFactory" ref="MySessionFactory"/>
<property name="DbProvider" ref="DbProvider"/>
</object>
<object name="convBEndPausedSessionIsClosed" type="Spring.ConversationWA.Imple.WebConversationSpringState, Spring.ConversationWA.NH33" scope="session">
<property name="Id" value="convBEndPausedSessionIsClosed"></property>
<property name="TimeOut" value="600000"></property>
<property name="ConversationManager" ref="convMngEndPausedSessionIsClosed"></property>
<property name="SessionFactory" ref="MySessionFactory"/>
<property name="DbProvider" ref="DbProvider"/>
</object>
<object name="convMngEndPausedSessionIsClosed" type="Spring.ConversationWA.Imple.WebConversationManager, Spring.ConversationWA.NH33" scope="session">
<property name="SessionFactory" ref="MySessionFactory"/>
<property name="EndPaused" value="true"/>
</object>
<!--END: EndPausedSessionIsClosed-->
<!--BEGIN: ConnectionReleaseModeIssue-->
<object type="ConnectionReleaseModeIssue.aspx">
<property name="Conversation" ref="convConnectionReleaseModeIssue"/>
<property name="SessionFactory" ref="MySessionFactory"/>
<property name="ConnectionReleaseModeIssueBsn" ref="connectionReleaseModeIssueBsn"/>
</object>
<object name="convConnectionReleaseModeIssue" type="Spring.ConversationWA.Imple.WebConversationSpringState, Spring.ConversationWA.NH33" scope="session">
<property name="Id" value="convConnectionReleaseModeIssue"></property>
<property name="TimeOut" value="600000"></property>
<property name="ConversationManager" ref="conversationManager"></property>
<property name="SessionFactory" ref="MySessionFactory"/>
<property name="DbProvider" ref="DbProvider"/>
</object>
<object id="connectionReleaseModeIssueBsn" type="Spring.Bsn.ConnectionReleaseModeIssueBsnImpl, Spring.ConversationWA.NH33.Tests" singleton="true">
<property name="SessionFactory" ref="MySessionFactory"/>
</object>
<!--END: ConnectionReleaseModeIssue-->
<!-- BEGIN: Common configuration-->
<object name="conversationManager" type="Spring.ConversationWA.Imple.WebConversationManager, Spring.ConversationWA.NH33" scope="session">
<property name="SessionFactory" ref="MySessionFactory"/>
</object>
<object id="transactionManager" type="Spring.Data.NHibernate.HibernateTransactionManager, Spring.Data.NHibernate33">
<property name="DbProvider" ref="DbProvider"/>
<property name="SessionFactory" ref="MySessionFactory"/>
</object>
<object id="MySessionFactory" type="Spring.Data.NHibernate.LocalSessionFactoryObject, Spring.Data.NHibernate33">
<property name="DbProvider" ref="DbProvider"/>
<property name="MappingAssemblies">
<list>
<value>Spring.ConversationWA.NH33.Tests</value>
</list>
</property>
<property name="HibernateProperties">
<dictionary>
<!--<entry key="connection.provider" value="AcessaDados.NHibernate.Connection.SiefDriverConnectionProvider, AcessaDados"/>-->
<entry key="dialect" value="NHibernate.Dialect.SQLiteDialect"/>
<entry key="connection.driver_class" value="NHibernate.Driver.SQLite20Driver"/>
<entry key="current_session_context_class" value="Spring.Data.NHibernate.SpringSessionContext, Spring.Data.NHibernate33"/>
<entry key="hbm2ddl.keywords" value="none"/>
<entry key="query.startup_check" value="false"/>
<entry key="show_sql" value="false"/>
<entry key="use_outer_join" value="true"/>
<entry key="format_sql" value="true"/>
<entry key="connection.release_mode" value="on_close"/>
</dictionary>
</property>
</object>
<object id="DbProvider" type="Spring.Spring.Data.Common.CountGetConnDbProvider, Spring.ConversationWA.NH33.Tests">
<property name="TargetDbProvider" ref="targetDbProvider"/>
</object>
<db:provider id="targetDbProvider" provider="System.Data.SQLite" connectionString="Data Source=|DataDirectory|../sqlite/conversationTests.db;Version=3;FailIfMissing=True;"></db:provider>
<tx:attribute-driven transaction-manager="transactionManager"/>
<!-- END: Common configuration-->
</objects>

View File

@@ -0,0 +1,97 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<sectionGroup name="spring">
<section name="context" type="Spring.Context.Support.WebContextHandler, Spring.Web"/>
<section name="parsers" type="Spring.Context.Support.NamespaceParsersSectionHandler, Spring.Core"/>
</sectionGroup>
<sectionGroup name="common">
<section name="logging" type="Common.Logging.ConfigurationSectionHandler, Common.Logging" />
</sectionGroup>
</configSections>
<common>
<logging>
<factoryAdapter type="Common.Logging.Simple.ConsoleOutLoggerFactoryAdapter, Common.Logging">
<arg key="Level" value="ERROR" />
</factoryAdapter>
</logging>
<!--
<logging>
<factoryAdapter type="Common.Logging.Log4Net.Log4NetLoggerFactoryAdapter, Common.Logging.Log4net">
<arg key="configType" value="FILE-WATCH" />
<arg key="configFile" value="~/log4net.config" />
</factoryAdapter>
</logging>
-->
</common>
<spring>
<parsers>
<parser type="Spring.Data.Config.DatabaseNamespaceParser, Spring.Data" />
<parser type="Spring.Transaction.Config.TxNamespaceParser, Spring.Data" />
</parsers>
<context name="SpringPrvConctWbApp" type="Spring.Context.Support.WebApplicationContext, Spring.Web">
<resource uri="~/services.xml.config"/>
</context>
</spring>
<appSettings>
<add key="testkey" value="testvalue" />
</appSettings>
<system.web>
<compilation debug="true">
<assemblies>
<add assembly="System.Transactions, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
</assemblies>
</compilation>
<httpModules>
<add name="NUnitAspExModule" type="NUnitAspEx.AspTestExecutionModule, NUnitAspEx" />
<add name="Spring" type="Spring.Context.Support.WebSupportModule, Spring.Web"/>
<add name="ConversationModule" type="Spring.ConversationWA.HttpModule.ConversationModule, Spring.ConversationWA.NH33"/>
</httpModules>
<httpHandlers>
<add verb="*" path="*.test" type="NUnitAspEx.AspTestMethodHandler, NUnitAspEx" validate="false" />
<add verb="*" path="*.aspx" type="Spring.Web.Support.PageHandlerFactory, Spring.Web"/>
<add verb="*" path="ContextMonitor.ashx" type="Spring.Web.Support.ContextMonitor, Spring.Web"/>
</httpHandlers>
</system.web>
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<modules>
<add name="NUnitAspExModule" preCondition="integratedMode" type="NUnitAspEx.AspTestExecutionModule, NUnitAspEx" />
<add name="Spring" preCondition="integratedMode" type="Spring.Context.Support.WebSupportModule, Spring.Web"/>
<add name="ConversationModule" preCondition="integratedMode" type="Spring.ConversationWA.HttpModule.ConversationModule, Spring.ConversationWA.NH33"/>
</modules>
<handlers>
<add name="AspTestMethodHandler" verb="*" path="*.test" preCondition="integratedMode" type="NUnitAspEx.AspTestMethodHandler, NUnitAspEx" validate="false" />
<add name="PageHandlerFactory" verb="*" path="*.aspx" preCondition="integratedMode" type="Spring.Web.Support.PageHandlerFactory, Spring.Web"/>
<add name="ContextMonitor" verb="*" path="ContextMonitor.ashx" preCondition="integratedMode" type="Spring.Web.Support.ContextMonitor, Spring.Web"/>
</handlers>
</system.webServer>
<system.data>
<DbProviderFactories>
<remove invariant="System.Data.SQLite"/>
<add name="SQLite Data Provider"
invariant="System.Data.SQLite"
description=".Net Framework Data Provider for SQLite"
type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite" />
</DbProviderFactories>
</system.data>
<startup>
<supportedRuntime version="v2.0.50727"/>
</startup>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Data.SQLite"
publicKeyToken="db937bc2d44ff139"
culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-65535.65535.65535.65535" newVersion="1.0.80.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" namespace="Spring.Entities" assembly="Spring.ConversationWA.NH33.Tests">
<class name="SPCDetailEnt" table="SPCDetail">
<id name="Id" type="Int32" column="Id">
<generator class="increment"></generator>
</id>
<property name="Description" column="Description" type="String"/>
</class>
</hibernate-mapping>

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" namespace="Spring.Entities" assembly="Spring.ConversationWA.NH33.Tests">
<class name="SPCMasterEnt" table="SPCMaster">
<id name="Id" type="Int32" column="Id">
<generator class="increment"></generator>
</id>
<property name="Description" column="Description" type="String"/>
<bag name="SPCDetailEntList" fetch="select">
<key column="MasterId"></key>
<one-to-many class="Spring.Entities.SPCDetailEnt, Spring.ConversationWA.NH33.Tests"/>
</bag>
</class>
</hibernate-mapping>

View File

@@ -0,0 +1,174 @@
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>9.0.30729</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{C57B05EA-FD1A-40EC-BB60-D2E45AB1A86A}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Spring</RootNamespace>
<AssemblyName>Spring.ConversationWA.NH33.Tests</AssemblyName>
<FileUpgradeFlags>
</FileUpgradeFlags>
<OldToolsVersion>2.0</OldToolsVersion>
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
<UpgradeBackupLocation>
</UpgradeBackupLocation>
<TargetFrameworkSubset>
</TargetFrameworkSubset>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>..\..\..\build\VS.Net.2008\Spring.ConversationWA.NH33.Tests\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<DocumentationFile>
</DocumentationFile>
<StartAction>Program</StartAction>
<StartProgram>$(MSBuildProjectDirectory)\..\..\dependencies\tools\NUnit-2.6.0.12051\bin\nunit-x86.exe</StartProgram>
<StartArguments>"$(MSBuildProjectDirectory)\$(OutputPath)\$(AssemblyName).dll"</StartArguments>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="Common.Logging, Version=2.0.0.0, Culture=neutral, PublicKeyToken=af08829b84f0328e, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\lib\Net\2.0\Common.Logging.dll</HintPath>
</Reference>
<Reference Include="log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\lib\Net\2.0\log4net.dll</HintPath>
</Reference>
<Reference Include="NHibernate, Version=3.3.0.4000, Culture=neutral, PublicKeyToken=aa95f207798dfdb4, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\lib\NHibernate33\net\3.5\NHibernate.dll</HintPath>
</Reference>
<Reference Include="nunit.framework, Version=2.5.7.10213, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\lib\Net\2.0\nunit.framework.dll</HintPath>
</Reference>
<Reference Include="NUnitAspEx, Version=2.0.3482.27831, Culture=neutral">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\lib\Net\2.0\NUnitAspEx.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Core">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<Reference Include="System.Data" />
<Reference Include="System.Data.SQLite, Version=1.0.80.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139, processorArchitecture=x86">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\Spring.ConversationWA.NH32.Tests\lib\net\2.0\System.Data.SQLite.dll</HintPath>
</Reference>
<Reference Include="System.Web" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="..\..\..\src\Spring\CommonAssemblyInfo.cs">
<Link>CommonAssemblyInfo.cs</Link>
</Compile>
<Compile Include="..\Spring.ConversationWA.NH32.Tests\Bsn\ConversationEvidenceBsnImpl.cs">
<Link>Bsn\ConversationEvidenceBsnImpl.cs</Link>
</Compile>
<Compile Include="..\Spring.ConversationWA.NH32.Tests\Bsn\IConversationEvidenceBsn.cs">
<Link>Bsn\IConversationEvidenceBsn.cs</Link>
</Compile>
<Compile Include="..\Spring.ConversationWA.NH32.Tests\Bsn\INoDeferedErrorBsn.cs">
<Link>Bsn\INoDeferedErrorBsn.cs</Link>
</Compile>
<Compile Include="..\Spring.ConversationWA.NH32.Tests\Bsn\NoDeferedErrorBsnImpl.cs">
<Link>Bsn\NoDeferedErrorBsnImpl.cs</Link>
</Compile>
<Compile Include="..\Spring.ConversationWA.NH32.Tests\ConversationWA\PatialEndConvBeginBasePage.cs">
<Link>ConversationWA\PatialEndConvBeginBasePage.cs</Link>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="..\Spring.ConversationWA.NH32.Tests\ConversationWA\PatialEndConvEndBasePage.cs">
<Link>ConversationWA\PatialEndConvEndBasePage.cs</Link>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="..\Spring.ConversationWA.NH32.Tests\ConversationWA\WebConversationStateTest.cs">
<Link>ConversationWA\WebConversationStateTest.cs</Link>
</Compile>
<Compile Include="..\Spring.ConversationWA.NH32.Tests\Entities\SPCDetailEnt.cs">
<Link>Entities\SPCDetailEnt.cs</Link>
</Compile>
<Compile Include="..\Spring.ConversationWA.NH32.Tests\Entities\SPCMasterEnt.cs">
<Link>Entities\SPCMasterEnt.cs</Link>
</Compile>
<Compile Include="..\Spring.ConversationWA.NH32.Tests\Spring\Data\Common\CountGetConnDbProvider.cs">
<Link>Spring\Data\Common\CountGetConnDbProvider.cs</Link>
</Compile>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\src\Spring\Spring.Aop\Spring.Aop.2008.csproj">
<Project>{3A3A4E65-45A6-4B20-B460-0BEDC302C02C}</Project>
<Name>Spring.Aop.2008</Name>
</ProjectReference>
<ProjectReference Include="..\..\..\src\Spring\Spring.ConversationWA.NH33\Spring.ConversationWA.NH33.2008.csproj">
<Project>{64400FF8-2E9F-4809-B5F4-0C7EB8ABFF87}</Project>
<Name>Spring.ConversationWA.NH33.2008</Name>
</ProjectReference>
<ProjectReference Include="..\..\..\src\Spring\Spring.Core\Spring.Core.2008.csproj">
<Project>{710961A3-0DF4-49E4-A26E-F5B9C044AC84}</Project>
<Name>Spring.Core.2008</Name>
</ProjectReference>
<ProjectReference Include="..\..\..\src\Spring\Spring.Data.NHibernate33\Spring.Data.NHibernate33.2008.csproj">
<Project>{67EA5988-C54E-4348-BFFB-E4A61F26143C}</Project>
<Name>Spring.Data.NHibernate33.2008</Name>
</ProjectReference>
<ProjectReference Include="..\..\..\src\Spring\Spring.Data\Spring.Data.2008.csproj">
<Project>{AE00E5AB-C39A-436F-86D2-33BFE33E2E40}</Project>
<Name>Spring.Data.2008</Name>
</ProjectReference>
<ProjectReference Include="..\..\..\src\Spring\Spring.Web\Spring.Web.2008.csproj">
<Project>{BA4789EB-281A-48EA-8763-28B9F0596A18}</Project>
<Name>Spring.Web.2008</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<None Include="Data\Spring\ConversationWA\WebConversationStateTest\services.xml.config" />
<None Include="Data\Spring\ConversationWA\WebConversationStateTest\web.config.net-1.1" />
<None Include="Data\Spring\ConversationWA\WebConversationStateTest\web.config.net-2.0" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="Entities\SPCDetailEnt.hbm.xml" />
<EmbeddedResource Include="Entities\SPCMasterEnt.hbm.xml" />
</ItemGroup>
<ItemGroup>
<None Include="..\Spring.ConversationWA.NH32.Tests\Data\Spring\ConversationWA\WebConversationStateTest\log4net.config">
<Link>Data\Spring\ConversationWA\WebConversationStateTest\log4net.config</Link>
</None>
<None Include="app.config" />
<None Include="Data\Spring\ConversationWA\WebConversationStateTest\Web.Config" />
</ItemGroup>
<ItemGroup>
<Folder Include="Properties\" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
<PropertyGroup>
<PostBuildEvent>echo "Copying TestWebs to output directory"
rd /S /Q "$(TargetDir)Data"
xcopy "$(ProjectDir)..\Spring.ConversationWA.NH32.Tests\Data" "$(TargetDir)Data\" /y /s
xcopy "$(ProjectDir)Data" "$(TargetDir)Data\" /y /s
rd /S /Q "$(TargetDir)Data\Spring\ConversationWA\WebConversationStateTest\Bin"
</PostBuildEvent>
</PropertyGroup>
</Project>

View File

@@ -0,0 +1,206 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>9.0.30729</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{C57B05EA-FD1A-40EC-BB60-D2E45AB1A86A}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Spring</RootNamespace>
<AssemblyName>Spring.ConversationWA.NH33.Tests</AssemblyName>
<FileUpgradeFlags>
</FileUpgradeFlags>
<OldToolsVersion>3.5</OldToolsVersion>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<UpgradeBackupLocation>
</UpgradeBackupLocation>
<PublishUrl>http://localhost/Spring.ConversationWA.NH33.Tests/</PublishUrl>
<Install>true</Install>
<InstallFrom>Web</InstallFrom>
<UpdateEnabled>true</UpdateEnabled>
<UpdateMode>Foreground</UpdateMode>
<UpdateInterval>7</UpdateInterval>
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
<UpdatePeriodically>false</UpdatePeriodically>
<UpdateRequired>false</UpdateRequired>
<MapFileExtensions>true</MapFileExtensions>
<ApplicationRevision>0</ApplicationRevision>
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
<IsWebBootstrapper>true</IsWebBootstrapper>
<UseApplicationTrust>false</UseApplicationTrust>
<BootstrapperEnabled>true</BootstrapperEnabled>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>..\..\..\build\VS.Net.2010\Spring.ConversationWA.NH33.Tests\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<DocumentationFile>
</DocumentationFile>
<StartAction>Program</StartAction>
<StartProgram>$(MSBuildProjectDirectory)\..\..\dependencies\tools\NUnit-2.6.0.12051\bin\nunit-x86.exe</StartProgram>
<StartArguments>"$(MSBuildProjectDirectory)\$(OutputPath)\$(AssemblyName).dll"</StartArguments>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="Common.Logging, Version=2.0.0.0, Culture=neutral, PublicKeyToken=af08829b84f0328e, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\lib\Net\2.0\Common.Logging.dll</HintPath>
</Reference>
<Reference Include="NHibernate, Version=3.3.0.4000, Culture=neutral, PublicKeyToken=aa95f207798dfdb4, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\lib\NHibernate33\net\3.5\NHibernate.dll</HintPath>
</Reference>
<Reference Include="nunit.framework, Version=2.5.7.10213, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\lib\Net\2.0\nunit.framework.dll</HintPath>
</Reference>
<Reference Include="NUnitAspEx, Version=2.0.3482.27831, Culture=neutral">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\lib\Net\2.0\NUnitAspEx.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Core">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<Reference Include="System.Data" />
<Reference Include="System.Data.SQLite, Version=1.0.80.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139, processorArchitecture=x86">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\Spring.ConversationWA.NH32.Tests\lib\net\2.0\System.Data.SQLite.dll</HintPath>
</Reference>
<Reference Include="System.Web" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="..\..\..\src\Spring\CommonAssemblyInfo.cs">
<Link>CommonAssemblyInfo.cs</Link>
</Compile>
<Compile Include="..\Spring.ConversationWA.NH32.Tests\Bsn\ConversationEvidenceBsnImpl.cs">
<Link>Bsn\ConversationEvidenceBsnImpl.cs</Link>
</Compile>
<Compile Include="..\Spring.ConversationWA.NH32.Tests\Bsn\IConversationEvidenceBsn.cs">
<Link>Bsn\IConversationEvidenceBsn.cs</Link>
</Compile>
<Compile Include="..\Spring.ConversationWA.NH32.Tests\Bsn\INoDeferedErrorBsn.cs">
<Link>Bsn\INoDeferedErrorBsn.cs</Link>
</Compile>
<Compile Include="..\Spring.ConversationWA.NH32.Tests\Bsn\NoDeferedErrorBsnImpl.cs">
<Link>Bsn\NoDeferedErrorBsnImpl.cs</Link>
</Compile>
<Compile Include="..\Spring.ConversationWA.NH32.Tests\ConversationWA\PatialEndConvBeginBasePage.cs">
<Link>ConversationWA\PatialEndConvBeginBasePage.cs</Link>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="..\Spring.ConversationWA.NH32.Tests\ConversationWA\PatialEndConvEndBasePage.cs">
<Link>ConversationWA\PatialEndConvEndBasePage.cs</Link>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="..\Spring.ConversationWA.NH32.Tests\ConversationWA\WebConversationStateTest.cs">
<Link>ConversationWA\WebConversationStateTest.cs</Link>
</Compile>
<Compile Include="..\Spring.ConversationWA.NH32.Tests\Entities\SPCDetailEnt.cs">
<Link>Entities\SPCDetailEnt.cs</Link>
</Compile>
<Compile Include="..\Spring.ConversationWA.NH32.Tests\Entities\SPCMasterEnt.cs">
<Link>Entities\SPCMasterEnt.cs</Link>
</Compile>
<Compile Include="..\Spring.ConversationWA.NH32.Tests\Spring\Data\Common\CountGetConnDbProvider.cs">
<Link>Spring\Data\Common\CountGetConnDbProvider.cs</Link>
</Compile>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\src\Spring\Spring.Aop\Spring.Aop.2010.csproj">
<Project>{3A3A4E65-45A6-4B20-B460-0BEDC302C02C}</Project>
<Name>Spring.Aop.2010</Name>
</ProjectReference>
<ProjectReference Include="..\..\..\src\Spring\Spring.ConversationWA.NH33\Spring.ConversationWA.NH33.2010.csproj">
<Project>{CF375928-B6D5-485C-B04D-2BC41D9DBF1E}</Project>
<Name>Spring.ConversationWA.NH33.2010</Name>
</ProjectReference>
<ProjectReference Include="..\..\..\src\Spring\Spring.Core\Spring.Core.2010.csproj">
<Project>{710961A3-0DF4-49E4-A26E-F5B9C044AC84}</Project>
<Name>Spring.Core.2010</Name>
</ProjectReference>
<ProjectReference Include="..\..\..\src\Spring\Spring.Data.NHibernate33\Spring.Data.NHibernate33.2010.csproj">
<Project>{D546EFB7-9F6C-4C11-B2F8-B85FAD135399}</Project>
<Name>Spring.Data.NHibernate33.2010</Name>
</ProjectReference>
<ProjectReference Include="..\..\..\src\Spring\Spring.Data\Spring.Data.2010.csproj">
<Project>{AE00E5AB-C39A-436F-86D2-33BFE33E2E40}</Project>
<Name>Spring.Data.2010</Name>
</ProjectReference>
<ProjectReference Include="..\..\..\src\Spring\Spring.Web\Spring.Web.2010.csproj">
<Project>{BA4789EB-281A-48EA-8763-28B9F0596A18}</Project>
<Name>Spring.Web.2010</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<None Include="Data\Spring\ConversationWA\WebConversationStateTest\services.xml.config" />
<None Include="Data\Spring\ConversationWA\WebConversationStateTest\web.config.net-1.1" />
<None Include="Data\Spring\ConversationWA\WebConversationStateTest\web.config.net-2.0" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="Entities\SPCDetailEnt.hbm.xml" />
<EmbeddedResource Include="Entities\SPCMasterEnt.hbm.xml" />
</ItemGroup>
<ItemGroup>
<None Include="..\Spring.ConversationWA.NH32.Tests\Data\Spring\ConversationWA\WebConversationStateTest\log4net.config">
<Link>Data\Spring\ConversationWA\WebConversationStateTest\log4net.config</Link>
</None>
<None Include="app.config" />
<None Include="Data\Spring\ConversationWA\WebConversationStateTest\Web.Config" />
</ItemGroup>
<ItemGroup>
<Folder Include="Properties\" />
</ItemGroup>
<ItemGroup>
<BootstrapperPackage Include=".NETFramework,Version=v4.0">
<Visible>False</Visible>
<ProductName>Microsoft .NET Framework 4 %28x86 and x64%29</ProductName>
<Install>true</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Client.3.5">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">
<Visible>False</Visible>
<ProductName>Windows Installer 3.1</ProductName>
<Install>true</Install>
</BootstrapperPackage>
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
<PropertyGroup>
<PostBuildEvent>echo "Copying TestWebs to output directory"
rd /S /Q "$(TargetDir)Data"
xcopy "$(ProjectDir)..\Spring.ConversationWA.NH32.Tests\Data" "$(TargetDir)Data\" /y /s
xcopy "$(ProjectDir)Data" "$(TargetDir)Data\" /y /s
rd /S /Q "$(TargetDir)Data\Spring\ConversationWA\WebConversationStateTest\Bin"
</PostBuildEvent>
</PropertyGroup>
</Project>

View File

@@ -0,0 +1,131 @@
<?xml version="1.0" ?>
<project name="Spring.ConversationWA.NH33.Tests" default="test" xmlns="http://nant.sf.net/release/0.91-alpha2/nant.xsd">
<include buildfile="${spring.basedir}/common-project.include" />
<!--
Required properties:
* current.bin.dir - (path) root level to build to
* build.debug - (true|false) debug build?
* current.build.defines.csc - framework-specific build defines
-->
<target name="build">
<!-- copy nh libs. It's necessary here to avoid wrong reference to NHibernate 3.3-->
<copy todir="${current.bin.dir}" overwrite="true">
<fileset basedir="${nh33.lib.dir}">
<include name="**/*.dll" />
</fileset>
</copy>
<csc target="library" define="${current.build.defines.csc}"
warnaserror="true"
optimize="${build.optimize}"
debug="${current.build.debug}"
output="${current.bin.dir}/${project::get-name()}.dll"
doc="${current.bin.dir}/${project::get-name()}.xml">
<nowarn>
<warning number="${nowarn.numbers.test}" />
</nowarn>
<sources failonempty="true">
<include name="**/*.cs" />
<include name="../CommonAssemblyInfo.cs" />
<exclude name="Data/**/*.*" />
<exclude name="bin/**/*" />
<include name="../Spring.ConversationWA.NH32.Tests/**/*.cs" />
<exclude name="../Spring.ConversationWA.NH32/AssemblyInfo.cs"/>
<exclude name="../Spring.ConversationWA.NH32.Tests/Data/**/*.*" />
<exclude name="../Spring.ConversationWA.NH32.Tests/bin/**/*" />
</sources>
<references basedir="${current.bin.dir}">
<lib>
<include name="${nh33.lib.dir}"/>
</lib>
<include name="System.Data.dll" />
<include name="System.EnterpriseServices.dll" />
<include name="*.dll" />
<exclude name="${project::get-name()}.dll" />
<exclude name="Spring.Data.NHibernate1*.dll" />
<exclude name="Spring.Data.NHibernate2*.dll" />
<exclude name="Spring.Data.NHibernate30*.dll" />
<exclude name="Spring.Data.NHibernate32*.dll" />
<exclude name="Spring.ConversationWA.NH32*.dll" />
<exclude name="Spring.Data.NHibernate*Tests*.dll" />
<exclude name="CloverRuntime.dll" />
<exclude if="${net-4.0}" name="System.Web.Extensions.dll" />
</references>
<resources prefix="Spring" dynamicprefix="true" failonempty="true">
<include name="**/*.xml" />
<exclude name="Data/**/*" />
<exclude name="obj/**/*" />
<exclude name="bin/**/*" />
</resources>
</csc>
<copy file="${project::get-base-directory()}/app.config"
tofile="${current.bin.dir}/${project::get-name()}.dll.config"/>
<echo message="Copying TestWebs to output directory"/>
<delete dir="${current.bin.dir}/Data"/>
<copy todir="${current.bin.dir}/Data">
<fileset basedir="${project::get-base-directory()}/../Spring.ConversationWA.NH32.Tests/Data">
<include name="**/*.*" />
<exclude name="bin/*.*" />
</fileset>
</copy>
<copy todir="${current.bin.dir}/Data" overwrite="true">
<fileset basedir="${project::get-base-directory()}/Data">
<include name="**/*.*" />
<exclude name="bin/*.*" />
</fileset>
</copy>
</target>
<target name="test" depends="build">
<!--moving temporary files that break the build or test of this project (MOVE)-->
<mkdir dir="${current.bin.dir}/nunitaspex_excluded"/>
<move todir="${current.bin.dir}/nunitaspex_excluded" failonerror="true">
<fileset basedir="${current.bin.dir}">
<include name="Spring.Data.NHibernate32.dll"/>
<include name="Spring.ConversationWA.NH32*.dll"/>
</fileset>
</move>
<!--conditional copies of dll's that can break the build's or test's of other projects (COPY)-->
<!--temporary copies of "System.Data.SQLite.dll" because it is 32bit and causes problems in the compilation of the other test projects. It occurs in 64-bit Windows environment.-->
<property name="no.preexisting.sqlite" value="${not file::exists('${current.bin.dir}/System.Data.SQLite.dll')}"/>
<copy todir="${current.bin.dir}">
<fileset basedir="${project::get-base-directory()}/../Spring.ConversationWA.NH32.Tests/${lib.dir.relative}">
<include name="System.Data.SQLite.dll" if="${no.preexisting.sqlite}"/>
</fileset>
</copy>
<!-- property name="test.assemblyname" value="${project::get-name()}" / -->
<call target="common.run-tests" />
<!--conditional copies of dll's that can break the build's or test's of other projects (DELETE)-->
<delete>
<fileset basedir="${current.bin.dir}">
<include name="System.Data.SQLite.dll" if="${no.preexisting.sqlite}"/>
</fileset>
</delete>
<!--moving temporary files that break the build or test of this project (UNDO MOVE)-->
<move todir="${current.bin.dir}">
<fileset basedir="${current.bin.dir}/nunitaspex_excluded">
<include name="Spring.Data.NHibernate32.dll"/>
<include name="Spring.ConversationWA.NH32*.dll"/>
</fileset>
</move>
</target>
<!--
<target name="test" depends="build">
<nunit2outproc>
<formatter type="Plain" />
<formatter type="Xml" usefile="true" extension=".xml"
outputdir="${current.bin.dir}/results" />
<test assemblyname="${current.bin.dir}/${project::get-name()}.dll"
appconfig="${current.bin.dir}/${project::get-name()}.dll.config" />
</nunit2outproc>
</target>
-->
</project>

View File

@@ -0,0 +1,19 @@
<?xml version="1.0"?>
<configuration>
<startup>
</startup>
<system.data>
<DbProviderFactories>
<remove invariant="System.Data.SQLite"/>
<add name="SQLite Data Provider" invariant="System.Data.SQLite" description=".Net Framework Data Provider for SQLite" type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite"/>
</DbProviderFactories>
</system.data>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Data.SQLite" publicKeyToken="db937bc2d44ff139" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-65535.65535.65535.65535" newVersion="1.0.80.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

File diff suppressed because it is too large Load Diff