Mercurial > altnet-hispano
annotate Agendas/trunk/src/Agendas.Tests/PropuestasTests.cs @ 21:43360bf09b1a
unificando criterio de parámetros en Agenda
author | nelo@MTEySS.neluz.int |
---|---|
date | Mon, 14 Mar 2011 21:05:19 -0300 |
parents | c5a99dde072f |
children | d6e124e5c9c4 |
rev | line source |
---|---|
20 | 1 using System; |
2 using System.Collections.Generic; | |
3 using System.Linq; | |
4 using Agendas.Repositories.Memory; | |
5 using AltNetHispano.Agendas.Domain; | |
6 using AltNetHispano.Agendas.Domain.Exceptions; | |
7 using AltNetHispano.Agendas.Domain.Repositories; | |
8 using Moq; | |
9 using NUnit.Framework; | |
10 | |
11 namespace AltNetHispano.Agendas.Tests | |
12 { | |
13 [TestFixture] | |
14 public class PropuestasTests : TestBase | |
15 { | |
16 [Test] | |
17 public void Propuesta_de_van_con_usuario_autenticado() | |
18 { | |
19 var repository = new EventoRepository(); | |
20 | |
21 var seguridad = new Mock<ISeguridad>(); | |
22 var agenda = new Agenda(null, null, seguridad.Object, repository); | |
23 | |
24 seguridad.Setup(s => s.GetPrincipal()).Returns(SeguridadObjectMother.GetGenericPrincipalAutenticadoSinRoles()); | |
21
43360bf09b1a
unificando criterio de parámetros en Agenda
nelo@MTEySS.neluz.int
parents:
20
diff
changeset
|
25 agenda.Proponer("Van propuesta"); |
20 | 26 |
27 IList<Evento> eventosPropuestos = agenda.GetEventosPropuestos(); | |
28 Assert.IsNotNull(eventosPropuestos); | |
29 Assert.AreEqual(1, eventosPropuestos.Count); | |
30 Assert.AreEqual("Van propuesta", eventosPropuestos[0].Titulo); | |
31 } | |
32 | |
33 [Test] | |
34 public void Verificar_propuesta_separada_de_publicacion() | |
35 { | |
21
43360bf09b1a
unificando criterio de parámetros en Agenda
nelo@MTEySS.neluz.int
parents:
20
diff
changeset
|
36 var agenda = new Agenda(null, null, SeguridadServiceDefault, new EventoRepository()); |
20 | 37 |
38 var vanPublicada = EventoObjectMother.GetVanValidaParaPublicar(); | |
39 | |
21
43360bf09b1a
unificando criterio de parámetros en Agenda
nelo@MTEySS.neluz.int
parents:
20
diff
changeset
|
40 agenda.Proponer("Van propuesta"); |
20 | 41 agenda.Publicar(vanPublicada.Titulo, vanPublicada.Ponente, vanPublicada.Fecha); |
42 | |
43 IList<Evento> eventosPropuestos = agenda.GetEventosPropuestos(); | |
44 IList<Evento> eventosPublicados = agenda.GetEventosPublicados(); | |
45 | |
46 Assert.AreEqual(1, eventosPropuestos.Count); | |
47 Assert.AreEqual(1, eventosPublicados.Count); | |
48 } | |
49 | |
50 [Test] | |
51 public void Propuesta_de_van_sin_titulo() | |
52 { | |
53 var repository = new Mock<IEventoRepository>(); | |
54 | |
55 var seguridad = new Mock<ISeguridad>(); | |
56 var agenda = new Agenda(null, null, seguridad.Object, repository.Object); | |
57 | |
21
43360bf09b1a
unificando criterio de parámetros en Agenda
nelo@MTEySS.neluz.int
parents:
20
diff
changeset
|
58 Assert.Throws<ValidationException>(() => agenda.Proponer(string.Empty)); |
20 | 59 |
60 repository.Verify(p => p.Save(It.IsAny<Evento>()), Times.Exactly(0)); | |
61 } | |
62 | |
63 [Test] | |
64 public void Agendar_van_propuesta_sin_fecha() | |
65 { | |
66 var repository = new EventoRepository(); | |
67 | |
68 var seguridad = new Mock<ISeguridad>(); | |
69 var agenda = new Agenda(null, null, seguridad.Object, repository); | |
70 | |
71 seguridad.Setup(s => s.GetPrincipal()).Returns(SeguridadObjectMother.GetGenericPrincipalAutenticadoSinRoles()); | |
72 | |
73 { | |
21
43360bf09b1a
unificando criterio de parámetros en Agenda
nelo@MTEySS.neluz.int
parents:
20
diff
changeset
|
74 agenda.Proponer("Van propuesta"); |
20 | 75 } |
76 | |
77 { | |
78 var van = agenda.GetEventosPropuestos().FirstOrDefault(); | |
79 Assert.IsNotNull(van); | |
80 Assert.Throws<ValidationException>(() => agenda.Publicar(van.Titulo, van.Ponente, van.Fecha)); | |
81 } | |
82 } | |
83 | |
84 [Test] | |
85 public void Agendar_van_propuesta_sin_ponente() | |
86 { | |
87 var repository = new EventoRepository(); | |
88 | |
89 var seguridad = new Mock<ISeguridad>(); | |
90 var agenda = new Agenda(null, null, seguridad.Object, repository); | |
91 | |
92 seguridad.Setup(s => s.GetPrincipal()).Returns(SeguridadObjectMother.GetGenericPrincipalAutenticadoSinRoles()); | |
93 | |
94 { | |
21
43360bf09b1a
unificando criterio de parámetros en Agenda
nelo@MTEySS.neluz.int
parents:
20
diff
changeset
|
95 agenda.Proponer("Van propuesta"); |
20 | 96 } |
97 | |
98 { | |
99 var van = agenda.GetEventosPropuestos().FirstOrDefault(); | |
100 Assert.IsNotNull(van); | |
101 | |
102 van.Fecha = DateTime.Today.AddDays(5); | |
103 Assert.Throws<ValidationException>(() => agenda.Publicar(van.Titulo, van.Ponente, van.Fecha)); | |
104 } | |
105 } | |
106 | |
107 [Test] | |
108 public void Van_crud() | |
109 { | |
110 var van = EventoObjectMother.GetVanValidaParaPublicar(); | |
111 | |
112 Guid vanId; | |
113 { | |
114 var agenda = new Agenda(null, null, SeguridadServiceDefault, new EventoRepository()); | |
115 agenda.Publicar(van.Titulo, van.Ponente, van.Fecha); | |
116 | |
117 IAgendaRepository agendaRepository = new AgendaRepository(); | |
118 | |
119 agendaRepository.Save(agenda); | |
120 vanId = agenda.Id; | |
121 } | |
122 | |
123 { | |
124 IAgendaRepository agendaRepository = new AgendaRepository(); | |
125 | |
126 Agenda agenda = agendaRepository.Get(vanId); | |
127 | |
128 Assert.IsNotNull(agenda); | |
129 Assert.AreEqual(1, agenda.GetEventosPublicados().Count); | |
130 agenda.Publicar(van.Titulo, van.Ponente, van.Fecha); | |
131 | |
132 agendaRepository.Update(agenda); | |
133 } | |
134 | |
135 { | |
136 IAgendaRepository agendaRepository = new AgendaRepository(); | |
137 | |
138 Agenda agenda = agendaRepository.Get(vanId); | |
139 | |
140 Assert.IsNotNull(agenda); | |
141 Assert.AreEqual(2, agenda.GetEventosPublicados().Count); | |
142 | |
143 agendaRepository.Delete(agenda); | |
144 } | |
145 | |
146 { | |
147 IAgendaRepository agendaRepository = new AgendaRepository(); | |
148 | |
149 Agenda agenda = agendaRepository.Get(vanId); | |
150 | |
151 Assert.IsNull(agenda); | |
152 } | |
153 } | |
154 } | |
155 } |