[TestFixture] public class OneToOneTests { private const string DefaultCulture = "en"; #region Setup/Teardown [SetUp] public void SetUp() { _session = _sessionFactory.OpenSession(); _session.EnableFilter("CultureFilter").SetParameter("cultureCode", DefaultCulture).Validate(); } [TearDown] public void TearDown() { _session.Dispose(); _session = null; } [TestFixtureSetUp] public void TestFixtureSetUp() { log4net.Config.XmlConfigurator.Configure(); var dialect = new MsSql2008Dialect(); using ( var sqlConnection = new SqlConnection(ConfigurationManager.ConnectionStrings["Test"].ConnectionString)) { sqlConnection.Open(); var dbMetaData = new DatabaseMetadata(sqlConnection, dialect); var nhConfig = new Configuration().Configure(); nhConfig.ValidateSchema(dialect, dbMetaData); _sessionFactory = nhConfig.BuildSessionFactory(); } } [TestFixtureTearDown] public void TestFixtureTearDown() { _sessionFactory.Dispose(); _sessionFactory = null; } #endregion private ISessionFactory _sessionFactory; private ISession _session; [Test] public void CanQueryWithLinq() { var q = (from p in _session.Query() where p.Name.StartsWith("test ") select p).ToList(); q.Count.Should().BeGreaterThan(0); foreach (var person in q) { Console.WriteLine("id: {0}, name: [{1}]", person.Id, person.Name); person.Employee.CultureCode.Should().Be(DefaultCulture); } } [Test] public void CanReadFiltered() { var person = _session.Get(7); person.Employee.CultureCode.Should().Be(DefaultCulture); } [Test] public void CanReadEmployee() { } [Test] public void CanSavePeople() { using (var tx = _session.BeginTransaction()) { var person = new Person { Name = "test multilang", }; var employee = new Employee { CultureCode=DefaultCulture, Person = person, Role = "Manager1" }; person.Employee = employee; _session.Save(person); _session.Save(employee); employee.Person.Id.Should().Be(person.Id); tx.Rollback(); } } }