Mercurial > altnet-hispano
view 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 source
using System; using System.Linq; using Agendas.Repositories.Memory; using AltNetHispano.Agendas.Domain; using AltNetHispano.Agendas.Domain.Repositories; using Moq; using NUnit.Framework; namespace AltNetHispano.Agendas.Tests { [TestFixture] public class AgendaTests { [Test] public void Publicar_van() { var publicador = new Mock<IPublicador>(); 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)); } [Test] public void Publicar_cafe() { var publicador = new Mock<IPublicador>(); 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)); } [Test] public void Publicar_van_multiples_publicadores() { var publicador1 = new Mock<IPublicador>(); var publicador2 = new Mock<IPublicador>(); var agenda = new Agenda(new CompositePublicador (new[] { publicador1.Object, publicador2.Object } ), null); var cafe = new Cafe(); agenda.Publicar(cafe); publicador1.Verify(p => p.Publicar(It.IsAny<Evento>()), Times.Exactly(1)); publicador2.Verify(p => p.Publicar(It.IsAny<Evento>()), Times.Exactly(1)); } [Test] public void Publicar_y_recordar_van() { var publicador1 = new Mock<IPublicador>(); var publicador2 = new Mock<IPublicador>(); var recordador1 = new Mock<IRecordador>(); var agenda = new Agenda(new CompositePublicador(new[] { publicador1.Object, publicador2.Object }), recordador1.Object); var van = new Van(); agenda.Publicar(van); agenda.Recordar(van); publicador1.Verify(p => p.Publicar(It.IsAny<Evento>()), Times.Exactly(1)); 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); } } } }