diff Agendas/trunk/src/Agendas.Tests/AgendaTests.cs @ 2:c03560ae4762

Test de Crud para la agenda
author nelopauselli
date Sat, 22 Jan 2011 20:21:31 -0300
parents 6bb4ab4c0611
children 5f007e266509
line wrap: on
line diff
--- a/Agendas/trunk/src/Agendas.Tests/AgendaTests.cs	Sat Jan 22 19:50:32 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Tests/AgendaTests.cs	Sat Jan 22 20:21:31 2011 -0300
@@ -1,4 +1,7 @@
-using AltNetHispano.Agendas.Domain;
+using System;
+using System.Linq;
+using Agendas.Repositories.Memory;
+using AltNetHispano.Agendas.Domain;
 using AltNetHispano.Agendas.Domain.Repositories;
 using Moq;
 using NUnit.Framework;
@@ -12,30 +15,26 @@
 		public void Publicar_van()
 		{
 			var publicador = new Mock<IPublicador>();
-			var eventoRepository = new Mock<IEventoRepository>();
 
-			var agenda = new Agenda(publicador.Object, null, eventoRepository.Object);
+			var agenda = new Agenda(publicador.Object, null);
 
 			var van = new Van();
 			agenda.Publicar(van);
 
 			publicador.Verify(p => p.Publicar(It.IsAny<Evento>()), Times.Exactly(1));
-			eventoRepository.Verify(r => r.Save(It.IsAny<Evento>()), Times.Exactly(1));
 		}
 
 		[Test]
 		public void Publicar_cafe()
 		{
 			var publicador = new Mock<IPublicador>();
-			var eventoRepository = new Mock<IEventoRepository>();
 
-			var agenda = new Agenda(publicador.Object, null, eventoRepository.Object);
+			var agenda = new Agenda(publicador.Object, null);
 
 			var cafe = new Cafe();
 			agenda.Publicar(cafe);
 
 			publicador.Verify(p => p.Publicar(It.IsAny<Evento>()), Times.Exactly(1));
-			eventoRepository.Verify(r => r.Save(It.IsAny<Evento>()), Times.Exactly(1));
 		}
 
 		[Test]
@@ -44,9 +43,7 @@
 			var publicador1 = new Mock<IPublicador>();
 			var publicador2 = new Mock<IPublicador>();
 
-			var eventoRepository = new Mock<IEventoRepository>();
-
-			var agenda = new Agenda(new CompositePublicador (new[] { publicador1.Object, publicador2.Object } ), null, eventoRepository.Object);
+			var agenda = new Agenda(new CompositePublicador (new[] { publicador1.Object, publicador2.Object } ), null);
 
 			var cafe = new Cafe();
 			agenda.Publicar(cafe);
@@ -62,9 +59,7 @@
 			var publicador2 = new Mock<IPublicador>();
 			var recordador1 = new Mock<IRecordador>();
 
-			var eventoRepository = new Mock<IEventoRepository>();
-
-			var agenda = new Agenda(new CompositePublicador(new[] { publicador1.Object, publicador2.Object }), recordador1.Object, eventoRepository.Object);
+			var agenda = new Agenda(new CompositePublicador(new[] { publicador1.Object, publicador2.Object }), recordador1.Object);
 
 			var van = new Van();
 			agenda.Publicar(van);
@@ -75,6 +70,53 @@
 			publicador2.Verify(p => p.Publicar(It.IsAny<Evento>()), Times.Exactly(1));
 			recordador1.Verify(r => r.Recordar(It.IsAny<Evento>()), Times.Exactly(1));
 
+			Assert.AreEqual(1, agenda.Eventos.Count());
+		}
+
+		[Test]
+		public void Van_crud()
+		{
+			Guid vanId;
+			{
+				var agenda = new Agenda(null, null);
+				agenda.Publicar(new Van());
+
+				IAgendaRepository agendaRepository = new AgendaRepository();
+
+				agendaRepository.Save(agenda);
+				vanId = agenda.Id;
+			}
+
+			{
+				IAgendaRepository agendaRepository = new AgendaRepository();
+
+				var agenda = agendaRepository.Get(vanId);
+
+				Assert.IsNotNull(agenda);
+				Assert.AreEqual(1, agenda.Eventos.Count());
+				agenda.Publicar(new Cafe());
+
+				agendaRepository.Update(agenda);
+			}
+
+			{
+				IAgendaRepository agendaRepository = new AgendaRepository();
+
+				var agenda = agendaRepository.Get(vanId);
+
+				Assert.IsNotNull(agenda);
+				Assert.AreEqual(2, agenda.Eventos.Count());
+
+				agendaRepository.Delete(agenda);
+			}
+
+			{
+				IAgendaRepository agendaRepository = new AgendaRepository();
+
+				var agenda = agendaRepository.Get(vanId);
+
+				Assert.IsNull(agenda);
+			}
 		}
 	}
 }