Mercurial > altnet-hispano
comparison Agendas/trunk/src/Agendas.Tests/PropuestasTests.cs @ 24:41b283d27e3e
Ponentes como entidad
Agenda no es una entidad persistente (por ahora)
author | nelo@MTEySS.neluz.int |
---|---|
date | Tue, 15 Mar 2011 07:49:53 -0300 |
parents | d6e124e5c9c4 |
children | 71b02443450a |
comparison
equal
deleted
inserted
replaced
23:a85674a7aa7a | 24:41b283d27e3e |
---|---|
1 using System; | 1 using System; |
2 using System.Collections.Generic; | 2 using System.Collections.Generic; |
3 using System.Linq; | 3 using System.Linq; |
4 using Agendas.Repositories.Memory; | |
5 using AltNetHispano.Agendas.Domain; | 4 using AltNetHispano.Agendas.Domain; |
6 using AltNetHispano.Agendas.Domain.Exceptions; | 5 using AltNetHispano.Agendas.Domain.Exceptions; |
7 using AltNetHispano.Agendas.Domain.Repositories; | 6 using AltNetHispano.Agendas.Domain.Repositories; |
8 using Moq; | 7 using Moq; |
9 using NUnit.Framework; | 8 using NUnit.Framework; |
15 { | 14 { |
16 [Test] | 15 [Test] |
17 public void Propuesta_de_van_con_usuario_autenticado() | 16 public void Propuesta_de_van_con_usuario_autenticado() |
18 { | 17 { |
19 var seguridad = new Mock<ISeguridad>(); | 18 var seguridad = new Mock<ISeguridad>(); |
20 var agenda = new Agenda(null, null, seguridad.Object, DefaultEventoRepository); | 19 var agenda = new Agenda(null, null, seguridad.Object, DefaultEventoRepository, DefaultPonenteRepository); |
21 | 20 |
22 seguridad.Setup(s => s.GetPrincipal()).Returns(SeguridadObjectMother.GetGenericPrincipalAutenticadoSinRoles()); | 21 seguridad.Setup(s => s.GetPrincipal()).Returns(SeguridadObjectMother.GetGenericPrincipalAutenticadoSinRoles()); |
23 agenda.Proponer("Van propuesta"); | 22 agenda.Proponer("Van propuesta"); |
24 | 23 |
25 IList<Evento> eventosPropuestos = agenda.GetEventosPropuestos(); | 24 IList<Evento> eventosPropuestos = agenda.GetEventosPropuestos(); |
29 } | 28 } |
30 | 29 |
31 [Test] | 30 [Test] |
32 public void Verificar_propuesta_separada_de_publicacion() | 31 public void Verificar_propuesta_separada_de_publicacion() |
33 { | 32 { |
34 var agenda = new Agenda(null, null, SeguridadServiceDefault, new EventoRepository()); | 33 var agenda = new Agenda(null, null, SeguridadServiceDefault, DefaultEventoRepository, DefaultPonenteRepository); |
35 | |
36 var vanPublicada = EventoObjectMother.GetVanValidaParaPublicar(); | |
37 | 34 |
38 agenda.Proponer("Van propuesta"); | 35 agenda.Proponer("Van propuesta"); |
39 agenda.Publicar(vanPublicada.Titulo, vanPublicada.Ponente, vanPublicada.Fecha); | 36 agenda.Publicar("Van publicada", "jjmontes", DateTime.Now); |
40 | 37 |
41 IList<Evento> eventosPropuestos = agenda.GetEventosPropuestos(); | 38 IList<Evento> eventosPropuestos = agenda.GetEventosPropuestos(); |
42 IList<Evento> eventosPublicados = agenda.GetEventosPublicados(); | 39 IList<Evento> eventosPublicados = agenda.GetEventosPublicados(); |
43 | 40 |
44 Assert.AreEqual(1, eventosPropuestos.Count); | 41 Assert.AreEqual(1, eventosPropuestos.Count); |
49 public void Propuesta_de_van_sin_titulo() | 46 public void Propuesta_de_van_sin_titulo() |
50 { | 47 { |
51 var repository = new Mock<IEventoRepository>(); | 48 var repository = new Mock<IEventoRepository>(); |
52 | 49 |
53 var seguridad = new Mock<ISeguridad>(); | 50 var seguridad = new Mock<ISeguridad>(); |
54 var agenda = new Agenda(null, null, seguridad.Object, repository.Object); | 51 var agenda = new Agenda(null, null, seguridad.Object, repository.Object, DefaultPonenteRepository); |
55 | 52 |
56 Assert.Throws<ValidationException>(() => agenda.Proponer(string.Empty)); | 53 Assert.Throws<ValidationException>(() => agenda.Proponer(string.Empty)); |
57 | 54 |
58 repository.Verify(p => p.Save(It.IsAny<Evento>()), Times.Exactly(0)); | 55 repository.Verify(p => p.Save(It.IsAny<Evento>()), Times.Exactly(0)); |
59 } | 56 } |
60 | 57 |
61 [Test] | 58 [Test] |
62 public void Agendar_van_propuesta_sin_fecha() | 59 public void Agendar_van_propuesta_sin_fecha() |
63 { | 60 { |
64 var seguridad = new Mock<ISeguridad>(); | 61 var seguridad = new Mock<ISeguridad>(); |
65 var agenda = new Agenda(null, null, seguridad.Object, DefaultEventoRepository); | 62 var agenda = new Agenda(null, null, seguridad.Object, DefaultEventoRepository, DefaultPonenteRepository); |
66 | 63 |
67 seguridad.Setup(s => s.GetPrincipal()).Returns(SeguridadObjectMother.GetGenericPrincipalAutenticadoSinRoles()); | 64 seguridad.Setup(s => s.GetPrincipal()).Returns(SeguridadObjectMother.GetGenericPrincipalAutenticadoSinRoles()); |
68 | 65 |
69 { | 66 { |
70 agenda.Proponer("Van propuesta"); | 67 agenda.Proponer("Van propuesta"); |
71 } | 68 } |
72 | 69 |
73 { | 70 { |
74 var van = agenda.GetEventosPropuestos().FirstOrDefault(); | 71 var van = agenda.GetEventosPropuestos().FirstOrDefault(); |
75 Assert.IsNotNull(van); | 72 Assert.IsNotNull(van); |
76 Assert.Throws<ValidationException>(() => agenda.Publicar(van.Titulo, van.Ponente, van.Fecha)); | 73 Assert.Throws<ValidationException>(() => agenda.Publicar(van.Titulo, string.Empty, van.Fecha)); |
77 } | 74 } |
78 } | 75 } |
79 | 76 |
80 [Test] | 77 [Test] |
81 public void Agendar_van_propuesta_sin_ponente() | 78 public void Agendar_van_propuesta_sin_ponente() |
82 { | 79 { |
83 var seguridad = new Mock<ISeguridad>(); | 80 var seguridad = new Mock<ISeguridad>(); |
84 var agenda = new Agenda(null, null, seguridad.Object, DefaultEventoRepository); | 81 var agenda = new Agenda(null, null, seguridad.Object, DefaultEventoRepository, DefaultPonenteRepository); |
85 | 82 |
86 seguridad.Setup(s => s.GetPrincipal()).Returns(SeguridadObjectMother.GetGenericPrincipalAutenticadoSinRoles()); | 83 seguridad.Setup(s => s.GetPrincipal()).Returns(SeguridadObjectMother.GetGenericPrincipalAutenticadoSinRoles()); |
87 | 84 |
88 { | 85 { |
89 agenda.Proponer("Van propuesta"); | 86 agenda.Proponer("Van propuesta"); |
92 { | 89 { |
93 var van = agenda.GetEventosPropuestos().FirstOrDefault(); | 90 var van = agenda.GetEventosPropuestos().FirstOrDefault(); |
94 Assert.IsNotNull(van); | 91 Assert.IsNotNull(van); |
95 | 92 |
96 van.Fecha = DateTime.Today.AddDays(5); | 93 van.Fecha = DateTime.Today.AddDays(5); |
97 Assert.Throws<ValidationException>(() => agenda.Publicar(van.Titulo, van.Ponente, van.Fecha)); | 94 Assert.Throws<ValidationException>(() => agenda.Publicar(van.Titulo, string.Empty, 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 } | 95 } |
147 } | 96 } |
148 } | 97 } |
149 } | 98 } |