Mercurial > altnet-hispano
annotate Agendas/trunk/src/Agendas.Tests/PropuestasTests.cs @ 185:2d02adb79322
Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
Se modifica la propiedad Fecha del Evento, renombrandola FechaInicio.
En el ModelView se agrega propiedades Duración y Hora del Evento cuando es Modificado, Nuevo y Agendado.
Las fechas ingresadas son creadas en sistema UTC
Queda pendiente Agregar duración a Google Calendar.
author | alabra |
---|---|
date | Tue, 09 Aug 2011 01:04:27 -0400 |
parents | e6e6bfb1da9e |
children | bfd472758bc3 |
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 { |
138
62791999ad01
Agregando relación entre Evento y Patrocinador
nelopauselli
parents:
118
diff
changeset
|
20 var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository); |
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(); |
145
e6e6bfb1da9e
En la edición de un evento (nuevo, propuesta, modificación), el ponente se selecciona desde un combo.
Nelo@Guinea.neluz.int
parents:
138
diff
changeset
|
31 agenda.ModificarPropuesta(evento.Id, "Van 2", 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); | |
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:
94
diff
changeset
|
38 Assert.AreEqual("otro ponente", evento.Ponente.Nombre); |
54 | 39 } |
20 | 40 |
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
|
41 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
|
42 var fechaTermino = fechaInicio.AddHours(2); |
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 r = agenda.Agendar("Van 2", TestsHelper.GetOrCreatePonente("jjmontes"), fechaInicio, fechaTermino, |
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 urlInvitacion, TipoEvento.Van); |
53
d149bfea3892
Tratamos las validaciones como resultados y no como excepciones, dejamos las
nelopauselli
parents:
52
diff
changeset
|
45 Assert.IsTrue(r.Succeful); |
54 | 46 { |
118 | 47 IList<Evento> eventosPropuestos = agenda.GetEventosActivos(EventoPropuestoState.GetInstance()); |
48 IList<Evento> eventosAgendados = agenda.GetEventosActivos(EventoAgendadoState.GetInstance()); | |
20 | 49 |
54 | 50 Assert.AreEqual(0, eventosPropuestos.Count); |
118 | 51 Assert.AreEqual(1, eventosAgendados.Count); |
54 | 52 } |
20 | 53 } |
54 | |
55 [Test] | |
51
4a63a73e38e4
Cambio de nombres de test intentando describir mejor lo que verifican
nelopauselli
parents:
50
diff
changeset
|
56 public void Intentar_agendar_evento_propuesto_sin_indicar_fecha() |
20 | 57 { |
138
62791999ad01
Agregando relación entre Evento y Patrocinador
nelopauselli
parents:
118
diff
changeset
|
58 var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository); |
54 | 59 |
20 | 60 { |
118 | 61 agenda.Proponer("Van propuesta", null, urlInvitacion, TipoEvento.Van); |
20 | 62 } |
63 | |
64 { | |
118 | 65 var van = agenda.GetEventosActivos(EventoPropuestoState.GetInstance()).FirstOrDefault(); |
20 | 66 Assert.IsNotNull(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
|
67 var r = agenda.Agendar(van.Titulo, TestsHelper.GetOrCreatePonente("Ponente"), null, null, |
2d02adb79322
Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents:
145
diff
changeset
|
68 urlInvitacion, TipoEvento.Van); |
53
d149bfea3892
Tratamos las validaciones como resultados y no como excepciones, dejamos las
nelopauselli
parents:
52
diff
changeset
|
69 Assert.IsFalse(r.Succeful); |
20 | 70 } |
71 } | |
72 | |
73 [Test] | |
51
4a63a73e38e4
Cambio de nombres de test intentando describir mejor lo que verifican
nelopauselli
parents:
50
diff
changeset
|
74 public void Intentar_agendar_evento_propuesto_sin_indicar_ponente() |
20 | 75 { |
138
62791999ad01
Agregando relación entre Evento y Patrocinador
nelopauselli
parents:
118
diff
changeset
|
76 var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository); |
54 | 77 |
20 | 78 { |
118 | 79 agenda.Proponer("Van propuesta", null, urlInvitacion, TipoEvento.Van); |
20 | 80 } |
81 | |
82 { | |
118 | 83 var van = agenda.GetEventosActivos(EventoPropuestoState.GetInstance()).FirstOrDefault(); |
20 | 84 Assert.IsNotNull(van); |
85 | |
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
|
86 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
|
87 var fechaTermino = fechaInicio.AddHours(2); |
2d02adb79322
Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents:
145
diff
changeset
|
88 van.Actualizar(null, fechaInicio, fechaTermino, urlInvitacion); |
2d02adb79322
Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents:
145
diff
changeset
|
89 var r = agenda.Agendar(van.Titulo, Guid.Empty, van.FechaInicio, van.FechaTermino, |
2d02adb79322
Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents:
145
diff
changeset
|
90 urlInvitacion, TipoEvento.Van); |
53
d149bfea3892
Tratamos las validaciones como resultados y no como excepciones, dejamos las
nelopauselli
parents:
52
diff
changeset
|
91 Assert.IsFalse(r.Succeful); |
20 | 92 } |
93 } | |
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
|
94 |
016b9b9b8d3a
Cuando se publica una van con el mismo titulo que una propuesta, se utiliza esta
nelo@MTEySS.neluz.int
parents:
26
diff
changeset
|
95 [Test] |
54 | 96 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
|
97 { |
54 | 98 var idEventoNoExistente = new Guid("99999999999999999999999999999999"); |
99 | |
138
62791999ad01
Agregando relación entre Evento y Patrocinador
nelopauselli
parents:
118
diff
changeset
|
100 var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository); |
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
|
101 |
81
c76661cff260
Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents:
79
diff
changeset
|
102 Assert.Throws<EventoNotFoundException>(() => agenda.GetEvento(idEventoNoExistente)); |
54 | 103 } |
45 | 104 |
54 | 105 [Test] |
106 public void Intentar_proponer_evento_sin_titulo() | |
107 { | |
108 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
|
109 |
138
62791999ad01
Agregando relación entre Evento y Patrocinador
nelopauselli
parents:
118
diff
changeset
|
110 var agenda = new Agenda(null, repository.Object, DefaultPersonaRepository, DefaultPatrocinadorRepository); |
54 | 111 |
118 | 112 var r = agenda.Proponer(string.Empty, null, urlInvitacion, TipoEvento.Van); |
54 | 113 Assert.IsFalse(r.Succeful); |
114 | |
115 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
|
116 } |
016b9b9b8d3a
Cuando se publica una van con el mismo titulo que una propuesta, se utiliza esta
nelo@MTEySS.neluz.int
parents:
26
diff
changeset
|
117 |
51
4a63a73e38e4
Cambio de nombres de test intentando describir mejor lo que verifican
nelopauselli
parents:
50
diff
changeset
|
118 [Test] |
4a63a73e38e4
Cambio de nombres de test intentando describir mejor lo que verifican
nelopauselli
parents:
50
diff
changeset
|
119 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
|
120 { |
138
62791999ad01
Agregando relación entre Evento y Patrocinador
nelopauselli
parents:
118
diff
changeset
|
121 var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository); |
45 | 122 |
94
db4b1e2cae49
Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents:
87
diff
changeset
|
123 SetCurrentUser(null, null); |
45 | 124 |
118 | 125 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
|
126 } |
45 | 127 |
51
4a63a73e38e4
Cambio de nombres de test intentando describir mejor lo que verifican
nelopauselli
parents:
50
diff
changeset
|
128 [Test] |
54 | 129 public void Proponer_evento_correctamente() |
51
4a63a73e38e4
Cambio de nombres de test intentando describir mejor lo que verifican
nelopauselli
parents:
50
diff
changeset
|
130 { |
138
62791999ad01
Agregando relación entre Evento y Patrocinador
nelopauselli
parents:
118
diff
changeset
|
131 var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository); |
118 | 132 agenda.Proponer("Van propuesta", null, urlInvitacion, TipoEvento.Van); |
45 | 133 |
118 | 134 IList<Evento> eventosPropuestos = agenda.GetEventosActivos(EventoPropuestoState.GetInstance()); |
54 | 135 Assert.IsNotNull(eventosPropuestos); |
136 Assert.AreEqual(1, eventosPropuestos.Count); | |
137 Assert.AreEqual("Van propuesta", eventosPropuestos[0].Titulo); | |
138 } | |
139 | |
140 [Test] | |
141 public void Verificar_propuesta_separada_de_publicacion() | |
142 { | |
138
62791999ad01
Agregando relación entre Evento y Patrocinador
nelopauselli
parents:
118
diff
changeset
|
143 var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository); |
45 | 144 |
118 | 145 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
|
146 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
|
147 var fechaTermino = fechaInicio.AddHours(2); |
2d02adb79322
Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents:
145
diff
changeset
|
148 var r = agenda.Agendar("Van publicada", TestsHelper.GetOrCreatePonente("jjmontes"), fechaInicio, fechaTermino, |
2d02adb79322
Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents:
145
diff
changeset
|
149 urlInvitacion, TipoEvento.Van); |
54 | 150 Assert.IsTrue(r.Succeful); |
151 | |
118 | 152 IList<Evento> eventosPropuestos = agenda.GetEventosActivos(EventoPropuestoState.GetInstance()); |
153 IList<Evento> eventosAgendados = agenda.GetEventosActivos(EventoAgendadoState.GetInstance()); | |
54 | 154 |
155 Assert.AreEqual(1, eventosPropuestos.Count); | |
118 | 156 Assert.AreEqual(1, eventosAgendados.Count); |
51
4a63a73e38e4
Cambio de nombres de test intentando describir mejor lo que verifican
nelopauselli
parents:
50
diff
changeset
|
157 } |
54 | 158 } |
20 | 159 } |