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 }