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