comparison Agendas/trunk/src/Agendas.Tests/PonentesTests.cs @ 145:e6e6bfb1da9e

En la edición de un evento (nuevo, propuesta, modificación), el ponente se selecciona desde un combo.
author Nelo@Guinea.neluz.int
date Mon, 01 Aug 2011 11:42:24 -0300
parents 62791999ad01
children 2d02adb79322
comparison
equal deleted inserted replaced
144:a2b14da4902f 145:e6e6bfb1da9e
5 using Moq; 5 using Moq;
6 using NUnit.Framework; 6 using NUnit.Framework;
7 7
8 namespace AltNetHispano.Agendas.Tests 8 namespace AltNetHispano.Agendas.Tests
9 { 9 {
10 [TestFixture] 10 [TestFixture]
11 public class PonentesTests : TestBase 11 public class PonentesTests : TestBase
12 { 12 {
13 private const string urlInvitacion = "http://groups.google.com/group/altnet-hispano/browse_thread/thread/65d6d26eb381386e"; 13 private const string urlInvitacion = "http://groups.google.com/group/altnet-hispano/browse_thread/thread/65d6d26eb381386e";
14 14
15 [Test] 15 [Test]
16 public void Publicar_dos_eventos_con_el_mismo_ponente_no_registrado() 16 public void Publicar_dos_eventos_con_el_mismo_ponente_no_registrado()
17 { 17 {
18 var publicador = new Mock<IPublicador>(); 18 var publicador = new Mock<IPublicador>();
19 Assert.AreEqual(1, DefaultPersonaRepository.GetAll().Count); 19 Assert.AreEqual(1, DefaultPersonaRepository.GetAll().Count);
20 20
21 var agenda = new Agenda(publicador.Object, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository); 21 var agenda = new Agenda(publicador.Object, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
22 22
23 agenda.Agendar("Audit (parallel model) con NHibernate 3", "Fabio Maulo", new DateTime(2011, 2, 26), 23 agenda.Agendar("Audit (parallel model) con NHibernate 3", TestsHelper.GetOrCreatePonente("Fabio Maulo"), new DateTime(2011, 2, 26),
24 urlInvitacion, TipoEvento.Van); 24 urlInvitacion, TipoEvento.Van);
25 agenda.Agendar("Conform - Parte 2", "Fabio Maulo", new DateTime(2011, 3, 5), 25 agenda.Agendar("Conform - Parte 2", TestsHelper.GetOrCreatePonente("Fabio Maulo"), new DateTime(2011, 3, 5),
26 urlInvitacion, TipoEvento.Van); 26 urlInvitacion, TipoEvento.Van);
27 27
28 var eventos = agenda.GetEventosActivos(); 28 var eventos = agenda.GetEventosActivos();
29 Assert.AreEqual(2, eventos.Count); 29 Assert.AreEqual(2, eventos.Count);
30 30
31 publicador.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(2)); 31 publicador.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(2));
32 32
33 Assert.AreEqual(2, DefaultPersonaRepository.GetAll().Count); 33 Assert.AreEqual(2, DefaultPersonaRepository.GetAll().Count);
34 34
35 var evento = eventos[0]; 35 var evento = eventos[0];
36 36
37 Assert.IsNotNull(evento.Ponente); 37 Assert.IsNotNull(evento.Ponente);
38 } 38 }
39 39
40 [Test] 40 [Test]
41 public void Publicar_evento_con_ponente_registrado() 41 public void Publicar_evento_con_ponente_registrado()
42 { 42 {
43 var publicador = new Mock<IPublicador>(); 43 var publicador = new Mock<IPublicador>();
44 Evento evento = null; 44 Evento evento = null;
45 publicador.Setup(p => p.Publicar(It.IsAny<IEnumerable<Track>>())).Callback<IEnumerable<Track>>( 45 publicador.Setup(p => p.Publicar(It.IsAny<IEnumerable<Track>>())).Callback<IEnumerable<Track>>(
46 t => evento = t.First().Evento); 46 t => evento = t.First().Evento);
47 47
48 var agenda = new Agenda(publicador.Object, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository); 48 var agenda = new Agenda(publicador.Object, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
49 49
50 agenda.RegistrarPonente("Fabio Maulo", "fabiomaulo@gmail.com", "@fabiomaulo", "http://fabiomaulo.blogspot.com"); 50 agenda.RegistrarPonente("Fabio Maulo", "fabiomaulo@gmail.com", "@fabiomaulo", "http://fabiomaulo.blogspot.com");
51 51
52 agenda.Agendar("Audit (parallel model) con NHibernate 3", "Fabio Maulo", new DateTime(2011, 2, 26), urlInvitacion, TipoEvento.Van); 52 agenda.Agendar("Audit (parallel model) con NHibernate 3", TestsHelper.GetOrCreatePonente("Fabio Maulo"), new DateTime(2011, 2, 26), urlInvitacion, TipoEvento.Van);
53 53
54 Assert.AreEqual(1, agenda.GetEventosActivos().Count); 54 Assert.AreEqual(1, agenda.GetEventosActivos().Count);
55 55
56 publicador.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(1)); 56 publicador.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(1));
57 57
58 Assert.IsNotNull(evento); 58 Assert.IsNotNull(evento);
59 Assert.AreEqual("Fabio Maulo", evento.Ponente.Nombre); 59 Assert.AreEqual("Fabio Maulo", evento.Ponente.Nombre);
60 Assert.AreEqual("fabiomaulo@gmail.com", evento.Ponente.Mail); 60 Assert.AreEqual("fabiomaulo@gmail.com", evento.Ponente.Mail);
61 Assert.AreEqual("@fabiomaulo", evento.Ponente.Twitter); 61 Assert.AreEqual("@fabiomaulo", evento.Ponente.Twitter);
62 Assert.AreEqual("http://fabiomaulo.blogspot.com", evento.Ponente.Blog); 62 Assert.AreEqual("http://fabiomaulo.blogspot.com", evento.Ponente.Blog);
63 } 63 }
64 64
65 [Test] 65 [Test]
66 public void Publicar_evento_sin_ponente_registrado() 66 public void Publicar_evento_sin_ponente_registrado()
67 { 67 {
68 var publicador = new Mock<IPublicador>(); 68 var publicador = new Mock<IPublicador>();
69 Evento evento = null; 69 Evento evento = null;
70 publicador.Setup(p => p.Publicar(It.IsAny<IEnumerable<Track>>())).Callback<IEnumerable<Track>>( 70 publicador.Setup(p => p.Publicar(It.IsAny<IEnumerable<Track>>())).Callback<IEnumerable<Track>>(
71 t => evento = t.First().Evento); 71 t => evento = t.First().Evento);
72 72
73 var agenda = new Agenda(publicador.Object, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository); 73 var agenda = new Agenda(publicador.Object, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
74 74
75 agenda.Agendar("Audit (parallel model) con NHibernate 3", "Fabio Maulo", new DateTime(2011, 2, 26), 75 agenda.Agendar("Audit (parallel model) con NHibernate 3", TestsHelper.GetOrCreatePonente("Fabio Maulo"), new DateTime(2011, 2, 26),
76 urlInvitacion, TipoEvento.Van); 76 urlInvitacion, TipoEvento.Van);
77 77
78 Assert.AreEqual(1, agenda.GetEventosActivos().Count); 78 Assert.AreEqual(1, agenda.GetEventosActivos().Count);
79 79
80 publicador.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(1)); 80 publicador.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(1));
81 81
82 Assert.IsNotNull(evento); 82 Assert.IsNotNull(evento);
83 Assert.AreEqual("Fabio Maulo", evento.Ponente.Nombre); 83 Assert.AreEqual("Fabio Maulo", evento.Ponente.Nombre);
84 Assert.IsNullOrEmpty(evento.Ponente.Twitter); 84 Assert.AreEqual("fabiomaulo", evento.Ponente.Twitter);
85 } 85 }
86 86
87 [Test] 87 [Test]
88 public void Quitar_ponente_de_un_evento() 88 public void Quitar_ponente_de_un_evento()
89 { 89 {
90 var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository); 90 var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
91 91
92 const string titulo = "Audit (parallel model) con NHibernate 3"; 92 const string titulo = "Audit (parallel model) con NHibernate 3";
93 Guid eventoId; 93 Guid eventoId;
94 94
95 agenda.Proponer(titulo, "Fabio", urlInvitacion, TipoEvento.Van); 95 agenda.Proponer(titulo, TestsHelper.GetOrCreatePonente("Fabio"), urlInvitacion, TipoEvento.Van);
96 Persona persona; 96 Persona persona;
97 { 97 {
98 var eventos = agenda.GetEventosActivos(EventoPropuestoState.GetInstance()); 98 var eventos = agenda.GetEventosActivos(EventoPropuestoState.GetInstance());
99 Assert.AreEqual(1, eventos.Count); 99 Assert.AreEqual(1, eventos.Count);
100 100
101 Evento evento = eventos[0]; 101 Evento evento = eventos[0];
102 Assert.AreEqual("Fabio", evento.Ponente.Nombre); 102 Assert.AreEqual("Fabio", evento.Ponente.Nombre);
103 103
104 eventoId = evento.Id; 104 eventoId = evento.Id;
105 persona = evento.Ponente; 105 persona = evento.Ponente;
106 } 106 }
107 107
108 agenda.ModificarPropuesta(eventoId, titulo, null, urlInvitacion); 108 agenda.ModificarPropuesta(eventoId, titulo, Guid.Empty, urlInvitacion);
109 { 109 {
110 var eventos = agenda.GetEventosActivos(EventoPropuestoState.GetInstance()); 110 var eventos = agenda.GetEventosActivos(EventoPropuestoState.GetInstance());
111 Assert.AreEqual(1, eventos.Count); 111 Assert.AreEqual(1, eventos.Count);
112 112
113 Evento evento = eventos[0]; 113 Evento evento = eventos[0];
114 Assert.IsNull(evento.Ponente); 114 Assert.IsNull(evento.Ponente);
115 } 115 }
116 } 116 }
117 117
118 [Test] 118 [Test]
119 public void Cambiar_ponente_de_un_evento() 119 public void Cambiar_ponente_de_un_evento()
120 { 120 {
121 var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository); 121 var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
122 122
123 const string titulo = "Audit (parallel model) con NHibernate 3"; 123 const string titulo = "Audit (parallel model) con NHibernate 3";
124 Guid eventoId; 124 Guid eventoId;
125 125
126 agenda.Proponer(titulo, "Fabio", urlInvitacion, TipoEvento.Van); 126 agenda.Proponer(titulo, TestsHelper.GetOrCreatePonente("Fabio"), urlInvitacion, TipoEvento.Van);
127 { 127 {
128 var eventos = agenda.GetEventosActivos(EventoPropuestoState.GetInstance()); 128 var eventos = agenda.GetEventosActivos(EventoPropuestoState.GetInstance());
129 Assert.AreEqual(1, eventos.Count); 129 Assert.AreEqual(1, eventos.Count);
130 130
131 Evento evento = eventos[0]; 131 Evento evento = eventos[0];
132 Assert.AreEqual("Fabio", evento.Ponente.Nombre); 132 Assert.AreEqual("Fabio", evento.Ponente.Nombre);
133 133
134 eventoId = evento.Id; 134 eventoId = evento.Id;
135 } 135 }
136 136
137 agenda.ModificarPropuesta(eventoId, titulo, "José", urlInvitacion); 137 agenda.ModificarPropuesta(eventoId, titulo, TestsHelper.GetOrCreatePonente("José"), urlInvitacion);
138 { 138 {
139 var eventos = agenda.GetEventosActivos(EventoPropuestoState.GetInstance()); 139 var eventos = agenda.GetEventosActivos(EventoPropuestoState.GetInstance());
140 Assert.AreEqual(1, eventos.Count); 140 Assert.AreEqual(1, eventos.Count);
141 141
142 Evento evento = eventos[0]; 142 Evento evento = eventos[0];
143 Assert.IsNotNull(evento.Ponente); 143 Assert.IsNotNull(evento.Ponente);
144 } 144 }
145 } 145 }
146 } 146 }
147 } 147 }