Mercurial > altnet-hispano
annotate Agendas/trunk/src/Agendas.Tests/PonentesTests.cs @ 74:bc46e7426c80
Refactoring de acciones según la definición del diagrama de estados en assembla
(https://www.assembla.com/spaces/altnet-hispano/wiki/Estados_de_un_evento)
author | nelopauselli |
---|---|
date | Mon, 23 May 2011 20:13:37 -0300 |
parents | c7264bfc4b71 |
children | 96d7609f2e08 |
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>(); | |
19 | |
20 var agenda = new Agenda(publicador.Object, null, DefaultEventoRepository, DefaultPonenteRepository); | |
21 | |
74
bc46e7426c80
Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents:
70
diff
changeset
|
22 agenda.Agendar("Audit (parallel model) con NHibernate 3", "Fabio Maulo", new DateTime(2011, 2, 26), |
70
c7264bfc4b71
agregado de properties en clase Evento (UrlInvitacion, UrlWiki, NumeroOrden)
jorge.rowies
parents:
61
diff
changeset
|
23 urlInvitacion); |
74
bc46e7426c80
Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents:
70
diff
changeset
|
24 agenda.Agendar("Conform - Parte 2", "Fabio Maulo", new DateTime(2011, 3, 5), |
70
c7264bfc4b71
agregado de properties en clase Evento (UrlInvitacion, UrlWiki, NumeroOrden)
jorge.rowies
parents:
61
diff
changeset
|
25 urlInvitacion); |
54 | 26 |
61
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
27 var eventos = agenda.GetEventosPublicados(); |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
28 Assert.AreEqual(2, eventos.Count); |
54 | 29 |
30 publicador.Verify(p => p.Publicar(It.IsAny<Evento>()), Times.Exactly(2)); | |
31 | |
32 Assert.AreEqual(1, DefaultPonenteRepository.GetAll().Count); | |
61
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
33 |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
34 var evento = eventos[0]; |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
35 |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
36 Assert.IsNotNull(evento.Ponente); |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
37 var ponente = evento.Ponente; |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
38 Assert.IsNotNull(evento.Ponente.Eventos); |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
39 Assert.Contains(eventos[0], new List<Evento>(ponente.Eventos)); |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
40 Assert.Contains(eventos[1], new List<Evento>(ponente.Eventos)); |
54 | 41 } |
42 | |
43 [Test] | |
51
4a63a73e38e4
Cambio de nombres de test intentando describir mejor lo que verifican
nelopauselli
parents:
50
diff
changeset
|
44 public void Publicar_evento_con_ponente_registrado() |
24 | 45 { |
46 var publicador = new Mock<IPublicador>(); | |
47 Evento evento = null; | |
48 publicador.Setup(p => p.Publicar(It.IsAny<Evento>())).Callback<Evento>(e => evento = e); | |
49 | |
50
3ebe89c88caa
Agregando propiedad al Evento sobre el Usuario que lo crea o que realizó la
nelopauselli
parents:
24
diff
changeset
|
50 var agenda = new Agenda(publicador.Object, null, DefaultEventoRepository, DefaultPonenteRepository); |
24 | 51 |
52 agenda.RegistrarPonente("Fabio Maulo", "fabiomaulo@gmail.com", "@fabiomaulo", "http://fabiomaulo.blogspot.com"); | |
53 | |
74
bc46e7426c80
Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents:
70
diff
changeset
|
54 agenda.Agendar("Audit (parallel model) con NHibernate 3", "Fabio Maulo", new DateTime(2011, 2, 26), urlInvitacion); |
24 | 55 |
56 Assert.AreEqual(1, agenda.GetEventosPublicados().Count); | |
57 | |
58 publicador.Verify(p => p.Publicar(It.IsAny<Evento>()), Times.Exactly(1)); | |
59 | |
60 Assert.IsNotNull(evento); | |
61 Assert.AreEqual("Fabio Maulo", evento.Ponente.Nombre); | |
62 Assert.AreEqual("fabiomaulo@gmail.com", evento.Ponente.Mail); | |
63 Assert.AreEqual("@fabiomaulo", evento.Ponente.Twitter); | |
64 Assert.AreEqual("http://fabiomaulo.blogspot.com", evento.Ponente.Blog); | |
65 } | |
66 | |
67 [Test] | |
51
4a63a73e38e4
Cambio de nombres de test intentando describir mejor lo que verifican
nelopauselli
parents:
50
diff
changeset
|
68 public void Publicar_evento_sin_ponente_registrado() |
24 | 69 { |
70 var publicador = new Mock<IPublicador>(); | |
71 Evento evento = null; | |
72 publicador.Setup(p => p.Publicar(It.IsAny<Evento>())).Callback<Evento>(e => evento = e); | |
73 | |
50
3ebe89c88caa
Agregando propiedad al Evento sobre el Usuario que lo crea o que realizó la
nelopauselli
parents:
24
diff
changeset
|
74 var agenda = new Agenda(publicador.Object, null, DefaultEventoRepository, DefaultPonenteRepository); |
24 | 75 |
74
bc46e7426c80
Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents:
70
diff
changeset
|
76 agenda.Agendar("Audit (parallel model) con NHibernate 3", "Fabio Maulo", new DateTime(2011, 2, 26), |
70
c7264bfc4b71
agregado de properties en clase Evento (UrlInvitacion, UrlWiki, NumeroOrden)
jorge.rowies
parents:
61
diff
changeset
|
77 urlInvitacion); |
24 | 78 |
79 Assert.AreEqual(1, agenda.GetEventosPublicados().Count); | |
80 | |
81 publicador.Verify(p => p.Publicar(It.IsAny<Evento>()), Times.Exactly(1)); | |
82 | |
83 Assert.IsNotNull(evento); | |
84 Assert.AreEqual("Fabio Maulo", evento.Ponente.Nombre); | |
85 Assert.IsNullOrEmpty(evento.Ponente.Twitter); | |
86 } | |
59 | 87 |
88 [Test] | |
89 public void Quitar_ponente_de_un_evento() | |
90 { | |
91 var agenda = new Agenda(null, null, DefaultEventoRepository, DefaultPonenteRepository); | |
92 | |
93 const string titulo = "Audit (parallel model) con NHibernate 3"; | |
94 Guid eventoId; | |
95 | |
96 agenda.Proponer(titulo, "Fabio"); | |
61
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
97 Ponente ponente; |
59 | 98 { |
99 var eventos = agenda.GetEventosPropuestos(); | |
100 Assert.AreEqual(1, eventos.Count); | |
101 | |
102 Evento evento = eventos[0]; | |
103 Assert.AreEqual("Fabio", evento.Ponente.Nombre); | |
104 | |
105 eventoId = evento.Id; | |
61
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
106 ponente = evento.Ponente; |
59 | 107 } |
108 | |
109 agenda.ModificarPropuesta(eventoId, titulo, null); | |
110 { | |
111 var eventos = agenda.GetEventosPropuestos(); | |
112 Assert.AreEqual(1, eventos.Count); | |
113 | |
114 Evento evento = eventos[0]; | |
115 Assert.IsNull(evento.Ponente); | |
116 } | |
61
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 Assert.AreEqual(0, ponente.Eventos.Count()); |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
119 } |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
120 |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
121 [Test] |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
122 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
|
123 { |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
124 var agenda = new Agenda(null, null, DefaultEventoRepository, DefaultPonenteRepository); |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
125 |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
126 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
|
127 Guid eventoId; |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
128 |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
129 agenda.Proponer(titulo, "Fabio"); |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
130 Ponente ponente1; |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
131 { |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
132 var eventos = agenda.GetEventosPropuestos(); |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
133 Assert.AreEqual(1, eventos.Count); |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
134 |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
135 Evento evento = eventos[0]; |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
136 Assert.AreEqual("Fabio", evento.Ponente.Nombre); |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
137 |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
138 eventoId = evento.Id; |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
139 ponente1 = evento.Ponente; |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
140 } |
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 agenda.ModificarPropuesta(eventoId, titulo, "José"); |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
143 Ponente ponente2; |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
144 { |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
145 var eventos = agenda.GetEventosPropuestos(); |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
146 Assert.AreEqual(1, eventos.Count); |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
147 |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
148 Evento evento = eventos[0]; |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
149 Assert.IsNotNull(evento.Ponente); |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
150 ponente2 = evento.Ponente; |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
151 } |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
152 |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
153 Assert.AreEqual(0, ponente1.Eventos.Count()); |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
59
diff
changeset
|
154 Assert.AreEqual(1, ponente2.Eventos.Count()); |
59 | 155 } |
24 | 156 } |
157 } |