Mercurial > altnet-hispano
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