24
|
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 } |