view Agendas/trunk/src/Agendas.Tests/Cruds/EventoCrudNhTests.cs @ 68:99a7df8e35bd

Merge
author nelopauselli
date Thu, 19 May 2011 01:29:52 -0300
parents c8099df941bd
children db4b1e2cae49
line wrap: on
line source

using System;
using Agendas.NHibernate;
using AltNetHispano.Agendas.Domain;
using AltNetHispano.Agendas.Repositories.NHibernate;
using Moq;
using NHibernate;
using NHibernate.Cfg;
using NHibernate.Context;
using NHibernate.Tool.hbm2ddl;
using NUnit.Framework;

namespace AltNetHispano.Agendas.Tests.Cruds
{
	[TestFixture]
	public class EventoCrudNhTests
	{
		private EventoCrud _eventoCrud;

		#region SetUp

		[SetUp]
		public void BorrarRepositorios()
		{
			Configuration cfg =NhHelper.GetConfiguration();
			var schemaExport = new SchemaExport(cfg);
			schemaExport.Create(false, true);
		}

		[SetUp]
		public void SetearUsuario()
		{
			var seguridad = new Mock<ISeguridad>();
			seguridad.Setup(s => s.GetUserName()).Returns("neluz");
			IdentityContext.Current = seguridad.Object;
		}

		[SetUp]
		public void CreateCrud()
		{
			ISessionFactory sessionFactory=NhHelper.GetSessionFactory();
			_eventoCrud = new EventoCrud(() => new EventoRepository(sessionFactory), () => new PonenteRepository(sessionFactory),
			                             () => new RequestEmulator(sessionFactory));
		}

		#endregion

		[Test]
		public void Create()
		{
			_eventoCrud.Create();
		}

		[Test]
		public void Read()
		{
			_eventoCrud.Read();
		}

		[Test]
		public void Update()
		{
			_eventoCrud.Update();
		}

		[Test]
		public void Delete()
		{
			_eventoCrud.Delete();
		}

	}

	public class RequestEmulator : IDisposable
	{
		private readonly ISession _session;

		public RequestEmulator(ISessionFactory sessionFactory)
		{
			_session = sessionFactory.OpenSession();
			CurrentSessionContext.Bind(_session);
		}

		public void Dispose()
		{
			_session.Flush();
			_session.Close();
		}
	}
}