comparison Agendas/trunk/src/Agendas.Tests/PulicarTests.cs @ 70:c7264bfc4b71

agregado de properties en clase Evento (UrlInvitacion, UrlWiki, NumeroOrden) modificaciones en proyecto Agendas.Blog modificacion de viewmodel EventoModel - agregado de UrlInvitacion (no requerido)
author jorge.rowies
date Fri, 20 May 2011 12:21:07 -0300
parents cb3f7b47c1f0
children bc46e7426c80
comparison
equal deleted inserted replaced
69:8becac0977d7 70:c7264bfc4b71
9 namespace AltNetHispano.Agendas.Tests 9 namespace AltNetHispano.Agendas.Tests
10 { 10 {
11 [TestFixture] 11 [TestFixture]
12 public class PulicarTests : TestBase 12 public class PulicarTests : TestBase
13 { 13 {
14 private const string urlInvitacion = "http://groups.google.com/group/altnet-hispano/browse_thread/thread/65d6d26eb381386e";
15
14 [Test] 16 [Test]
15 public void CompositePublicador_constructor_parametro_null_debe_generar_ArgumentNullException() 17 public void CompositePublicador_constructor_parametro_null_debe_generar_ArgumentNullException()
16 { 18 {
17 Assert.Throws<ArgumentNullException>(() => new CompositePublicador(null)); 19 Assert.Throws<ArgumentNullException>(() => new CompositePublicador(null));
18 } 20 }
25 27
26 publicador.Setup(p => p.Publicar(It.IsAny<Evento>())).Throws(new Exception("Error intencional")); 28 publicador.Setup(p => p.Publicar(It.IsAny<Evento>())).Throws(new Exception("Error intencional"));
27 29
28 var agenda = new Agenda(publicador.Object, null, repository.Object, DefaultPonenteRepository); 30 var agenda = new Agenda(publicador.Object, null, repository.Object, DefaultPonenteRepository);
29 31
30 Assert.Throws<Exception>(() => agenda.Publicar("Van para publicar", "jjmontes", DateTime.Now)); 32 Assert.Throws<Exception>(() => agenda.Publicar("Van para publicar", "jjmontes", DateTime.Now, urlInvitacion));
31 Assert.AreEqual(0, agenda.GetEventosPublicados().Count); 33 Assert.AreEqual(0, agenda.GetEventosPublicados().Count);
32 34
33 publicador.Verify(p => p.Publicar(It.IsAny<Evento>()), Times.Exactly(1)); 35 publicador.Verify(p => p.Publicar(It.IsAny<Evento>()), Times.Exactly(1));
34 repository.Verify(p => p.Save(It.IsAny<Evento>()), Times.Exactly(0)); 36 repository.Verify(p => p.Save(It.IsAny<Evento>()), Times.Exactly(0));
35 } 37 }
43 var repository = new Mock<IEventoRepository>(); 45 var repository = new Mock<IEventoRepository>();
44 46
45 var agenda = new Agenda(publicador.Object, null, repository.Object, DefaultPonenteRepository); 47 var agenda = new Agenda(publicador.Object, null, repository.Object, DefaultPonenteRepository);
46 48
47 Assert.Throws<IdentityContextNotConfiguredException>( 49 Assert.Throws<IdentityContextNotConfiguredException>(
48 () => agenda.Publicar("Van para publicar", "jjmontes", DateTime.Now)); 50 () => agenda.Publicar("Van para publicar", "jjmontes", DateTime.Now,
51 urlInvitacion));
49 repository.Verify(p => p.Save(It.IsAny<Evento>()), Times.Exactly(0)); 52 repository.Verify(p => p.Save(It.IsAny<Evento>()), Times.Exactly(0));
50 } 53 }
51 54
52 [Test] 55 [Test]
53 public void Intentar_publicar_evento_sin_usuario_autenticado() 56 public void Intentar_publicar_evento_sin_usuario_autenticado()
57 var publicador = new Mock<IPublicador>(); 60 var publicador = new Mock<IPublicador>();
58 var repository = new Mock<IEventoRepository>(); 61 var repository = new Mock<IEventoRepository>();
59 62
60 var agenda = new Agenda(publicador.Object, null, repository.Object, DefaultPonenteRepository); 63 var agenda = new Agenda(publicador.Object, null, repository.Object, DefaultPonenteRepository);
61 64
62 Assert.Throws<UsuarioNoAutenticadoException>(() => agenda.Publicar("Van para publicar", "jjmontes", DateTime.Now)); 65 Assert.Throws<UsuarioNoAutenticadoException>(() => agenda.Publicar("Van para publicar", "jjmontes", DateTime.Now,
66 urlInvitacion));
63 67
64 publicador.Verify(p => p.Publicar(It.IsAny<Evento>()), Times.Exactly(0)); 68 publicador.Verify(p => p.Publicar(It.IsAny<Evento>()), Times.Exactly(0));
65 repository.Verify(p => p.Save(It.IsAny<Evento>()), Times.Exactly(0)); 69 repository.Verify(p => p.Save(It.IsAny<Evento>()), Times.Exactly(0));
66 } 70 }
67 71
68 [Test] 72 [Test]
69 public void Intentar_publicar_evento_sin_ponente() 73 public void Intentar_publicar_evento_sin_ponente()
70 { 74 {
71 var agenda = new Agenda(null, null, DefaultEventoRepository, DefaultPonenteRepository); 75 var agenda = new Agenda(null, null, DefaultEventoRepository, DefaultPonenteRepository);
72 76
73 var r = agenda.Publicar("Van para publicar", string.Empty, DateTime.Now); 77 var r = agenda.Publicar("Van para publicar", string.Empty, DateTime.Now,
78 urlInvitacion);
74 79
75 Assert.IsFalse(r.Succeful); 80 Assert.IsFalse(r.Succeful);
76 } 81 }
77 82
78 [Test] 83 [Test]
82 var publicador2 = new Mock<IPublicador>(); 87 var publicador2 = new Mock<IPublicador>();
83 88
84 var repository = new Mock<IEventoRepository>(); 89 var repository = new Mock<IEventoRepository>();
85 90
86 var agenda = new Agenda(new CompositePublicador(new[] {publicador1.Object, publicador2.Object}), null, 91 var agenda = new Agenda(new CompositePublicador(new[] {publicador1.Object, publicador2.Object}), null,
87 repository.Object, DefaultPonenteRepository); 92 repository.Object, DefaultPonenteRepository);
88 93
89 agenda.Publicar("Van para publicar", "jjmontes", DateTime.Now); 94 agenda.Publicar("Van para publicar", "jjmontes", DateTime.Now,
95 urlInvitacion);
90 96
91 publicador1.Verify(p => p.Publicar(It.IsAny<Evento>()), Times.Exactly(1)); 97 publicador1.Verify(p => p.Publicar(It.IsAny<Evento>()), Times.Exactly(1));
92 publicador2.Verify(p => p.Publicar(It.IsAny<Evento>()), Times.Exactly(1)); 98 publicador2.Verify(p => p.Publicar(It.IsAny<Evento>()), Times.Exactly(1));
93 repository.Verify(p => p.Save(It.IsAny<Evento>()), Times.Exactly(1)); 99 repository.Verify(p => p.Save(It.IsAny<Evento>()), Times.Exactly(1));
94 } 100 }
98 { 104 {
99 var publicador = new Mock<IPublicador>(); 105 var publicador = new Mock<IPublicador>();
100 106
101 var agenda = new Agenda(publicador.Object, null, DefaultEventoRepository, DefaultPonenteRepository); 107 var agenda = new Agenda(publicador.Object, null, DefaultEventoRepository, DefaultPonenteRepository);
102 108
103 agenda.Publicar("Van para publicar", "jjmontes", DateTime.Now); 109 agenda.Publicar("Van para publicar", "jjmontes", DateTime.Now,
110 urlInvitacion);
104 var eventos = agenda.GetEventosPublicados(); 111 var eventos = agenda.GetEventosPublicados();
105 Assert.AreEqual(1, eventos.Count); 112 Assert.AreEqual(1, eventos.Count);
106 113
107 publicador.Verify(p => p.Publicar(It.IsAny<Evento>()), Times.Exactly(1)); 114 publicador.Verify(p => p.Publicar(It.IsAny<Evento>()), Times.Exactly(1));
108 115
121 var repository = DefaultEventoRepository; 128 var repository = DefaultEventoRepository;
122 var publicador = new Mock<IPublicador>(); 129 var publicador = new Mock<IPublicador>();
123 130
124 var agenda = new Agenda(publicador.Object, null, repository, DefaultPonenteRepository); 131 var agenda = new Agenda(publicador.Object, null, repository, DefaultPonenteRepository);
125 132
126 agenda.Publicar("Van para publicar", "jjmontes", DateTime.Now); 133 agenda.Publicar("Van para publicar", "jjmontes", DateTime.Now,
134 urlInvitacion);
127 135
128 publicador.Verify(p => p.Publicar(It.IsAny<Evento>()), Times.Exactly(1)); 136 publicador.Verify(p => p.Publicar(It.IsAny<Evento>()), Times.Exactly(1));
129 137
130 var evento = repository.GetEventosConFecha().First(); 138 var evento = repository.GetEventosConFecha().First();
131 Assert.AreNotEqual(Guid.Empty, evento.Id); 139 Assert.AreNotEqual(Guid.Empty, evento.Id);
152 var publicador1 = new Mock<IPublicador>(); 160 var publicador1 = new Mock<IPublicador>();
153 var publicador2 = new Mock<IPublicador>(); 161 var publicador2 = new Mock<IPublicador>();
154 var recordador1 = new Mock<IRecordador>(); 162 var recordador1 = new Mock<IRecordador>();
155 163
156 var agenda = new Agenda(new CompositePublicador(new[] {publicador1.Object, publicador2.Object}), recordador1.Object, 164 var agenda = new Agenda(new CompositePublicador(new[] {publicador1.Object, publicador2.Object}), recordador1.Object,
157 DefaultEventoRepository, DefaultPonenteRepository); 165 DefaultEventoRepository, DefaultPonenteRepository);
158 166
159 agenda.Publicar("Van para publicar", "jjmontes", DateTime.Now); 167 agenda.Publicar("Van para publicar", "jjmontes", DateTime.Now,
168 urlInvitacion);
160 169
161 var van = agenda.GetEventosPublicados().Single(v => v.Titulo == "Van para publicar"); 170 var van = agenda.GetEventosPublicados().Single(v => v.Titulo == "Van para publicar");
162 agenda.Recordar(van.Id); 171 agenda.Recordar(van.Id);
163 172
164 publicador1.Verify(p => p.Publicar(It.IsAny<Evento>()), Times.Exactly(1)); 173 publicador1.Verify(p => p.Publicar(It.IsAny<Evento>()), Times.Exactly(1));