Mercurial > altnet-hispano
annotate Agendas/trunk/src/Agendas.Tests/PropuestasTests.cs @ 235:c61954d24c8c
Quitando ponente principal y utilizando siempre la lista de ponentes
author | nelopauselli |
---|---|
date | Tue, 04 Oct 2011 20:42:35 -0300 |
parents | 5346c0500594 |
children | 31fb96912d37 |
rev | line source |
---|---|
20 | 1 using System; |
2 using System.Collections.Generic; | |
3 using System.Linq; | |
4 using AltNetHispano.Agendas.Domain; | |
5 using AltNetHispano.Agendas.Domain.Exceptions; | |
6 using AltNetHispano.Agendas.Domain.Repositories; | |
7 using Moq; | |
8 using NUnit.Framework; | |
9 | |
10 namespace AltNetHispano.Agendas.Tests | |
11 { | |
12 [TestFixture] | |
13 public class PropuestasTests : TestBase | |
14 { | |
70
c7264bfc4b71
agregado de properties en clase Evento (UrlInvitacion, UrlWiki, NumeroOrden)
jorge.rowies
parents:
54
diff
changeset
|
15 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:
54
diff
changeset
|
16 |
20 | 17 [Test] |
54 | 18 public void Crear_modificar_y_publicar_evento_propuesto() |
20 | 19 { |
200
5346c0500594
Pasando a estructura de db fija, ya no se crea automáticamente.
nelopauselli
parents:
197
diff
changeset
|
20 var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository); |
54 | 21 |
118 | 22 agenda.Proponer("Van", null, urlInvitacion, TipoEvento.Van); |
54 | 23 { |
118 | 24 IList<Evento> eventosPropuestos = agenda.GetEventosActivos(EventoPropuestoState.GetInstance()); |
25 IList<Evento> eventosAgendados = agenda.GetEventosActivos(EventoAgendadoState.GetInstance()); | |
54 | 26 |
27 Assert.AreEqual(1, eventosPropuestos.Count); | |
118 | 28 Assert.AreEqual(0, eventosAgendados.Count); |
20 | 29 |
54 | 30 var evento = eventosPropuestos.FirstOrDefault(); |
235
c61954d24c8c
Quitando ponente principal y utilizando siempre la lista de ponentes
nelopauselli
parents:
200
diff
changeset
|
31 agenda.ModificarPropuesta(evento.Id, "Van 2", new[]{TestsHelper.GetOrCreatePonente("otro ponente")}, urlInvitacion); |
54 | 32 |
118 | 33 eventosPropuestos = agenda.GetEventosActivos(EventoPropuestoState.GetInstance()); |
54 | 34 Assert.AreEqual(1, eventosPropuestos.Count); |
20 | 35 |
54 | 36 evento = eventosPropuestos.FirstOrDefault(); |
37 Assert.AreEqual("Van 2", evento.Titulo); | |
235
c61954d24c8c
Quitando ponente principal y utilizando siempre la lista de ponentes
nelopauselli
parents:
200
diff
changeset
|
38 |
c61954d24c8c
Quitando ponente principal y utilizando siempre la lista de ponentes
nelopauselli
parents:
200
diff
changeset
|
39 var ponente = evento.Ponentes.First(); |
c61954d24c8c
Quitando ponente principal y utilizando siempre la lista de ponentes
nelopauselli
parents:
200
diff
changeset
|
40 Assert.AreEqual("otro ponente", ponente.Nombre); |
54 | 41 } |
20 | 42 |
185
2d02adb79322
Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents:
145
diff
changeset
|
43 var fechaInicio = DateTime.Now.ToUniversalTime(); |
2d02adb79322
Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents:
145
diff
changeset
|
44 var fechaTermino = fechaInicio.AddHours(2); |
235
c61954d24c8c
Quitando ponente principal y utilizando siempre la lista de ponentes
nelopauselli
parents:
200
diff
changeset
|
45 var r = agenda.Agendar("Van 2", new[]{TestsHelper.GetOrCreatePonente("jjmontes")}, fechaInicio, fechaTermino, |
185
2d02adb79322
Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents:
145
diff
changeset
|
46 urlInvitacion, TipoEvento.Van); |
53
d149bfea3892
Tratamos las validaciones como resultados y no como excepciones, dejamos las
nelopauselli
parents:
52
diff
changeset
|
47 Assert.IsTrue(r.Succeful); |
54 | 48 { |
118 | 49 IList<Evento> eventosPropuestos = agenda.GetEventosActivos(EventoPropuestoState.GetInstance()); |
50 IList<Evento> eventosAgendados = agenda.GetEventosActivos(EventoAgendadoState.GetInstance()); | |
20 | 51 |
54 | 52 Assert.AreEqual(0, eventosPropuestos.Count); |
118 | 53 Assert.AreEqual(1, eventosAgendados.Count); |
54 | 54 } |
20 | 55 } |
56 | |
57 [Test] | |
51
4a63a73e38e4
Cambio de nombres de test intentando describir mejor lo que verifican
nelopauselli
parents:
50
diff
changeset
|
58 public void Intentar_agendar_evento_propuesto_sin_indicar_fecha() |
20 | 59 { |
200
5346c0500594
Pasando a estructura de db fija, ya no se crea automáticamente.
nelopauselli
parents:
197
diff
changeset
|
60 var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository); |
54 | 61 |
20 | 62 { |
118 | 63 agenda.Proponer("Van propuesta", null, urlInvitacion, TipoEvento.Van); |
20 | 64 } |
65 | |
66 { | |
118 | 67 var van = agenda.GetEventosActivos(EventoPropuestoState.GetInstance()).FirstOrDefault(); |
20 | 68 Assert.IsNotNull(van); |
235
c61954d24c8c
Quitando ponente principal y utilizando siempre la lista de ponentes
nelopauselli
parents:
200
diff
changeset
|
69 var r = agenda.Agendar(van.Titulo,new[]{ TestsHelper.GetOrCreatePonente("Ponente")}, null, null, |
185
2d02adb79322
Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents:
145
diff
changeset
|
70 urlInvitacion, TipoEvento.Van); |
53
d149bfea3892
Tratamos las validaciones como resultados y no como excepciones, dejamos las
nelopauselli
parents:
52
diff
changeset
|
71 Assert.IsFalse(r.Succeful); |
197
bfd472758bc3
Agregando validaciones para subir el Coverage.
juanjose.montesdeocaarbos
parents:
185
diff
changeset
|
72 |
235
c61954d24c8c
Quitando ponente principal y utilizando siempre la lista de ponentes
nelopauselli
parents:
200
diff
changeset
|
73 r = agenda.Agendar(van.Titulo, new[]{TestsHelper.GetOrCreatePonente("Ponente")}, DateTime.MinValue, null, |
197
bfd472758bc3
Agregando validaciones para subir el Coverage.
juanjose.montesdeocaarbos
parents:
185
diff
changeset
|
74 urlInvitacion, TipoEvento.Van); |
bfd472758bc3
Agregando validaciones para subir el Coverage.
juanjose.montesdeocaarbos
parents:
185
diff
changeset
|
75 Assert.IsFalse(r.Succeful); |
20 | 76 } |
77 } | |
78 | |
79 [Test] | |
51
4a63a73e38e4
Cambio de nombres de test intentando describir mejor lo que verifican
nelopauselli
parents:
50
diff
changeset
|
80 public void Intentar_agendar_evento_propuesto_sin_indicar_ponente() |
20 | 81 { |
200
5346c0500594
Pasando a estructura de db fija, ya no se crea automáticamente.
nelopauselli
parents:
197
diff
changeset
|
82 var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository); |
54 | 83 |
20 | 84 { |
118 | 85 agenda.Proponer("Van propuesta", null, urlInvitacion, TipoEvento.Van); |
20 | 86 } |
87 | |
88 { | |
118 | 89 var van = agenda.GetEventosActivos(EventoPropuestoState.GetInstance()).FirstOrDefault(); |
20 | 90 Assert.IsNotNull(van); |
91 | |
185
2d02adb79322
Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents:
145
diff
changeset
|
92 var fechaInicio = DateTime.Today.AddDays(5).ToUniversalTime(); |
2d02adb79322
Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents:
145
diff
changeset
|
93 var fechaTermino = fechaInicio.AddHours(2); |
235
c61954d24c8c
Quitando ponente principal y utilizando siempre la lista de ponentes
nelopauselli
parents:
200
diff
changeset
|
94 van.Actualizar(fechaInicio, fechaTermino, urlInvitacion); |
c61954d24c8c
Quitando ponente principal y utilizando siempre la lista de ponentes
nelopauselli
parents:
200
diff
changeset
|
95 var r = agenda.Agendar(van.Titulo, new[]{Guid.Empty}, van.FechaInicio, van.FechaTermino, |
185
2d02adb79322
Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents:
145
diff
changeset
|
96 urlInvitacion, TipoEvento.Van); |
53
d149bfea3892
Tratamos las validaciones como resultados y no como excepciones, dejamos las
nelopauselli
parents:
52
diff
changeset
|
97 Assert.IsFalse(r.Succeful); |
20 | 98 } |
99 } | |
29
016b9b9b8d3a
Cuando se publica una van con el mismo titulo que una propuesta, se utiliza esta
nelo@MTEySS.neluz.int
parents:
26
diff
changeset
|
100 |
016b9b9b8d3a
Cuando se publica una van con el mismo titulo que una propuesta, se utiliza esta
nelo@MTEySS.neluz.int
parents:
26
diff
changeset
|
101 [Test] |
54 | 102 public void Intentar_obtener_un_evento_inexistente() |
29
016b9b9b8d3a
Cuando se publica una van con el mismo titulo que una propuesta, se utiliza esta
nelo@MTEySS.neluz.int
parents:
26
diff
changeset
|
103 { |
54 | 104 var idEventoNoExistente = new Guid("99999999999999999999999999999999"); |
105 | |
200
5346c0500594
Pasando a estructura de db fija, ya no se crea automáticamente.
nelopauselli
parents:
197
diff
changeset
|
106 var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository); |
29
016b9b9b8d3a
Cuando se publica una van con el mismo titulo que una propuesta, se utiliza esta
nelo@MTEySS.neluz.int
parents:
26
diff
changeset
|
107 |
81
c76661cff260
Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents:
79
diff
changeset
|
108 Assert.Throws<EventoNotFoundException>(() => agenda.GetEvento(idEventoNoExistente)); |
54 | 109 } |
45 | 110 |
54 | 111 [Test] |
112 public void Intentar_proponer_evento_sin_titulo() | |
113 { | |
114 var repository = new Mock<IEventoRepository>(); | |
29
016b9b9b8d3a
Cuando se publica una van con el mismo titulo que una propuesta, se utiliza esta
nelo@MTEySS.neluz.int
parents:
26
diff
changeset
|
115 |
200
5346c0500594
Pasando a estructura de db fija, ya no se crea automáticamente.
nelopauselli
parents:
197
diff
changeset
|
116 var agenda = new Agenda(null, repository.Object, DefaultPersonaRepository); |
54 | 117 |
118 | 118 var r = agenda.Proponer(string.Empty, null, urlInvitacion, TipoEvento.Van); |
54 | 119 Assert.IsFalse(r.Succeful); |
120 | |
121 repository.Verify(p => p.Save(It.IsAny<Evento>()), Times.Exactly(0)); | |
29
016b9b9b8d3a
Cuando se publica una van con el mismo titulo que una propuesta, se utiliza esta
nelo@MTEySS.neluz.int
parents:
26
diff
changeset
|
122 } |
016b9b9b8d3a
Cuando se publica una van con el mismo titulo que una propuesta, se utiliza esta
nelo@MTEySS.neluz.int
parents:
26
diff
changeset
|
123 |
51
4a63a73e38e4
Cambio de nombres de test intentando describir mejor lo que verifican
nelopauselli
parents:
50
diff
changeset
|
124 [Test] |
4a63a73e38e4
Cambio de nombres de test intentando describir mejor lo que verifican
nelopauselli
parents:
50
diff
changeset
|
125 public void Intentar_proponer_evento_sin_usuario_autenticado() |
4a63a73e38e4
Cambio de nombres de test intentando describir mejor lo que verifican
nelopauselli
parents:
50
diff
changeset
|
126 { |
200
5346c0500594
Pasando a estructura de db fija, ya no se crea automáticamente.
nelopauselli
parents:
197
diff
changeset
|
127 var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository); |
45 | 128 |
94
db4b1e2cae49
Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents:
87
diff
changeset
|
129 SetCurrentUser(null, null); |
45 | 130 |
118 | 131 Assert.Throws<UsuarioNoAutenticadoException>(() => agenda.Proponer("Inmortalidad de la meduza.", null, urlInvitacion, TipoEvento.Van)); |
51
4a63a73e38e4
Cambio de nombres de test intentando describir mejor lo que verifican
nelopauselli
parents:
50
diff
changeset
|
132 } |
45 | 133 |
51
4a63a73e38e4
Cambio de nombres de test intentando describir mejor lo que verifican
nelopauselli
parents:
50
diff
changeset
|
134 [Test] |
54 | 135 public void Proponer_evento_correctamente() |
51
4a63a73e38e4
Cambio de nombres de test intentando describir mejor lo que verifican
nelopauselli
parents:
50
diff
changeset
|
136 { |
200
5346c0500594
Pasando a estructura de db fija, ya no se crea automáticamente.
nelopauselli
parents:
197
diff
changeset
|
137 var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository); |
118 | 138 agenda.Proponer("Van propuesta", null, urlInvitacion, TipoEvento.Van); |
45 | 139 |
118 | 140 IList<Evento> eventosPropuestos = agenda.GetEventosActivos(EventoPropuestoState.GetInstance()); |
54 | 141 Assert.IsNotNull(eventosPropuestos); |
142 Assert.AreEqual(1, eventosPropuestos.Count); | |
143 Assert.AreEqual("Van propuesta", eventosPropuestos[0].Titulo); | |
144 } | |
145 | |
146 [Test] | |
147 public void Verificar_propuesta_separada_de_publicacion() | |
148 { | |
200
5346c0500594
Pasando a estructura de db fija, ya no se crea automáticamente.
nelopauselli
parents:
197
diff
changeset
|
149 var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository); |
45 | 150 |
118 | 151 agenda.Proponer("Van propuesta", null, urlInvitacion, TipoEvento.Van); |
185
2d02adb79322
Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents:
145
diff
changeset
|
152 var fechaInicio = DateTime.Now.ToUniversalTime(); |
2d02adb79322
Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents:
145
diff
changeset
|
153 var fechaTermino = fechaInicio.AddHours(2); |
235
c61954d24c8c
Quitando ponente principal y utilizando siempre la lista de ponentes
nelopauselli
parents:
200
diff
changeset
|
154 var r = agenda.Agendar("Van publicada", new[]{TestsHelper.GetOrCreatePonente("jjmontes")}, fechaInicio, fechaTermino, |
185
2d02adb79322
Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents:
145
diff
changeset
|
155 urlInvitacion, TipoEvento.Van); |
54 | 156 Assert.IsTrue(r.Succeful); |
157 | |
118 | 158 IList<Evento> eventosPropuestos = agenda.GetEventosActivos(EventoPropuestoState.GetInstance()); |
159 IList<Evento> eventosAgendados = agenda.GetEventosActivos(EventoAgendadoState.GetInstance()); | |
54 | 160 |
161 Assert.AreEqual(1, eventosPropuestos.Count); | |
118 | 162 Assert.AreEqual(1, eventosAgendados.Count); |
51
4a63a73e38e4
Cambio de nombres de test intentando describir mejor lo que verifican
nelopauselli
parents:
50
diff
changeset
|
163 } |
54 | 164 } |
20 | 165 } |