view Agendas/trunk/src/Agendas.Tests/Cruds/EventoCrudNhTests.cs @ 94:db4b1e2cae49

Cambio del nombre de la clase Ponente a Persona Se agrega la clase Cuenta para identificar cada una de las cuentas con que se puede autenticar una persona Alta Automatica de cuentas de twitter creando la persona
author Nelo@Kenia.neluz.int
date Sat, 04 Jun 2011 12:11:17 -0300
parents c8099df941bd
children 2d1adbaf0373
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.Init(seguridad.Object, new PersonaRepository(NhHelper.GetSessionFactory()));
		}

		[SetUp]
		public void CreateCrud()
		{
			ISessionFactory sessionFactory=NhHelper.GetSessionFactory();
			_eventoCrud = new EventoCrud(() => new EventoRepository(sessionFactory), () => new PersonaRepository(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();
		}
	}
}