changeset 60:02e163f2ca38

Refactoring de test de crud del evento
author nelopauselli
date Mon, 16 May 2011 21:40:40 -0300
parents 4a4e12e32256
children cb3f7b47c1f0
files Agendas/trunk/src/Agendas.Tests/Agendas.Tests.csproj Agendas/trunk/src/Agendas.Tests/Cruds/EventoCrud.cs Agendas/trunk/src/Agendas.Tests/Cruds/EventoTests.cs Agendas/trunk/src/Agendas.Tests/EventoTests.cs
diffstat 4 files changed, 152 insertions(+), 73 deletions(-) [+]
line wrap: on
line diff
--- a/Agendas/trunk/src/Agendas.Tests/Agendas.Tests.csproj	Mon May 16 20:32:37 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Tests/Agendas.Tests.csproj	Mon May 16 21:40:40 2011 -0300
@@ -52,9 +52,10 @@
     <Reference Include="System.Xml" />
   </ItemGroup>
   <ItemGroup>
+    <Compile Include="Cruds\EventoCrud.cs" />
     <Compile Include="PonentesTests.cs" />
     <Compile Include="PropuestasTests.cs" />
-    <Compile Include="EventoTests.cs" />
+    <Compile Include="Cruds\EventoTests.cs" />
     <Compile Include="Properties\AssemblyInfo.cs" />
     <Compile Include="PulicarTests.cs" />
     <Compile Include="TestBase.cs" />
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Agendas/trunk/src/Agendas.Tests/Cruds/EventoCrud.cs	Mon May 16 21:40:40 2011 -0300
@@ -0,0 +1,105 @@
+using System;
+using AltNetHispano.Agendas.Domain;
+using AltNetHispano.Agendas.Domain.Repositories;
+using NUnit.Framework;
+
+namespace AltNetHispano.Agendas.Tests.Cruds
+{
+	public class EventoCrud
+	{
+		private readonly Func<IEventoRepository> _createRepository;
+		private readonly Func<IDisposable> _requestEmulator;
+
+		public EventoCrud(Func<IEventoRepository> createRepository, Func<IDisposable> requestEmulator)
+		{
+			_createRepository = createRepository;
+			_requestEmulator = requestEmulator;
+		}
+
+		public Guid Create()
+		{
+			using (_requestEmulator.Invoke())
+			{
+				var van = Evento.Proponer("TDD - Diseño Basado en Ejemplos", new Ponente("Carlos Blé"));
+
+				IEventoRepository eventoRepository = _createRepository.Invoke();
+
+				eventoRepository.Save(van);
+
+				return van.Id;
+			}
+		}
+
+		public void Read()
+		{
+			Guid eventoId = Create();
+
+			using (_requestEmulator.Invoke())
+			{
+				IEventoRepository eventoRepository = _createRepository.Invoke();
+
+				Evento van = eventoRepository.Get(eventoId);
+
+				Assert.IsNotNull(van);
+				Assert.IsNotNull(van.Ponente);
+				Assert.AreEqual("Carlos Blé", van.Ponente.Nombre);
+				Assert.AreEqual("TDD - Diseño Basado en Ejemplos", van.Titulo);
+			}
+		}
+
+		public void Update()
+		{
+			Guid eventoId = Create();
+
+			using (_requestEmulator.Invoke())
+			{
+				IEventoRepository eventoRepository = _createRepository.Invoke();
+
+				Evento van = eventoRepository.Get(eventoId);
+
+				Assert.IsNotNull(van);
+
+				van.CambiarTitulo("TDD & Ejemplos");
+				van.Actualizar(van.Ponente, new DateTime(2010, 04, 17));
+
+				eventoRepository.Update(van);
+			}
+
+			using (_requestEmulator.Invoke())
+			{
+				IEventoRepository eventoRepository = _createRepository.Invoke();
+
+				Evento van = eventoRepository.Get(eventoId);
+
+				Assert.IsNotNull(van);
+				Assert.IsNotNull(van.Ponente);
+				Assert.AreEqual("Carlos Blé", van.Ponente.Nombre);
+				Assert.AreEqual("TDD & Ejemplos", van.Titulo);
+				Assert.AreEqual(new DateTime(2010, 04, 17), van.Fecha);
+			}
+		}
+
+		public void Delete()
+		{
+			Guid eventoId = Create();
+
+			using (_requestEmulator.Invoke())
+			{
+				IEventoRepository eventoRepository = _createRepository.Invoke();
+
+				Evento van = eventoRepository.Get(eventoId);
+				Assert.IsNotNull(van);
+				eventoRepository.Delete(van);
+			}
+
+			using (_requestEmulator.Invoke())
+			{
+				IEventoRepository eventoRepository = _createRepository.Invoke();
+
+				Evento van = eventoRepository.Get(eventoId);
+
+				Assert.IsNull(van);
+			}
+		}
+	}
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Agendas/trunk/src/Agendas.Tests/Cruds/EventoTests.cs	Mon May 16 21:40:40 2011 -0300
@@ -0,0 +1,45 @@
+using System;
+using AltNetHispano.Agendas.Repositories.Memory;
+using Moq;
+using NUnit.Framework;
+
+namespace AltNetHispano.Agendas.Tests.Cruds
+{
+	[TestFixture]
+	public class EventoCrudTests : TestBase
+	{
+		private EventoCrud _eventoCrud;
+
+		[SetUp]
+		public void CreateCrud()
+		{
+			_eventoCrud = new EventoCrud(() => new EventoRepository(), () => new Mock<IDisposable>().Object);
+
+		}
+
+		[Test]
+		public void Create()
+		{
+			_eventoCrud.Create();
+		}
+
+		[Test]
+		public void Read()
+		{
+			_eventoCrud.Read();
+		}
+
+		[Test]
+		public void Update()
+		{
+			_eventoCrud.Update();
+		}
+
+		[Test]
+		public void Delete()
+		{
+			_eventoCrud.Delete();
+		}
+
+	}
+}
\ No newline at end of file
--- a/Agendas/trunk/src/Agendas.Tests/EventoTests.cs	Mon May 16 20:32:37 2011 -0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,72 +0,0 @@
-using System;
-using System.Linq;
-using AltNetHispano.Agendas.Domain;
-using AltNetHispano.Agendas.Domain.Repositories;
-using AltNetHispano.Agendas.Repositories.Memory;
-using NUnit.Framework;
-
-namespace AltNetHispano.Agendas.Tests
-{
-	[TestFixture]
-	public class EventoTests : TestBase
-	{
-		[Test]
-		public void Van_crud()
-		{
-			Guid vanId;
-			{
-				var van = Evento.Proponer("TDD - Diseño Basado en Ejemplos", null);
-				van.Actualizar(new Ponente("Carlos Blé"), new DateTime(2010, 04, 16));
-
-				IEventoRepository eventoRepository = new EventoRepository();
-
-				eventoRepository.Save(van);
-				vanId = van.Id;
-			}
-
-			const string sintesis =
-				"Durante la primera hora se habló de los principios SOLID, de BDD, TDD y ATDD. Discusión entre las diferencias entre TDD y BDD, así como también sobre algunas cuestiones relativas a la nomenclatura.\n Durante la segunda hora se realizó un ejercicio práctico demostrando como se comienza a practicar TDD.\n La última parte de la VAN es la mas interesante respecto a lo que es TDD y como se practica.";
-
-			{
-				IEventoRepository eventoRepository = new EventoRepository();
-
-				Evento van = eventoRepository.Get(vanId);
-
-				Assert.IsNotNull(van);
-				Assert.AreEqual("Carlos Blé", van.Ponente.Nombre);
-				Assert.AreEqual("TDD - Diseño Basado en Ejemplos", van.Titulo);
-				Assert.AreEqual(new DateTime(2010, 04, 16), van.Fecha);
-
-				van.Realizado(new DateTime(2010, 04, 17), sintesis, new[] {"www.carlosble.com", "www.dirigidoPorTests.com"});
-
-				eventoRepository.Update(van);
-			}
-
-			{
-				IEventoRepository eventoRepository = new EventoRepository();
-
-				Evento van = eventoRepository.Get(vanId);
-
-				Assert.IsNotNull(van);
-				Assert.AreEqual("Carlos Blé", van.Ponente.Nombre);
-				Assert.AreEqual("TDD - Diseño Basado en Ejemplos", van.Titulo);
-				Assert.AreEqual(new DateTime(2010, 04, 17), van.Fecha);
-				Assert.AreEqual(sintesis, van.Sintesis);
-				Assert.IsNotNull(van.Enlaces);
-				Assert.AreEqual(2, van.Enlaces.Count());
-				Assert.Contains("www.carlosble.com", van.Enlaces.ToList());
-				Assert.Contains("www.dirigidoPorTests.com", van.Enlaces.ToList());
-
-				eventoRepository.Delete(van);
-			}
-
-			{
-				IEventoRepository eventoRepository = new EventoRepository();
-
-				Evento van = eventoRepository.Get(vanId);
-
-				Assert.IsNull(van);
-			}
-		}
-	}
-}
\ No newline at end of file