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 van = new Evento { Titulo = "Van propuesta" };
|
|
22
|
|
23 var seguridad = new Mock<ISeguridad>();
|
|
24 var agenda = new Agenda(null, null, seguridad.Object, repository);
|
|
25
|
|
26 seguridad.Setup(s => s.GetPrincipal()).Returns(SeguridadObjectMother.GetGenericPrincipalAutenticadoSinRoles());
|
|
27 agenda.Proponer(van);
|
|
28
|
|
29 IList<Evento> eventosPropuestos = agenda.GetEventosPropuestos();
|
|
30 Assert.IsNotNull(eventosPropuestos);
|
|
31 Assert.AreEqual(1, eventosPropuestos.Count);
|
|
32 Assert.AreEqual("Van propuesta", eventosPropuestos[0].Titulo);
|
|
33 }
|
|
34
|
|
35 [Test]
|
|
36 public void Verificar_propuesta_separada_de_publicacion()
|
|
37 {
|
|
38 var seguridad = new Mock<ISeguridad>();
|
|
39 var agenda = new Agenda(null, null, seguridad.Object, new EventoRepository());
|
|
40
|
|
41 var vanPropuesta = new Evento { Titulo = "Van propuesta" };
|
|
42 var vanPublicada = EventoObjectMother.GetVanValidaParaPublicar();
|
|
43 seguridad.Setup(s => s.GetPrincipal()).Returns(SeguridadObjectMother.GetGenericPrincipalAutenticadoSinRoles());
|
|
44
|
|
45 agenda.Proponer(vanPropuesta);
|
|
46 agenda.Publicar(vanPublicada.Titulo, vanPublicada.Ponente, vanPublicada.Fecha);
|
|
47
|
|
48 IList<Evento> eventosPropuestos = agenda.GetEventosPropuestos();
|
|
49 IList<Evento> eventosPublicados = agenda.GetEventosPublicados();
|
|
50
|
|
51 Assert.AreEqual(1, eventosPropuestos.Count);
|
|
52 Assert.AreEqual(1, eventosPublicados.Count);
|
|
53 }
|
|
54
|
|
55 [Test]
|
|
56 public void Propuesta_de_van_sin_titulo()
|
|
57 {
|
|
58 var repository = new Mock<IEventoRepository>();
|
|
59 var van = new Evento();
|
|
60
|
|
61 var seguridad = new Mock<ISeguridad>();
|
|
62 var agenda = new Agenda(null, null, seguridad.Object, repository.Object);
|
|
63
|
|
64 Assert.Throws<ValidationException>(() => agenda.Proponer(van));
|
|
65 Assert.AreEqual(Guid.Empty, van.Id);
|
|
66
|
|
67 repository.Verify(p => p.Save(It.IsAny<Evento>()), Times.Exactly(0));
|
|
68 }
|
|
69
|
|
70 [Test]
|
|
71 public void Agendar_van_propuesta_sin_fecha()
|
|
72 {
|
|
73 var repository = new EventoRepository();
|
|
74
|
|
75 var seguridad = new Mock<ISeguridad>();
|
|
76 var agenda = new Agenda(null, null, seguridad.Object, repository);
|
|
77
|
|
78 seguridad.Setup(s => s.GetPrincipal()).Returns(SeguridadObjectMother.GetGenericPrincipalAutenticadoSinRoles());
|
|
79
|
|
80 {
|
|
81 var van = new Evento {Titulo = "Van propuesta"};
|
|
82 agenda.Proponer(van);
|
|
83 }
|
|
84
|
|
85 {
|
|
86 var van = agenda.GetEventosPropuestos().FirstOrDefault();
|
|
87 Assert.IsNotNull(van);
|
|
88 Assert.Throws<ValidationException>(() => agenda.Publicar(van.Titulo, van.Ponente, van.Fecha));
|
|
89 }
|
|
90 }
|
|
91
|
|
92 [Test]
|
|
93 public void Agendar_van_propuesta_sin_ponente()
|
|
94 {
|
|
95 var repository = new EventoRepository();
|
|
96
|
|
97 var seguridad = new Mock<ISeguridad>();
|
|
98 var agenda = new Agenda(null, null, seguridad.Object, repository);
|
|
99
|
|
100 seguridad.Setup(s => s.GetPrincipal()).Returns(SeguridadObjectMother.GetGenericPrincipalAutenticadoSinRoles());
|
|
101
|
|
102 {
|
|
103 var van = new Evento { Titulo = "Van propuesta" };
|
|
104 agenda.Proponer(van);
|
|
105 }
|
|
106
|
|
107 {
|
|
108 var van = agenda.GetEventosPropuestos().FirstOrDefault();
|
|
109 Assert.IsNotNull(van);
|
|
110
|
|
111 van.Fecha = DateTime.Today.AddDays(5);
|
|
112 Assert.Throws<ValidationException>(() => agenda.Publicar(van.Titulo, van.Ponente, van.Fecha));
|
|
113 }
|
|
114 }
|
|
115
|
|
116 [Test]
|
|
117 public void Van_crud()
|
|
118 {
|
|
119 var van = EventoObjectMother.GetVanValidaParaPublicar();
|
|
120
|
|
121 Guid vanId;
|
|
122 {
|
|
123 var agenda = new Agenda(null, null, SeguridadServiceDefault, new EventoRepository());
|
|
124 agenda.Publicar(van.Titulo, van.Ponente, van.Fecha);
|
|
125
|
|
126 IAgendaRepository agendaRepository = new AgendaRepository();
|
|
127
|
|
128 agendaRepository.Save(agenda);
|
|
129 vanId = agenda.Id;
|
|
130 }
|
|
131
|
|
132 {
|
|
133 IAgendaRepository agendaRepository = new AgendaRepository();
|
|
134
|
|
135 Agenda agenda = agendaRepository.Get(vanId);
|
|
136
|
|
137 Assert.IsNotNull(agenda);
|
|
138 Assert.AreEqual(1, agenda.GetEventosPublicados().Count);
|
|
139 agenda.Publicar(van.Titulo, van.Ponente, van.Fecha);
|
|
140
|
|
141 agendaRepository.Update(agenda);
|
|
142 }
|
|
143
|
|
144 {
|
|
145 IAgendaRepository agendaRepository = new AgendaRepository();
|
|
146
|
|
147 Agenda agenda = agendaRepository.Get(vanId);
|
|
148
|
|
149 Assert.IsNotNull(agenda);
|
|
150 Assert.AreEqual(2, agenda.GetEventosPublicados().Count);
|
|
151
|
|
152 agendaRepository.Delete(agenda);
|
|
153 }
|
|
154
|
|
155 {
|
|
156 IAgendaRepository agendaRepository = new AgendaRepository();
|
|
157
|
|
158 Agenda agenda = agendaRepository.Get(vanId);
|
|
159
|
|
160 Assert.IsNull(agenda);
|
|
161 }
|
|
162 }
|
|
163 }
|
|
164 } |