Mercurial > altnet-hispano
comparison Agendas/trunk/src/Agendas.Tests/PulicarTests.cs @ 50:3ebe89c88caa
Agregando propiedad al Evento sobre el Usuario que lo crea o que realizó la
última modificación.
author | nelopauselli |
---|---|
date | Fri, 13 May 2011 23:29:05 -0300 |
parents | 2edc705aae0a |
children | 4a63a73e38e4 |
comparison
equal
deleted
inserted
replaced
49:be7a9720fb96 | 50:3ebe89c88caa |
---|---|
1 using System; | 1 using System; |
2 using System.Linq; | 2 using System.Linq; |
3 using AltNetHispano.Agendas.Domain; | 3 using AltNetHispano.Agendas.Domain; |
4 using AltNetHispano.Agendas.Domain.Exceptions; | |
4 using AltNetHispano.Agendas.Domain.Repositories; | 5 using AltNetHispano.Agendas.Domain.Repositories; |
5 using Moq; | 6 using Moq; |
6 using NUnit.Framework; | 7 using NUnit.Framework; |
7 | 8 |
8 namespace AltNetHispano.Agendas.Tests | 9 namespace AltNetHispano.Agendas.Tests |
13 [Test] | 14 [Test] |
14 public void Publicar_van_con_usuario_autenticado() | 15 public void Publicar_van_con_usuario_autenticado() |
15 { | 16 { |
16 var publicador = new Mock<IPublicador>(); | 17 var publicador = new Mock<IPublicador>(); |
17 | 18 |
18 var agenda = new Agenda(publicador.Object, null, SeguridadServiceDefault, DefaultEventoRepository, DefaultPonenteRepository); | 19 var agenda = new Agenda(publicador.Object, null, DefaultEventoRepository, DefaultPonenteRepository); |
19 | 20 |
20 agenda.Publicar("Van para publicar", "jjmontes", DateTime.Now); | 21 agenda.Publicar("Van para publicar", "jjmontes", DateTime.Now); |
21 Assert.AreEqual(1, agenda.GetEventosPublicados().Count); | 22 Assert.AreEqual(1, agenda.GetEventosPublicados().Count); |
22 | 23 |
23 publicador.Verify(p => p.Publicar(It.IsAny<Evento>()), Times.Exactly(1)); | 24 publicador.Verify(p => p.Publicar(It.IsAny<Evento>()), Times.Exactly(1)); |
24 } | 25 } |
25 | 26 |
26 [Test] | 27 [Test] |
27 public void Publicar_van_sin_usuario_autenticado() { | 28 public void Publicar_van_sin_usuario_autenticado() |
28 var seguridad = new Mock<ISeguridad>(); | 29 { |
29 seguridad.Setup(s => s.GetPrincipal()).Returns(SeguridadObjectMother.GetGenericPrincipalSinAutenticar()); | 30 SetCurrentUser(null); |
30 | 31 |
31 var publicador = new Mock<IPublicador>(); | 32 var publicador = new Mock<IPublicador>(); |
32 var repository = new Mock<IEventoRepository>(); | 33 var repository = new Mock<IEventoRepository>(); |
33 | 34 |
34 var agenda = new Agenda(publicador.Object, null, seguridad.Object, repository.Object, DefaultPonenteRepository); | 35 var agenda = new Agenda(publicador.Object, null, repository.Object, DefaultPonenteRepository); |
35 | 36 |
36 Assert.Throws<UsuarioNoAutenticadoException>(() => agenda.Publicar("Van para publicar", "jjmontes", DateTime.Now)); | 37 Assert.Throws<UsuarioNoAutenticadoException>(() => agenda.Publicar("Van para publicar", "jjmontes", DateTime.Now)); |
37 | 38 |
38 publicador.Verify(p => p.Publicar(It.IsAny<Evento>()), Times.Exactly(0)); | 39 publicador.Verify(p => p.Publicar(It.IsAny<Evento>()), Times.Exactly(0)); |
39 repository.Verify(p => p.Save(It.IsAny<Evento>()), Times.Exactly(0)); | 40 repository.Verify(p => p.Save(It.IsAny<Evento>()), Times.Exactly(0)); |
40 } | 41 } |
41 | 42 |
42 [Test] | 43 [Test] |
43 public void Publicar_van_sin_servicio_de_seguridad() | 44 public void Publicar_van_sin_servicio_de_seguridad() |
44 { | 45 { |
46 IdentityContext.Current = null; | |
47 | |
45 var publicador = new Mock<IPublicador>(); | 48 var publicador = new Mock<IPublicador>(); |
46 var repository = new Mock<IEventoRepository>(); | 49 var repository = new Mock<IEventoRepository>(); |
47 | 50 |
48 var agenda = new Agenda(publicador.Object, null, null, repository.Object, DefaultPonenteRepository); | 51 var agenda = new Agenda(publicador.Object, null, repository.Object, DefaultPonenteRepository); |
49 | 52 |
50 Assert.Throws<UsuarioNoAutenticadoException>(() => agenda.Publicar("Van para publicar", "jjmontes", DateTime.Now)); | 53 Assert.Throws<IdentityContextNotConfiguredException>(() => agenda.Publicar("Van para publicar", "jjmontes", DateTime.Now)); |
51 repository.Verify(p => p.Save(It.IsAny<Evento>()), Times.Exactly(0)); | 54 repository.Verify(p => p.Save(It.IsAny<Evento>()), Times.Exactly(0)); |
52 } | 55 } |
53 | 56 |
54 [Test] | 57 [Test] |
55 public void Error_al_publicar_van() | 58 public void Error_al_publicar_van() |
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 publicador.Setup(p => p.Publicar(It.IsAny<Evento>())).Throws(new Exception("Error intencional")); | 63 publicador.Setup(p => p.Publicar(It.IsAny<Evento>())).Throws(new Exception("Error intencional")); |
61 | 64 |
62 var agenda = new Agenda(publicador.Object, null, SeguridadServiceDefault, repository.Object, DefaultPonenteRepository); | 65 var agenda = new Agenda(publicador.Object, null, repository.Object, DefaultPonenteRepository); |
63 | 66 |
64 Assert.Throws<Exception>(() => agenda.Publicar("Van para publicar", "jjmontes", DateTime.Now)); | 67 Assert.Throws<Exception>(() => agenda.Publicar("Van para publicar", "jjmontes", DateTime.Now)); |
65 Assert.AreEqual(0, agenda.GetEventosPublicados().Count); | 68 Assert.AreEqual(0, agenda.GetEventosPublicados().Count); |
66 | 69 |
67 publicador.Verify(p => p.Publicar(It.IsAny<Evento>()), Times.Exactly(1)); | 70 publicador.Verify(p => p.Publicar(It.IsAny<Evento>()), Times.Exactly(1)); |
74 var publicador1 = new Mock<IPublicador>(); | 77 var publicador1 = new Mock<IPublicador>(); |
75 var publicador2 = new Mock<IPublicador>(); | 78 var publicador2 = new Mock<IPublicador>(); |
76 | 79 |
77 var repository = new Mock<IEventoRepository>(); | 80 var repository = new Mock<IEventoRepository>(); |
78 | 81 |
79 var agenda = new Agenda(new CompositePublicador(new[] { publicador1.Object, publicador2.Object }), null, SeguridadServiceDefault, repository.Object, DefaultPonenteRepository); | 82 var agenda = new Agenda(new CompositePublicador(new[] { publicador1.Object, publicador2.Object }), null, repository.Object, DefaultPonenteRepository); |
80 | 83 |
81 agenda.Publicar("Van para publicar", "jjmontes", DateTime.Now); | 84 agenda.Publicar("Van para publicar", "jjmontes", DateTime.Now); |
82 | 85 |
83 publicador1.Verify(p => p.Publicar(It.IsAny<Evento>()), Times.Exactly(1)); | 86 publicador1.Verify(p => p.Publicar(It.IsAny<Evento>()), Times.Exactly(1)); |
84 publicador2.Verify(p => p.Publicar(It.IsAny<Evento>()), Times.Exactly(1)); | 87 publicador2.Verify(p => p.Publicar(It.IsAny<Evento>()), Times.Exactly(1)); |
90 { | 93 { |
91 var publicador1 = new Mock<IPublicador>(); | 94 var publicador1 = new Mock<IPublicador>(); |
92 var publicador2 = new Mock<IPublicador>(); | 95 var publicador2 = new Mock<IPublicador>(); |
93 var recordador1 = new Mock<IRecordador>(); | 96 var recordador1 = new Mock<IRecordador>(); |
94 | 97 |
95 var agenda = new Agenda(new CompositePublicador(new[] { publicador1.Object, publicador2.Object }), recordador1.Object, SeguridadServiceDefault, DefaultEventoRepository, DefaultPonenteRepository); | 98 var agenda = new Agenda(new CompositePublicador(new[] { publicador1.Object, publicador2.Object }), recordador1.Object, DefaultEventoRepository, DefaultPonenteRepository); |
96 | 99 |
97 agenda.Publicar("Van para publicar", "jjmontes", DateTime.Now); | 100 agenda.Publicar("Van para publicar", "jjmontes", DateTime.Now); |
98 | 101 |
99 var van = agenda.GetEventosPublicados().Single(v => v.Titulo == "Van para publicar"); | 102 var van = agenda.GetEventosPublicados().Single(v => v.Titulo == "Van para publicar"); |
100 agenda.Recordar(van.Id); | 103 agenda.Recordar(van.Id); |
108 public void Publicar_y_modificar_van() | 111 public void Publicar_y_modificar_van() |
109 { | 112 { |
110 var repository = DefaultEventoRepository; | 113 var repository = DefaultEventoRepository; |
111 var publicador = new Mock<IPublicador>(); | 114 var publicador = new Mock<IPublicador>(); |
112 | 115 |
113 var agenda = new Agenda(publicador.Object, null, SeguridadServiceDefault, repository, DefaultPonenteRepository); | 116 var agenda = new Agenda(publicador.Object, null, repository, DefaultPonenteRepository); |
114 | 117 |
115 agenda.Publicar("Van para publicar", "jjmontes", DateTime.Now); | 118 agenda.Publicar("Van para publicar", "jjmontes", DateTime.Now); |
116 | 119 |
117 publicador.Verify(p => p.Publicar(It.IsAny<Evento>()), Times.Exactly(1)); | 120 publicador.Verify(p => p.Publicar(It.IsAny<Evento>()), Times.Exactly(1)); |
118 | 121 |