Mercurial > altnet-hispano
annotate Agendas/trunk/src/Agendas.Tests/Cruds/EventoCrud.cs @ 120:c3573defd18f
Agregado de Fecha, Usuario y Successful en TrackLog
Modificacion de publicador de blog para usar TrackLog
Agregado de TrackLog en el test de crud de eventos
Fix en publicador de twitter para que no twitee si ya se encuentra en TrackLog pero con Successful en true
author | Jorge@Jorge-PC |
---|---|
date | Fri, 24 Jun 2011 21:18:21 -0300 |
parents | 80c22175c9b5 |
children | 3639803112c6 |
rev | line source |
---|---|
60 | 1 using System; |
62
c40b97bbed01
Verificando persistencia de Ponentes y Tracks en tests de CRUD
nelopauselli
parents:
60
diff
changeset
|
2 using System.Linq; |
60 | 3 using AltNetHispano.Agendas.Domain; |
4 using AltNetHispano.Agendas.Domain.Repositories; | |
5 using NUnit.Framework; | |
6 | |
7 namespace AltNetHispano.Agendas.Tests.Cruds | |
8 { | |
9 public class EventoCrud | |
10 { | |
62
c40b97bbed01
Verificando persistencia de Ponentes y Tracks en tests de CRUD
nelopauselli
parents:
60
diff
changeset
|
11 private readonly IEventoRepository _eventoRepository; |
60 | 12 private readonly Func<IDisposable> _requestEmulator; |
94
db4b1e2cae49
Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents:
87
diff
changeset
|
13 private readonly IPersonaRepository _personaRepository; |
60 | 14 |
94
db4b1e2cae49
Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents:
87
diff
changeset
|
15 public EventoCrud(Func<IEventoRepository> createEventoRepository, Func<IPersonaRepository> createPonenteRepository, Func<IDisposable> requestEmulator) |
60 | 16 { |
62
c40b97bbed01
Verificando persistencia de Ponentes y Tracks en tests de CRUD
nelopauselli
parents:
60
diff
changeset
|
17 _eventoRepository = createEventoRepository.Invoke(); |
94
db4b1e2cae49
Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents:
87
diff
changeset
|
18 _personaRepository = createPonenteRepository.Invoke(); |
62
c40b97bbed01
Verificando persistencia de Ponentes y Tracks en tests de CRUD
nelopauselli
parents:
60
diff
changeset
|
19 |
60 | 20 _requestEmulator = requestEmulator; |
21 } | |
22 | |
23 public Guid Create() | |
24 { | |
25 using (_requestEmulator.Invoke()) | |
26 { | |
94
db4b1e2cae49
Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents:
87
diff
changeset
|
27 var ponente = new Persona("Carlos Blé"); |
db4b1e2cae49
Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents:
87
diff
changeset
|
28 _personaRepository.Save(ponente); |
60 | 29 |
120
c3573defd18f
Agregado de Fecha, Usuario y Successful en TrackLog
Jorge@Jorge-PC
parents:
106
diff
changeset
|
30 var usuario = new Persona("Nelo"); |
c3573defd18f
Agregado de Fecha, Usuario y Successful en TrackLog
Jorge@Jorge-PC
parents:
106
diff
changeset
|
31 _personaRepository.Save(usuario); |
c3573defd18f
Agregado de Fecha, Usuario y Successful en TrackLog
Jorge@Jorge-PC
parents:
106
diff
changeset
|
32 |
c3573defd18f
Agregado de Fecha, Usuario y Successful en TrackLog
Jorge@Jorge-PC
parents:
106
diff
changeset
|
33 var evento = Evento.Proponer("TDD - Diseño Basado en Ejemplos", ponente, string.Empty, TipoEvento.Van); |
c3573defd18f
Agregado de Fecha, Usuario y Successful en TrackLog
Jorge@Jorge-PC
parents:
106
diff
changeset
|
34 evento.Tracks.First().LogAdd(new TrackLog(TrackLogPropietario.Twitter, "Mensaje", usuario, true)); |
c3573defd18f
Agregado de Fecha, Usuario y Successful en TrackLog
Jorge@Jorge-PC
parents:
106
diff
changeset
|
35 |
87
26d0513a8410
A los publicadores les llega la lista de tracks producidos en la acción realizada
nelopauselli
parents:
80
diff
changeset
|
36 _eventoRepository.Save(evento); |
60 | 37 |
87
26d0513a8410
A los publicadores les llega la lista de tracks producidos en la acción realizada
nelopauselli
parents:
80
diff
changeset
|
38 return evento.Id; |
60 | 39 } |
40 } | |
41 | |
42 public void Read() | |
43 { | |
44 Guid eventoId = Create(); | |
45 | |
46 using (_requestEmulator.Invoke()) | |
47 { | |
62
c40b97bbed01
Verificando persistencia de Ponentes y Tracks en tests de CRUD
nelopauselli
parents:
60
diff
changeset
|
48 Evento van = _eventoRepository.Get(eventoId); |
60 | 49 |
50 Assert.IsNotNull(van); | |
97
2434c2323f3d
En el evento, volvemos a llamar Ponente a la persona que está a cargo de la presentación
Nelo@Kenia.neluz.int
parents:
95
diff
changeset
|
51 Assert.IsNotNull(van.Ponente); |
2434c2323f3d
En el evento, volvemos a llamar Ponente a la persona que está a cargo de la presentación
Nelo@Kenia.neluz.int
parents:
95
diff
changeset
|
52 Assert.AreEqual("Carlos Blé", van.Ponente.Nombre); |
62
c40b97bbed01
Verificando persistencia de Ponentes y Tracks en tests de CRUD
nelopauselli
parents:
60
diff
changeset
|
53 |
80
c2d98fd6593f
Track como objeto identificable y con referencia al evento correspondiente.
nelopauselli
parents:
79
diff
changeset
|
54 var track1 = van.Tracks.Where(t => t.Accion == Accion.Proponer).FirstOrDefault(); |
c2d98fd6593f
Track como objeto identificable y con referencia al evento correspondiente.
nelopauselli
parents:
79
diff
changeset
|
55 Assert.IsNotNull(track1); |
c2d98fd6593f
Track como objeto identificable y con referencia al evento correspondiente.
nelopauselli
parents:
79
diff
changeset
|
56 Assert.AreEqual(van, track1.Evento); |
62
c40b97bbed01
Verificando persistencia de Ponentes y Tracks en tests de CRUD
nelopauselli
parents:
60
diff
changeset
|
57 |
60 | 58 Assert.AreEqual("TDD - Diseño Basado en Ejemplos", van.Titulo); |
59 } | |
60 } | |
61 | |
62 public void Update() | |
63 { | |
64 Guid eventoId = Create(); | |
65 | |
66 using (_requestEmulator.Invoke()) | |
67 { | |
62
c40b97bbed01
Verificando persistencia de Ponentes y Tracks en tests de CRUD
nelopauselli
parents:
60
diff
changeset
|
68 Evento van = _eventoRepository.Get(eventoId); |
60 | 69 |
70 Assert.IsNotNull(van); | |
71 | |
72 van.CambiarTitulo("TDD & Ejemplos"); | |
62
c40b97bbed01
Verificando persistencia de Ponentes y Tracks en tests de CRUD
nelopauselli
parents:
60
diff
changeset
|
73 |
94
db4b1e2cae49
Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents:
87
diff
changeset
|
74 var otroPonente = new Persona("José"); |
db4b1e2cae49
Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents:
87
diff
changeset
|
75 _personaRepository.Save(otroPonente); |
60 | 76 |
79
8df9db937434
Url de invitación en la UI: validación y persistencia
nelopauselli
parents:
75
diff
changeset
|
77 van.Actualizar(otroPonente, new DateTime(2010, 04, 17), null); |
62
c40b97bbed01
Verificando persistencia de Ponentes y Tracks en tests de CRUD
nelopauselli
parents:
60
diff
changeset
|
78 |
c40b97bbed01
Verificando persistencia de Ponentes y Tracks en tests de CRUD
nelopauselli
parents:
60
diff
changeset
|
79 _eventoRepository.Update(van); |
60 | 80 } |
81 | |
82 using (_requestEmulator.Invoke()) | |
83 { | |
62
c40b97bbed01
Verificando persistencia de Ponentes y Tracks en tests de CRUD
nelopauselli
parents:
60
diff
changeset
|
84 Evento van = _eventoRepository.Get(eventoId); |
60 | 85 |
86 Assert.IsNotNull(van); | |
97
2434c2323f3d
En el evento, volvemos a llamar Ponente a la persona que está a cargo de la presentación
Nelo@Kenia.neluz.int
parents:
95
diff
changeset
|
87 Assert.IsNotNull(van.Ponente); |
2434c2323f3d
En el evento, volvemos a llamar Ponente a la persona que está a cargo de la presentación
Nelo@Kenia.neluz.int
parents:
95
diff
changeset
|
88 Assert.AreEqual("José", van.Ponente.Nombre); |
60 | 89 Assert.AreEqual("TDD & Ejemplos", van.Titulo); |
90 Assert.AreEqual(new DateTime(2010, 04, 17), van.Fecha); | |
62
c40b97bbed01
Verificando persistencia de Ponentes y Tracks en tests de CRUD
nelopauselli
parents:
60
diff
changeset
|
91 |
94
db4b1e2cae49
Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents:
87
diff
changeset
|
92 var ponente1 = _personaRepository.GetByNombre("Carlos Blé"); |
62
c40b97bbed01
Verificando persistencia de Ponentes y Tracks en tests de CRUD
nelopauselli
parents:
60
diff
changeset
|
93 Assert.IsNotNull(ponente1); |
c40b97bbed01
Verificando persistencia de Ponentes y Tracks en tests de CRUD
nelopauselli
parents:
60
diff
changeset
|
94 |
94
db4b1e2cae49
Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents:
87
diff
changeset
|
95 var ponente2 = _personaRepository.GetByNombre("José"); |
62
c40b97bbed01
Verificando persistencia de Ponentes y Tracks en tests de CRUD
nelopauselli
parents:
60
diff
changeset
|
96 Assert.IsNotNull(ponente2); |
c40b97bbed01
Verificando persistencia de Ponentes y Tracks en tests de CRUD
nelopauselli
parents:
60
diff
changeset
|
97 |
c40b97bbed01
Verificando persistencia de Ponentes y Tracks en tests de CRUD
nelopauselli
parents:
60
diff
changeset
|
98 Assert.AreEqual(1, van.Tracks.Where(t => t.Accion == Accion.Proponer).Count()); |
c40b97bbed01
Verificando persistencia de Ponentes y Tracks en tests de CRUD
nelopauselli
parents:
60
diff
changeset
|
99 Assert.AreEqual(1, van.Tracks.Where(t => t.Accion == Accion.Modificar).Count()); |
60 | 100 } |
101 } | |
102 | |
103 public void Delete() | |
104 { | |
105 Guid eventoId = Create(); | |
106 | |
107 using (_requestEmulator.Invoke()) | |
108 { | |
62
c40b97bbed01
Verificando persistencia de Ponentes y Tracks en tests de CRUD
nelopauselli
parents:
60
diff
changeset
|
109 Evento van = _eventoRepository.Get(eventoId); |
c40b97bbed01
Verificando persistencia de Ponentes y Tracks en tests de CRUD
nelopauselli
parents:
60
diff
changeset
|
110 Assert.IsNotNull(van); |
60 | 111 |
62
c40b97bbed01
Verificando persistencia de Ponentes y Tracks en tests de CRUD
nelopauselli
parents:
60
diff
changeset
|
112 _eventoRepository.Delete(van); |
60 | 113 } |
114 | |
115 using (_requestEmulator.Invoke()) | |
116 { | |
62
c40b97bbed01
Verificando persistencia de Ponentes y Tracks en tests de CRUD
nelopauselli
parents:
60
diff
changeset
|
117 Evento van = _eventoRepository.Get(eventoId); |
60 | 118 |
119 Assert.IsNull(van); | |
62
c40b97bbed01
Verificando persistencia de Ponentes y Tracks en tests de CRUD
nelopauselli
parents:
60
diff
changeset
|
120 |
94
db4b1e2cae49
Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents:
87
diff
changeset
|
121 var ponente = _personaRepository.GetByNombre("Carlos Blé"); |
62
c40b97bbed01
Verificando persistencia de Ponentes y Tracks en tests de CRUD
nelopauselli
parents:
60
diff
changeset
|
122 |
c40b97bbed01
Verificando persistencia de Ponentes y Tracks en tests de CRUD
nelopauselli
parents:
60
diff
changeset
|
123 Assert.IsNotNull(ponente); |
60 | 124 } |
125 } | |
126 } | |
127 } |