comparison Agendas/trunk/src/Agendas.Tests/PropuestasTests.cs @ 20:c5a99dde072f

reorganizando tests
author nelo@MTEySS.neluz.int
date Mon, 14 Mar 2011 20:59:28 -0300
parents
children 43360bf09b1a
comparison
equal deleted inserted replaced
19:74eb4577d447 20:c5a99dde072f
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 }