view Agendas/trunk/src/Agendas.Tests/Cruds/EventoCrudNhTests.cs @ 120:c3573defd18f

Agregado de Fecha, Usuario y Successful en TrackLog Modificacion de publicador de blog para usar TrackLog Agregado de TrackLog en el test de crud de eventos Fix en publicador de twitter para que no twitee si ya se encuentra en TrackLog pero con Successful en true
author Jorge@Jorge-PC
date Fri, 24 Jun 2011 21:18:21 -0300
parents db4b1e2cae49
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();
		}
	}
}