Mercurial > altnet-hispano
annotate Agendas/trunk/src/Agendas.Tests/PonentesTests.cs @ 109:6bd9be78caa0
Merge
author | Nelo@Kenia.neluz.int |
---|---|
date | Tue, 07 Jun 2011 23:21:07 -0300 |
parents | 80c22175c9b5 |
children | b74734a1a755 |
rev | line source |
---|---|
24 | 1 using System; |
61
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
2 using System.Collections.Generic; |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
3 using System.Linq; |
24 | 4 using AltNetHispano.Agendas.Domain; |
5 using Moq; | |
6 using NUnit.Framework; | |
7 | |
8 namespace AltNetHispano.Agendas.Tests | |
9 { | |
10 [TestFixture] | |
11 public class PonentesTests : TestBase | |
12 { | |
70
c7264bfc4b71
agregado de properties en clase Evento (UrlInvitacion, UrlWiki, NumeroOrden)
jorge.rowies
parents:
61
diff
changeset
|
13 private const string urlInvitacion = "http://groups.google.com/group/altnet-hispano/browse_thread/thread/65d6d26eb381386e"; |
c7264bfc4b71
agregado de properties en clase Evento (UrlInvitacion, UrlWiki, NumeroOrden)
jorge.rowies
parents:
61
diff
changeset
|
14 |
24 | 15 [Test] |
54 | 16 public void Publicar_dos_eventos_con_el_mismo_ponente_no_registrado() |
17 { | |
18 var publicador = new Mock<IPublicador>(); | |
94
db4b1e2cae49
Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents:
87
diff
changeset
|
19 Assert.AreEqual(1, DefaultPersonaRepository.GetAll().Count); |
54 | 20 |
94
db4b1e2cae49
Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents:
87
diff
changeset
|
21 var agenda = new Agenda(publicador.Object, DefaultEventoRepository, DefaultPersonaRepository); |
54 | 22 |
106
80c22175c9b5
agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents:
97
diff
changeset
|
23 agenda.Agendar("Audit (parallel model) con NHibernate 3", "Fabio Maulo", new DateTime(2011, 2, 26), |
80c22175c9b5
agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents:
97
diff
changeset
|
24 urlInvitacion, TipoEvento.Van); |
74
bc46e7426c80
Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents:
70
diff
changeset
|
25 agenda.Agendar("Conform - Parte 2", "Fabio Maulo", new DateTime(2011, 3, 5), |
106
80c22175c9b5
agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents:
97
diff
changeset
|
26 urlInvitacion, TipoEvento.Van); |
54 | 27 |
75 | 28 var eventos = agenda.GetEventosAgendados(); |
61
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
29 Assert.AreEqual(2, eventos.Count); |
54 | 30 |
87
26d0513a8410
A los publicadores les llega la lista de tracks producidos en la acción realizada
nelopauselli
parents:
75
diff
changeset
|
31 publicador.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(2)); |
54 | 32 |
94
db4b1e2cae49
Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents:
87
diff
changeset
|
33 Assert.AreEqual(2, DefaultPersonaRepository.GetAll().Count); |
61
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
34 |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
35 var evento = eventos[0]; |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
36 |
97
2434c2323f3d
En el evento, volvemos a llamar Ponente a la persona que está a cargo de la presentación
Nelo@Kenia.neluz.int
parents:
95
diff
changeset
|
37 Assert.IsNotNull(evento.Ponente); |
54 | 38 } |
39 | |
40 [Test] | |
51
4a63a73e38e4
Cambio de nombres de test intentando describir mejor lo que verifican
nelopauselli
parents:
50
diff
changeset
|
41 public void Publicar_evento_con_ponente_registrado() |
24 | 42 { |
43 var publicador = new Mock<IPublicador>(); | |
44 Evento evento = null; | |
87
26d0513a8410
A los publicadores les llega la lista de tracks producidos en la acción realizada
nelopauselli
parents:
75
diff
changeset
|
45 publicador.Setup(p => p.Publicar(It.IsAny<IEnumerable<Track>>())).Callback<IEnumerable<Track>>( |
26d0513a8410
A los publicadores les llega la lista de tracks producidos en la acción realizada
nelopauselli
parents:
75
diff
changeset
|
46 t => evento = t.First().Evento); |
24 | 47 |
94
db4b1e2cae49
Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents:
87
diff
changeset
|
48 var agenda = new Agenda(publicador.Object, DefaultEventoRepository, DefaultPersonaRepository); |
24 | 49 |
50 agenda.RegistrarPonente("Fabio Maulo", "fabiomaulo@gmail.com", "@fabiomaulo", "http://fabiomaulo.blogspot.com"); | |
51 | |
106
80c22175c9b5
agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents:
97
diff
changeset
|
52 agenda.Agendar("Audit (parallel model) con NHibernate 3", "Fabio Maulo", new DateTime(2011, 2, 26), urlInvitacion, TipoEvento.Van); |
24 | 53 |
75 | 54 Assert.AreEqual(1, agenda.GetEventosAgendados().Count); |
24 | 55 |
87
26d0513a8410
A los publicadores les llega la lista de tracks producidos en la acción realizada
nelopauselli
parents:
75
diff
changeset
|
56 publicador.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(1)); |
24 | 57 |
58 Assert.IsNotNull(evento); | |
97
2434c2323f3d
En el evento, volvemos a llamar Ponente a la persona que está a cargo de la presentación
Nelo@Kenia.neluz.int
parents:
95
diff
changeset
|
59 Assert.AreEqual("Fabio Maulo", evento.Ponente.Nombre); |
2434c2323f3d
En el evento, volvemos a llamar Ponente a la persona que está a cargo de la presentación
Nelo@Kenia.neluz.int
parents:
95
diff
changeset
|
60 Assert.AreEqual("fabiomaulo@gmail.com", evento.Ponente.Mail); |
2434c2323f3d
En el evento, volvemos a llamar Ponente a la persona que está a cargo de la presentación
Nelo@Kenia.neluz.int
parents:
95
diff
changeset
|
61 Assert.AreEqual("@fabiomaulo", evento.Ponente.Twitter); |
2434c2323f3d
En el evento, volvemos a llamar Ponente a la persona que está a cargo de la presentación
Nelo@Kenia.neluz.int
parents:
95
diff
changeset
|
62 Assert.AreEqual("http://fabiomaulo.blogspot.com", evento.Ponente.Blog); |
24 | 63 } |
64 | |
65 [Test] | |
51
4a63a73e38e4
Cambio de nombres de test intentando describir mejor lo que verifican
nelopauselli
parents:
50
diff
changeset
|
66 public void Publicar_evento_sin_ponente_registrado() |
24 | 67 { |
68 var publicador = new Mock<IPublicador>(); | |
69 Evento evento = null; | |
87
26d0513a8410
A los publicadores les llega la lista de tracks producidos en la acción realizada
nelopauselli
parents:
75
diff
changeset
|
70 publicador.Setup(p => p.Publicar(It.IsAny<IEnumerable<Track>>())).Callback<IEnumerable<Track>>( |
26d0513a8410
A los publicadores les llega la lista de tracks producidos en la acción realizada
nelopauselli
parents:
75
diff
changeset
|
71 t => evento = t.First().Evento); |
24 | 72 |
94
db4b1e2cae49
Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents:
87
diff
changeset
|
73 var agenda = new Agenda(publicador.Object, DefaultEventoRepository, DefaultPersonaRepository); |
24 | 74 |
74
bc46e7426c80
Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents:
70
diff
changeset
|
75 agenda.Agendar("Audit (parallel model) con NHibernate 3", "Fabio Maulo", new DateTime(2011, 2, 26), |
106
80c22175c9b5
agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents:
97
diff
changeset
|
76 urlInvitacion, TipoEvento.Van); |
24 | 77 |
75 | 78 Assert.AreEqual(1, agenda.GetEventosAgendados().Count); |
24 | 79 |
87
26d0513a8410
A los publicadores les llega la lista de tracks producidos en la acción realizada
nelopauselli
parents:
75
diff
changeset
|
80 publicador.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(1)); |
24 | 81 |
82 Assert.IsNotNull(evento); | |
97
2434c2323f3d
En el evento, volvemos a llamar Ponente a la persona que está a cargo de la presentación
Nelo@Kenia.neluz.int
parents:
95
diff
changeset
|
83 Assert.AreEqual("Fabio Maulo", evento.Ponente.Nombre); |
2434c2323f3d
En el evento, volvemos a llamar Ponente a la persona que está a cargo de la presentación
Nelo@Kenia.neluz.int
parents:
95
diff
changeset
|
84 Assert.IsNullOrEmpty(evento.Ponente.Twitter); |
24 | 85 } |
59 | 86 |
87 [Test] | |
88 public void Quitar_ponente_de_un_evento() | |
89 { | |
94
db4b1e2cae49
Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents:
87
diff
changeset
|
90 var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository); |
59 | 91 |
92 const string titulo = "Audit (parallel model) con NHibernate 3"; | |
93 Guid eventoId; | |
94 | |
106
80c22175c9b5
agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents:
97
diff
changeset
|
95 agenda.Proponer(titulo, "Fabio", urlInvitacion, TipoEvento.Van); |
94
db4b1e2cae49
Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents:
87
diff
changeset
|
96 Persona persona; |
59 | 97 { |
98 var eventos = agenda.GetEventosPropuestos(); | |
99 Assert.AreEqual(1, eventos.Count); | |
100 | |
101 Evento evento = eventos[0]; | |
97
2434c2323f3d
En el evento, volvemos a llamar Ponente a la persona que está a cargo de la presentación
Nelo@Kenia.neluz.int
parents:
95
diff
changeset
|
102 Assert.AreEqual("Fabio", evento.Ponente.Nombre); |
59 | 103 |
104 eventoId = evento.Id; | |
97
2434c2323f3d
En el evento, volvemos a llamar Ponente a la persona que está a cargo de la presentación
Nelo@Kenia.neluz.int
parents:
95
diff
changeset
|
105 persona = evento.Ponente; |
59 | 106 } |
107 | |
75 | 108 agenda.ModificarPropuesta(eventoId, titulo, null, urlInvitacion); |
59 | 109 { |
110 var eventos = agenda.GetEventosPropuestos(); | |
111 Assert.AreEqual(1, eventos.Count); | |
112 | |
113 Evento evento = eventos[0]; | |
97
2434c2323f3d
En el evento, volvemos a llamar Ponente a la persona que está a cargo de la presentación
Nelo@Kenia.neluz.int
parents:
95
diff
changeset
|
114 Assert.IsNull(evento.Ponente); |
59 | 115 } |
61
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
116 } |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
117 |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
118 [Test] |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
119 public void Cambiar_ponente_de_un_evento() |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
120 { |
94
db4b1e2cae49
Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents:
87
diff
changeset
|
121 var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository); |
61
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
122 |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
123 const string titulo = "Audit (parallel model) con NHibernate 3"; |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
124 Guid eventoId; |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
125 |
106
80c22175c9b5
agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents:
97
diff
changeset
|
126 agenda.Proponer(titulo, "Fabio", urlInvitacion, TipoEvento.Van); |
61
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
127 { |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
128 var eventos = agenda.GetEventosPropuestos(); |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
129 Assert.AreEqual(1, eventos.Count); |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
130 |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
131 Evento evento = eventos[0]; |
97
2434c2323f3d
En el evento, volvemos a llamar Ponente a la persona que está a cargo de la presentación
Nelo@Kenia.neluz.int
parents:
95
diff
changeset
|
132 Assert.AreEqual("Fabio", evento.Ponente.Nombre); |
61
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
133 |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
134 eventoId = evento.Id; |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
135 } |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
136 |
75 | 137 agenda.ModificarPropuesta(eventoId, titulo, "José", urlInvitacion); |
61
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
138 { |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
139 var eventos = agenda.GetEventosPropuestos(); |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
140 Assert.AreEqual(1, eventos.Count); |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
141 |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
142 Evento evento = eventos[0]; |
97
2434c2323f3d
En el evento, volvemos a llamar Ponente a la persona que está a cargo de la presentación
Nelo@Kenia.neluz.int
parents:
95
diff
changeset
|
143 Assert.IsNotNull(evento.Ponente); |
61
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
144 } |
59 | 145 } |
24 | 146 } |
147 } |