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