Mercurial > altnet-hispano
comparison Agendas/trunk/src/Agendas.Tests/AgendaTests.cs @ 4:49b572535156
proponer van
publicar van propuesta
comportamiento ante excepcion en publicador
author | nelopauselli |
---|---|
date | Tue, 08 Feb 2011 00:08:49 -0300 |
parents | 5f007e266509 |
children | 2912c1dd0e6b |
comparison
equal
deleted
inserted
replaced
3:5f007e266509 | 4:49b572535156 |
---|---|
1 using System; | 1 using System; |
2 using System.Collections.Generic; | |
2 using System.Linq; | 3 using System.Linq; |
3 using Agendas.Repositories.Memory; | 4 using Agendas.Repositories.Memory; |
4 using AltNetHispano.Agendas.Domain; | 5 using AltNetHispano.Agendas.Domain; |
6 using AltNetHispano.Agendas.Domain.Exceptions; | |
5 using AltNetHispano.Agendas.Domain.Repositories; | 7 using AltNetHispano.Agendas.Domain.Repositories; |
6 using Moq; | 8 using Moq; |
7 using NUnit.Framework; | 9 using NUnit.Framework; |
8 | 10 |
9 namespace AltNetHispano.Agendas.Tests | 11 namespace AltNetHispano.Agendas.Tests |
16 { | 18 { |
17 var publicador = new Mock<IPublicador>(); | 19 var publicador = new Mock<IPublicador>(); |
18 | 20 |
19 var agenda = new Agenda(publicador.Object, null); | 21 var agenda = new Agenda(publicador.Object, null); |
20 | 22 |
21 var cafe = new Cafe(); | 23 var cafe = EventoObjectMother.GetCafeValidoParaPublicar(); |
22 agenda.Publicar(cafe); | 24 agenda.Publicar(cafe); |
23 | 25 |
24 publicador.Verify(p => p.Publicar(It.IsAny<Evento>()), Times.Exactly(1)); | 26 publicador.Verify(p => p.Publicar(It.IsAny<Evento>()), Times.Exactly(1)); |
25 } | 27 } |
26 | 28 |
29 { | 31 { |
30 var publicador = new Mock<IPublicador>(); | 32 var publicador = new Mock<IPublicador>(); |
31 | 33 |
32 var agenda = new Agenda(publicador.Object, null); | 34 var agenda = new Agenda(publicador.Object, null); |
33 | 35 |
34 var van = new Van(); | 36 var van = EventoObjectMother.GetVanValidaParaPublicar(); |
37 | |
35 agenda.Publicar(van); | 38 agenda.Publicar(van); |
39 Assert.AreEqual(1, agenda.Eventos.Count()); | |
36 | 40 |
37 publicador.Verify(p => p.Publicar(It.IsAny<Evento>()), Times.Exactly(1)); | 41 publicador.Verify(p => p.Publicar(It.IsAny<Evento>()), Times.Exactly(1)); |
38 } | 42 } |
43 | |
44 [Test] | |
45 public void Error_al_publicar_van() | |
46 { | |
47 var publicador = new Mock<IPublicador>(); | |
48 publicador.Setup(p => p.Publicar(It.IsAny<Evento>())).Throws(new Exception("Error intencional")); | |
49 | |
50 var agenda = new Agenda(publicador.Object, null); | |
51 | |
52 var van = EventoObjectMother.GetVanValidaParaPublicar(); | |
53 Assert.Throws<Exception>(() => agenda.Publicar(van)); | |
54 Assert.AreEqual(0, agenda.Eventos.Count()); | |
55 | |
56 publicador.Verify(p => p.Publicar(It.IsAny<Evento>()), Times.Exactly(1)); | |
57 } | |
58 | |
39 | 59 |
40 [Test] | 60 [Test] |
41 public void Publicar_van_multiples_publicadores() | 61 public void Publicar_van_multiples_publicadores() |
42 { | 62 { |
43 var publicador1 = new Mock<IPublicador>(); | 63 var publicador1 = new Mock<IPublicador>(); |
44 var publicador2 = new Mock<IPublicador>(); | 64 var publicador2 = new Mock<IPublicador>(); |
45 | 65 |
46 var agenda = new Agenda(new CompositePublicador(new[] {publicador1.Object, publicador2.Object}), null); | 66 var agenda = new Agenda(new CompositePublicador(new[] {publicador1.Object, publicador2.Object}), null); |
47 | 67 |
48 var cafe = new Cafe(); | 68 var van = EventoObjectMother.GetVanValidaParaPublicar(); |
49 agenda.Publicar(cafe); | 69 agenda.Publicar(van); |
50 | 70 |
51 publicador1.Verify(p => p.Publicar(It.IsAny<Evento>()), Times.Exactly(1)); | 71 publicador1.Verify(p => p.Publicar(It.IsAny<Evento>()), Times.Exactly(1)); |
52 publicador2.Verify(p => p.Publicar(It.IsAny<Evento>()), Times.Exactly(1)); | 72 publicador2.Verify(p => p.Publicar(It.IsAny<Evento>()), Times.Exactly(1)); |
53 } | 73 } |
54 | 74 |
59 var publicador2 = new Mock<IPublicador>(); | 79 var publicador2 = new Mock<IPublicador>(); |
60 var recordador1 = new Mock<IRecordador>(); | 80 var recordador1 = new Mock<IRecordador>(); |
61 | 81 |
62 var agenda = new Agenda(new CompositePublicador(new[] {publicador1.Object, publicador2.Object}), recordador1.Object); | 82 var agenda = new Agenda(new CompositePublicador(new[] {publicador1.Object, publicador2.Object}), recordador1.Object); |
63 | 83 |
64 var van = new Van(); | 84 var van = EventoObjectMother.GetVanValidaParaPublicar(); |
65 agenda.Publicar(van); | 85 agenda.Publicar(van); |
66 | 86 |
67 agenda.Recordar(van); | 87 agenda.Recordar(van); |
68 | 88 |
69 publicador1.Verify(p => p.Publicar(It.IsAny<Evento>()), Times.Exactly(1)); | 89 publicador1.Verify(p => p.Publicar(It.IsAny<Evento>()), Times.Exactly(1)); |
72 | 92 |
73 Assert.AreEqual(1, agenda.Eventos.Count()); | 93 Assert.AreEqual(1, agenda.Eventos.Count()); |
74 } | 94 } |
75 | 95 |
76 [Test] | 96 [Test] |
97 public void Propuesta_de_van() | |
98 { | |
99 var van = new Van{Titulo = "Van propuesta"}; | |
100 | |
101 var agenda = new Agenda(null, null); | |
102 agenda.Proponer(van); | |
103 | |
104 IList<Evento> eventosPropuestos = agenda.GetEventosPropuestos(); | |
105 Assert.IsNotNull(eventosPropuestos); | |
106 Assert.AreEqual(1, eventosPropuestos.Count); | |
107 Assert.AreEqual("Van propuesta", eventosPropuestos[0].Titulo); | |
108 } | |
109 | |
110 [Test] | |
111 public void Propuesta_de_van_sin_titulo() | |
112 { | |
113 var van = new Van(); | |
114 | |
115 var agenda = new Agenda(null, null); | |
116 Assert.Throws<ValidationException>(() => agenda.Proponer(van)); | |
117 Assert.AreEqual(Guid.Empty, van.Id); | |
118 } | |
119 | |
120 | |
121 [Test] | |
122 public void Agendar_van_propuesta_sin_fecha() | |
123 { | |
124 var agenda = new Agenda(null, null); | |
125 | |
126 { | |
127 var van = new Van {Titulo = "Van propuesta"}; | |
128 agenda.Proponer(van); | |
129 } | |
130 | |
131 { | |
132 var van = agenda.GetEventosPropuestos().FirstOrDefault(); | |
133 Assert.IsNotNull(van); | |
134 Assert.Throws<ValidationException>(()=>agenda.Publicar(van)); | |
135 } | |
136 } | |
137 | |
138 [Test] | |
139 public void Agendar_van_propuesta_sin_ponente() | |
140 { | |
141 var agenda = new Agenda(null, null); | |
142 | |
143 { | |
144 var van = new Van { Titulo = "Van propuesta" }; | |
145 agenda.Proponer(van); | |
146 } | |
147 | |
148 { | |
149 var van = agenda.GetEventosPropuestos().FirstOrDefault() as Van; | |
150 Assert.IsNotNull(van); | |
151 | |
152 van.Fecha = DateTime.Today.AddDays(5); | |
153 Assert.Throws<ValidationException>(() => agenda.Publicar(van)); | |
154 } | |
155 } | |
156 | |
157 | |
158 [Test] | |
77 public void Van_crud() | 159 public void Van_crud() |
78 { | 160 { |
79 Guid vanId; | 161 Guid vanId; |
80 { | 162 { |
81 var agenda = new Agenda(null, null); | 163 var agenda = new Agenda(null, null); |
82 agenda.Publicar(new Van()); | 164 agenda.Publicar(EventoObjectMother.GetVanValidaParaPublicar()); |
83 | 165 |
84 IAgendaRepository agendaRepository = new AgendaRepository(); | 166 IAgendaRepository agendaRepository = new AgendaRepository(); |
85 | 167 |
86 agendaRepository.Save(agenda); | 168 agendaRepository.Save(agenda); |
87 vanId = agenda.Id; | 169 vanId = agenda.Id; |
92 | 174 |
93 Agenda agenda = agendaRepository.Get(vanId); | 175 Agenda agenda = agendaRepository.Get(vanId); |
94 | 176 |
95 Assert.IsNotNull(agenda); | 177 Assert.IsNotNull(agenda); |
96 Assert.AreEqual(1, agenda.Eventos.Count()); | 178 Assert.AreEqual(1, agenda.Eventos.Count()); |
97 agenda.Publicar(new Cafe()); | 179 agenda.Publicar(EventoObjectMother.GetCafeValidoParaPublicar()); |
98 | 180 |
99 agendaRepository.Update(agenda); | 181 agendaRepository.Update(agenda); |
100 } | 182 } |
101 | 183 |
102 { | 184 { |