comparison Agendas/trunk/src/Agendas.Tests/PonentesTests.cs @ 24:41b283d27e3e

Ponentes como entidad Agenda no es una entidad persistente (por ahora)
author nelo@MTEySS.neluz.int
date Tue, 15 Mar 2011 07:49:53 -0300
parents
children 3ebe89c88caa
comparison
equal deleted inserted replaced
23:a85674a7aa7a 24:41b283d27e3e
1 using System;
2 using AltNetHispano.Agendas.Domain;
3 using Moq;
4 using NUnit.Framework;
5
6 namespace AltNetHispano.Agendas.Tests
7 {
8 [TestFixture]
9 public class PonentesTests : TestBase
10 {
11 [Test]
12 public void Publicar_van_con_ponente_registrado()
13 {
14 var publicador = new Mock<IPublicador>();
15 Evento evento = null;
16 publicador.Setup(p => p.Publicar(It.IsAny<Evento>())).Callback<Evento>(e => evento = e);
17
18 var agenda = new Agenda(publicador.Object, null, SeguridadServiceDefault, DefaultEventoRepository, DefaultPonenteRepository);
19
20 agenda.RegistrarPonente("Fabio Maulo", "fabiomaulo@gmail.com", "@fabiomaulo", "http://fabiomaulo.blogspot.com");
21
22 agenda.Publicar("Audit (parallel model) con NHibernate 3", "Fabio Maulo", new DateTime(2011, 2, 26));
23
24 Assert.AreEqual(1, agenda.GetEventosPublicados().Count);
25
26 publicador.Verify(p => p.Publicar(It.IsAny<Evento>()), Times.Exactly(1));
27
28 Assert.IsNotNull(evento);
29 Assert.AreEqual("Fabio Maulo", evento.Ponente.Nombre);
30 Assert.AreEqual("fabiomaulo@gmail.com", evento.Ponente.Mail);
31 Assert.AreEqual("@fabiomaulo", evento.Ponente.Twitter);
32 Assert.AreEqual("http://fabiomaulo.blogspot.com", evento.Ponente.Blog);
33 }
34
35 [Test]
36 public void Publicar_van_sin_ponente_registrado()
37 {
38 var publicador = new Mock<IPublicador>();
39 Evento evento = null;
40 publicador.Setup(p => p.Publicar(It.IsAny<Evento>())).Callback<Evento>(e => evento = e);
41
42 var agenda = new Agenda(publicador.Object, null, SeguridadServiceDefault, DefaultEventoRepository, DefaultPonenteRepository);
43
44 agenda.Publicar("Audit (parallel model) con NHibernate 3", "Fabio Maulo", new DateTime(2011, 2, 26));
45
46 Assert.AreEqual(1, agenda.GetEventosPublicados().Count);
47
48 publicador.Verify(p => p.Publicar(It.IsAny<Evento>()), Times.Exactly(1));
49
50 Assert.IsNotNull(evento);
51 Assert.AreEqual("Fabio Maulo", evento.Ponente.Nombre);
52 Assert.IsNullOrEmpty(evento.Ponente.Twitter);
53 }
54
55 [Test]
56 public void Publicar_dos_vans_sin_ponente_registrado()
57 {
58 var publicador = new Mock<IPublicador>();
59
60 var agenda = new Agenda(publicador.Object, null, SeguridadServiceDefault, DefaultEventoRepository, DefaultPonenteRepository);
61
62 agenda.Publicar("Audit (parallel model) con NHibernate 3", "Fabio Maulo", new DateTime(2011, 2, 26));
63 agenda.Publicar("Conform - Parte 2", "Fabio Maulo", new DateTime(2011, 3, 5));
64
65 Assert.AreEqual(2, agenda.GetEventosPublicados().Count);
66
67 publicador.Verify(p => p.Publicar(It.IsAny<Evento>()), Times.Exactly(2));
68
69 Assert.AreEqual(1, DefaultPonenteRepository.GetAll().Count);
70 }
71 }
72 }