Mercurial > altnet-hispano
annotate Agendas/trunk/src/Agendas.Tests/PropuestasTests.cs @ 45:2edc705aae0a
Coverage 100% sobre Agendas.Tests
author | juanjose.montesdeocaarbos |
---|---|
date | Sun, 20 Mar 2011 07:41:50 -0300 |
parents | 3c5657d99727 |
children | 3ebe89c88caa |
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 { | |
15 [Test] | |
16 public void Propuesta_de_van_con_usuario_autenticado() | |
17 { | |
18 var seguridad = new Mock<ISeguridad>(); | |
24 | 19 var agenda = new Agenda(null, null, seguridad.Object, DefaultEventoRepository, DefaultPonenteRepository); |
45 | 20 |
20 | 21 seguridad.Setup(s => s.GetPrincipal()).Returns(SeguridadObjectMother.GetGenericPrincipalAutenticadoSinRoles()); |
26 | 22 agenda.Proponer("Van propuesta", null); |
20 | 23 |
24 IList<Evento> eventosPropuestos = agenda.GetEventosPropuestos(); | |
25 Assert.IsNotNull(eventosPropuestos); | |
26 Assert.AreEqual(1, eventosPropuestos.Count); | |
27 Assert.AreEqual("Van propuesta", eventosPropuestos[0].Titulo); | |
28 } | |
29 | |
30 [Test] | |
31 public void Verificar_propuesta_separada_de_publicacion() | |
32 { | |
24 | 33 var agenda = new Agenda(null, null, SeguridadServiceDefault, DefaultEventoRepository, DefaultPonenteRepository); |
20 | 34 |
26 | 35 agenda.Proponer("Van propuesta", null); |
24 | 36 agenda.Publicar("Van publicada", "jjmontes", DateTime.Now); |
20 | 37 |
38 IList<Evento> eventosPropuestos = agenda.GetEventosPropuestos(); | |
39 IList<Evento> eventosPublicados = agenda.GetEventosPublicados(); | |
40 | |
41 Assert.AreEqual(1, eventosPropuestos.Count); | |
42 Assert.AreEqual(1, eventosPublicados.Count); | |
43 } | |
44 | |
45 [Test] | |
46 public void Propuesta_de_van_sin_titulo() | |
47 { | |
48 var repository = new Mock<IEventoRepository>(); | |
49 | |
50 var seguridad = new Mock<ISeguridad>(); | |
24 | 51 var agenda = new Agenda(null, null, seguridad.Object, repository.Object, DefaultPonenteRepository); |
26 | 52 |
53 Assert.Throws<ValidationException>(() => agenda.Proponer(string.Empty, null)); | |
20 | 54 |
55 repository.Verify(p => p.Save(It.IsAny<Evento>()), Times.Exactly(0)); | |
56 } | |
57 | |
58 [Test] | |
59 public void Agendar_van_propuesta_sin_fecha() | |
60 { | |
61 var seguridad = new Mock<ISeguridad>(); | |
24 | 62 var agenda = new Agenda(null, null, seguridad.Object, DefaultEventoRepository, DefaultPonenteRepository); |
20 | 63 |
64 seguridad.Setup(s => s.GetPrincipal()).Returns(SeguridadObjectMother.GetGenericPrincipalAutenticadoSinRoles()); | |
65 | |
66 { | |
26 | 67 agenda.Proponer("Van propuesta", null); |
20 | 68 } |
69 | |
70 { | |
71 var van = agenda.GetEventosPropuestos().FirstOrDefault(); | |
72 Assert.IsNotNull(van); | |
24 | 73 Assert.Throws<ValidationException>(() => agenda.Publicar(van.Titulo, string.Empty, van.Fecha)); |
20 | 74 } |
75 } | |
76 | |
77 [Test] | |
78 public void Agendar_van_propuesta_sin_ponente() | |
79 { | |
80 var seguridad = new Mock<ISeguridad>(); | |
24 | 81 var agenda = new Agenda(null, null, seguridad.Object, DefaultEventoRepository, DefaultPonenteRepository); |
20 | 82 |
83 seguridad.Setup(s => s.GetPrincipal()).Returns(SeguridadObjectMother.GetGenericPrincipalAutenticadoSinRoles()); | |
84 | |
85 { | |
26 | 86 agenda.Proponer("Van propuesta", null); |
20 | 87 } |
88 | |
89 { | |
90 var van = agenda.GetEventosPropuestos().FirstOrDefault(); | |
91 Assert.IsNotNull(van); | |
92 | |
38
3c5657d99727
Cambio de setters de las propiedades a private
nelo@MTEySS.neluz.int
parents:
29
diff
changeset
|
93 van.Actualizar(null, DateTime.Today.AddDays(5)); |
24 | 94 Assert.Throws<ValidationException>(() => agenda.Publicar(van.Titulo, string.Empty, van.Fecha)); |
20 | 95 } |
96 } | |
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 |
016b9b9b8d3a
Cuando se publica una van con el mismo titulo que una propuesta, se utiliza esta
nelo@MTEySS.neluz.int
parents:
26
diff
changeset
|
98 [Test] |
45 | 99 public void Modificar_y_publicar_van_propuesta() |
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 var agenda = new Agenda(null, null, SeguridadServiceDefault, DefaultEventoRepository, DefaultPonenteRepository); |
016b9b9b8d3a
Cuando se publica una van con el mismo titulo que una propuesta, se utiliza esta
nelo@MTEySS.neluz.int
parents:
26
diff
changeset
|
102 |
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 agenda.Proponer("Van", null); |
016b9b9b8d3a
Cuando se publica una van con el mismo titulo que una propuesta, se utiliza esta
nelo@MTEySS.neluz.int
parents:
26
diff
changeset
|
104 { |
016b9b9b8d3a
Cuando se publica una van con el mismo titulo que una propuesta, se utiliza esta
nelo@MTEySS.neluz.int
parents:
26
diff
changeset
|
105 IList<Evento> eventosPropuestos = agenda.GetEventosPropuestos(); |
016b9b9b8d3a
Cuando se publica una van con el mismo titulo que una propuesta, se utiliza esta
nelo@MTEySS.neluz.int
parents:
26
diff
changeset
|
106 IList<Evento> eventosPublicados = agenda.GetEventosPublicados(); |
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 |
016b9b9b8d3a
Cuando se publica una van con el mismo titulo que una propuesta, se utiliza esta
nelo@MTEySS.neluz.int
parents:
26
diff
changeset
|
108 Assert.AreEqual(1, eventosPropuestos.Count); |
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 Assert.AreEqual(0, eventosPublicados.Count); |
45 | 110 |
111 var evento = eventosPropuestos.FirstOrDefault(); | |
112 agenda.ModificarPropuesta(evento.Id, "Van 2", "otro ponente"); | |
113 | |
114 eventosPropuestos = agenda.GetEventosPropuestos(); | |
115 Assert.AreEqual(1, eventosPropuestos.Count); | |
116 | |
117 evento = eventosPropuestos.FirstOrDefault(); | |
118 Assert.AreEqual("Van 2", evento.Titulo); | |
119 Assert.AreEqual("otro ponente", evento.Ponente.Nombre); | |
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
|
120 } |
016b9b9b8d3a
Cuando se publica una van con el mismo titulo que una propuesta, se utiliza esta
nelo@MTEySS.neluz.int
parents:
26
diff
changeset
|
121 |
45 | 122 agenda.Publicar("Van 2", "jjmontes", DateTime.Now); |
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
|
123 { |
016b9b9b8d3a
Cuando se publica una van con el mismo titulo que una propuesta, se utiliza esta
nelo@MTEySS.neluz.int
parents:
26
diff
changeset
|
124 IList<Evento> eventosPropuestos = agenda.GetEventosPropuestos(); |
016b9b9b8d3a
Cuando se publica una van con el mismo titulo que una propuesta, se utiliza esta
nelo@MTEySS.neluz.int
parents:
26
diff
changeset
|
125 IList<Evento> eventosPublicados = agenda.GetEventosPublicados(); |
016b9b9b8d3a
Cuando se publica una van con el mismo titulo que una propuesta, se utiliza esta
nelo@MTEySS.neluz.int
parents:
26
diff
changeset
|
126 |
016b9b9b8d3a
Cuando se publica una van con el mismo titulo que una propuesta, se utiliza esta
nelo@MTEySS.neluz.int
parents:
26
diff
changeset
|
127 Assert.AreEqual(0, eventosPropuestos.Count); |
016b9b9b8d3a
Cuando se publica una van con el mismo titulo que una propuesta, se utiliza esta
nelo@MTEySS.neluz.int
parents:
26
diff
changeset
|
128 Assert.AreEqual(1, eventosPublicados.Count); |
016b9b9b8d3a
Cuando se publica una van con el mismo titulo que una propuesta, se utiliza esta
nelo@MTEySS.neluz.int
parents:
26
diff
changeset
|
129 } |
016b9b9b8d3a
Cuando se publica una van con el mismo titulo que una propuesta, se utiliza esta
nelo@MTEySS.neluz.int
parents:
26
diff
changeset
|
130 } |
016b9b9b8d3a
Cuando se publica una van con el mismo titulo que una propuesta, se utiliza esta
nelo@MTEySS.neluz.int
parents:
26
diff
changeset
|
131 |
45 | 132 [Test] |
133 public void Propuesta_de_van_sin_autenticacion() | |
134 { | |
135 var seguridad = new Mock<ISeguridad>(); | |
136 var agenda = new Agenda(null, null, seguridad.Object, DefaultEventoRepository, DefaultPonenteRepository); | |
137 | |
138 seguridad.Setup(s => s.GetPrincipal()).Returns(SeguridadObjectMother.GetGenericPrincipalSinAutenticar()); | |
139 | |
140 Assert.Throws<UsuarioNoAutenticadoException>(() => agenda.Proponer("Inmortalidad de la meduza.", null)); | |
141 } | |
142 | |
143 [Test] | |
144 public void Obtener_un_evento_inexistente() | |
145 { | |
146 var idEventoNoExistente = new Guid("99999999999999999999999999999999"); | |
147 | |
148 var seguridad = new Mock<ISeguridad>(); | |
149 var agenda = new Agenda(null, null, seguridad.Object, DefaultEventoRepository, DefaultPonenteRepository); | |
150 | |
151 seguridad.Setup(s => s.GetPrincipal()).Returns( | |
152 SeguridadObjectMother.GetGenericPrincipalAutenticadoSinRoles()); | |
153 | |
154 Assert.IsNull(agenda.GetEvento(idEventoNoExistente)); | |
155 } | |
156 } | |
20 | 157 } |