comparison Agendas/trunk/src/Agendas.Repositories.Tests/EventoCrud.cs @ 235:c61954d24c8c

Quitando ponente principal y utilizando siempre la lista de ponentes
author nelopauselli
date Tue, 04 Oct 2011 20:42:35 -0300
parents f23ee59ef1bd
children 51faeabfb9d9
comparison
equal deleted inserted replaced
231:e5959f3405e0 235:c61954d24c8c
1 using System; 1 using System;
2 using System.Collections.Generic;
2 using System.Linq; 3 using System.Linq;
3 using Agendas.Repositories.Tests.Infraestructure; 4 using Agendas.Repositories.Tests.Infraestructure;
4 using AltNetHispano.Agendas.Domain; 5 using AltNetHispano.Agendas.Domain;
5 using AltNetHispano.Agendas.Domain.Repositories; 6 using AltNetHispano.Agendas.Domain.Repositories;
6 using Moq; 7 using Moq;
39 40
40 private Guid CreateEvento() 41 private Guid CreateEvento()
41 { 42 {
42 using (_requestEmulator.Invoke()) 43 using (_requestEmulator.Invoke())
43 { 44 {
44 var ponente = new Persona("Carlos Blé") {Twitter = "carlosble"};
45 _personaRepository.Save(ponente);
46
47 var colaboradores = new[] 45 var colaboradores = new[]
48 { 46 {
47 new Persona("Carlos Blé") {Twitter = "carlosble"},
49 new Persona("Alejandro Labra") {Twitter = "alejandrolabra"}, 48 new Persona("Alejandro Labra") {Twitter = "alejandrolabra"},
50 new Persona("Carlos Peix") {Twitter = "carlospeix"} 49 new Persona("Carlos Peix") {Twitter = "carlospeix"}
51 }; 50 };
52 51
53 foreach (var colaborador in colaboradores) 52 foreach (var colaborador in colaboradores)
54 _personaRepository.Save(colaborador); 53 _personaRepository.Save(colaborador);
55 54
56 var usuario = new Persona("Nelo") {Twitter = "nelopauselli"}; 55 var usuario = new Persona("Nelo") {Twitter = "nelopauselli"};
57 _personaRepository.Save(usuario); 56 _personaRepository.Save(usuario);
58 57
59 var evento = Evento.Proponer("TDD - Diseño Basado en Ejemplos", ponente, string.Empty, TipoEvento.Van); 58 var evento = Evento.Proponer("TDD - Diseño Basado en Ejemplos", string.Empty, TipoEvento.Van);
60 evento.ActualizarOtrosPonentes(colaboradores); 59 evento.ActualizarOtrosPonentes(colaboradores);
61 60
62 evento.Tracks.First().LogAdd(new TrackLog(TrackLogPropietario.Twitter, "Mensaje", usuario, true)); 61 evento.Tracks.First().LogAdd(new TrackLog(TrackLogPropietario.Twitter, "Mensaje", usuario, true));
63 62
64 _eventoRepository.Save(evento); 63 _eventoRepository.Save(evento);
75 using (_requestEmulator.Invoke()) 74 using (_requestEmulator.Invoke())
76 { 75 {
77 Evento van = _eventoRepository.Get(eventoId); 76 Evento van = _eventoRepository.Get(eventoId);
78 77
79 Assert.IsNotNull(van); 78 Assert.IsNotNull(van);
80 Assert.IsNotNull(van.Ponente); 79 Assert.IsNotNull(van.Ponentes);
81 Assert.AreEqual("Carlos Blé", van.Ponente.Nombre); 80 Assert.IsTrue(van.Ponentes.Any(p => p.Nombre == "Carlos Blé"));
82 81 Assert.IsTrue(van.Ponentes.Any(p => p.Nombre == "Alejandro Labra"));
82 Assert.IsTrue(van.Ponentes.Any(p => p.Nombre == "Carlos Peix"));
83 var track1 = van.Tracks.Where(t => t.Accion == Accion.Proponer).FirstOrDefault(); 83 var track1 = van.Tracks.Where(t => t.Accion == Accion.Proponer).FirstOrDefault();
84 Assert.IsNotNull(track1); 84 Assert.IsNotNull(track1);
85 Assert.AreEqual(van, track1.Evento); 85 Assert.AreEqual(van, track1.Evento);
86 86
87 Assert.AreEqual("TDD - Diseño Basado en Ejemplos", van.Titulo); 87 Assert.AreEqual("TDD - Diseño Basado en Ejemplos", van.Titulo);
88 88
89 Assert.AreEqual(2, van.OtrosPonentes.Count()); 89 Assert.AreEqual(3, van.Ponentes.Count());
90 } 90 }
91 } 91 }
92 92
93 [Test] 93 [Test]
94 public void Update() 94 public void Update()
106 van.CambiarTitulo("TDD & Ejemplos"); 106 van.CambiarTitulo("TDD & Ejemplos");
107 107
108 var otroPonente = new Persona("José"); 108 var otroPonente = new Persona("José");
109 _personaRepository.Save(otroPonente); 109 _personaRepository.Save(otroPonente);
110 110
111 van.Actualizar(otroPonente, fechaInicio, fechaTermino, null); 111 van.Actualizar(fechaInicio, fechaTermino, null);
112
113 var ponentes = new List<Persona>(van.Ponentes);
114 ponentes.RemoveAll(p => p.Nombre == "Carlos Blé");
115 ponentes.Add(otroPonente);
116
117 van.ActualizarOtrosPonentes(ponentes);
112 118
113 _eventoRepository.Update(van); 119 _eventoRepository.Update(van);
114 } 120 }
115 121
116 using (_requestEmulator.Invoke()) 122 using (_requestEmulator.Invoke())
117 { 123 {
118 Evento van = _eventoRepository.Get(eventoId); 124 Evento van = _eventoRepository.Get(eventoId);
119 125
120 Assert.IsNotNull(van); 126 Assert.IsNotNull(van);
121 Assert.IsNotNull(van.Ponente); 127
122 Assert.AreEqual("José", van.Ponente.Nombre); 128 Assert.IsFalse(van.Ponentes.Any(p => p.Nombre == "Carlos Blé"));
129 Assert.IsTrue(van.Ponentes.Any(p => p.Nombre == "Alejandro Labra"));
130 Assert.IsTrue(van.Ponentes.Any(p => p.Nombre == "Carlos Peix"));
131 Assert.IsTrue(van.Ponentes.Any(p => p.Nombre == "José"));
132
123 Assert.AreEqual("TDD & Ejemplos", van.Titulo); 133 Assert.AreEqual("TDD & Ejemplos", van.Titulo);
124 Assert.AreEqual(new DateTime(2010, 04, 17).ToUniversalTime(), van.FechaInicio); 134 Assert.AreEqual(new DateTime(2010, 04, 17).ToUniversalTime(), van.FechaInicio);
125 Assert.AreEqual(fechaTermino, van.FechaTermino); 135 Assert.AreEqual(fechaTermino, van.FechaTermino);
126 136
127 var ponente1 = _personaRepository.GetByNombre("Carlos Blé"); 137 var ponente1 = _personaRepository.GetByNombre("Carlos Blé");
168 using (_requestEmulator.Invoke()) 178 using (_requestEmulator.Invoke())
169 { 179 {
170 Evento evento = _eventoRepository.Get(eventoId); 180 Evento evento = _eventoRepository.Get(eventoId);
171 Assert.AreEqual(EventoPropuestoState.GetInstance(), evento.Estado); 181 Assert.AreEqual(EventoPropuestoState.GetInstance(), evento.Estado);
172 182
173 evento.Agendar(evento.Ponente, evento.FechaInicio, evento.FechaTermino, null); 183 evento.Agendar(evento.FechaInicio, evento.FechaTermino, null);
174 } 184 }
175 185
176 using (_requestEmulator.Invoke()) 186 using (_requestEmulator.Invoke())
177 { 187 {
178 Evento evento = _eventoRepository.Get(eventoId); 188 Evento evento = _eventoRepository.Get(eventoId);