20
|
1 using System;
|
|
2 using System.Collections.Generic;
|
|
3 using System.Linq;
|
|
4 using AltNetHispano.Agendas.Domain;
|
|
5 using AltNetHispano.Agendas.Domain.Exceptions;
|
|
6 using AltNetHispano.Agendas.Domain.Repositories;
|
|
7 using Moq;
|
|
8 using NUnit.Framework;
|
|
9
|
|
10 namespace AltNetHispano.Agendas.Tests
|
|
11 {
|
|
12 [TestFixture]
|
|
13 public class PropuestasTests : TestBase
|
|
14 {
|
|
15 [Test]
|
|
16 public void Propuesta_de_van_con_usuario_autenticado()
|
|
17 {
|
|
18 var seguridad = new Mock<ISeguridad>();
|
24
|
19 var agenda = new Agenda(null, null, seguridad.Object, DefaultEventoRepository, DefaultPonenteRepository);
|
20
|
20
|
|
21 seguridad.Setup(s => s.GetPrincipal()).Returns(SeguridadObjectMother.GetGenericPrincipalAutenticadoSinRoles());
|
26
|
22 agenda.Proponer("Van propuesta", null);
|
20
|
23
|
|
24 IList<Evento> eventosPropuestos = agenda.GetEventosPropuestos();
|
|
25 Assert.IsNotNull(eventosPropuestos);
|
|
26 Assert.AreEqual(1, eventosPropuestos.Count);
|
|
27 Assert.AreEqual("Van propuesta", eventosPropuestos[0].Titulo);
|
|
28 }
|
|
29
|
|
30 [Test]
|
|
31 public void Verificar_propuesta_separada_de_publicacion()
|
|
32 {
|
24
|
33 var agenda = new Agenda(null, null, SeguridadServiceDefault, DefaultEventoRepository, DefaultPonenteRepository);
|
20
|
34
|
26
|
35 agenda.Proponer("Van propuesta", null);
|
24
|
36 agenda.Publicar("Van publicada", "jjmontes", DateTime.Now);
|
20
|
37
|
|
38 IList<Evento> eventosPropuestos = agenda.GetEventosPropuestos();
|
|
39 IList<Evento> eventosPublicados = agenda.GetEventosPublicados();
|
|
40
|
|
41 Assert.AreEqual(1, eventosPropuestos.Count);
|
|
42 Assert.AreEqual(1, eventosPublicados.Count);
|
|
43 }
|
|
44
|
|
45 [Test]
|
|
46 public void Propuesta_de_van_sin_titulo()
|
|
47 {
|
|
48 var repository = new Mock<IEventoRepository>();
|
|
49
|
|
50 var seguridad = new Mock<ISeguridad>();
|
24
|
51 var agenda = new Agenda(null, null, seguridad.Object, repository.Object, DefaultPonenteRepository);
|
26
|
52
|
|
53 Assert.Throws<ValidationException>(() => agenda.Proponer(string.Empty, null));
|
20
|
54
|
|
55 repository.Verify(p => p.Save(It.IsAny<Evento>()), Times.Exactly(0));
|
|
56 }
|
|
57
|
|
58 [Test]
|
|
59 public void Agendar_van_propuesta_sin_fecha()
|
|
60 {
|
|
61 var seguridad = new Mock<ISeguridad>();
|
24
|
62 var agenda = new Agenda(null, null, seguridad.Object, DefaultEventoRepository, DefaultPonenteRepository);
|
20
|
63
|
|
64 seguridad.Setup(s => s.GetPrincipal()).Returns(SeguridadObjectMother.GetGenericPrincipalAutenticadoSinRoles());
|
|
65
|
|
66 {
|
26
|
67 agenda.Proponer("Van propuesta", null);
|
20
|
68 }
|
|
69
|
|
70 {
|
|
71 var van = agenda.GetEventosPropuestos().FirstOrDefault();
|
|
72 Assert.IsNotNull(van);
|
24
|
73 Assert.Throws<ValidationException>(() => agenda.Publicar(van.Titulo, string.Empty, van.Fecha));
|
20
|
74 }
|
|
75 }
|
|
76
|
|
77 [Test]
|
|
78 public void Agendar_van_propuesta_sin_ponente()
|
|
79 {
|
|
80 var seguridad = new Mock<ISeguridad>();
|
24
|
81 var agenda = new Agenda(null, null, seguridad.Object, DefaultEventoRepository, DefaultPonenteRepository);
|
20
|
82
|
|
83 seguridad.Setup(s => s.GetPrincipal()).Returns(SeguridadObjectMother.GetGenericPrincipalAutenticadoSinRoles());
|
|
84
|
|
85 {
|
26
|
86 agenda.Proponer("Van propuesta", null);
|
20
|
87 }
|
|
88
|
|
89 {
|
|
90 var van = agenda.GetEventosPropuestos().FirstOrDefault();
|
|
91 Assert.IsNotNull(van);
|
|
92
|
|
93 van.Fecha = DateTime.Today.AddDays(5);
|
24
|
94 Assert.Throws<ValidationException>(() => agenda.Publicar(van.Titulo, string.Empty, van.Fecha));
|
20
|
95 }
|
|
96 }
|
|
97 }
|
|
98 } |