comparison Agendas/trunk/src/Agendas.Tests/Eventos_y_patrocinadores_tests.cs @ 287:eeca9ddb330a

BUG: Los Patrocinadores quedaban asociados a un único evento. Se armó un test que lo demuestra y se modificó el modelo de la base de datos.
author juanjose.montesdeocaarbos
date Mon, 02 Jan 2012 19:44:41 -0300
parents 72a96459f910
children 9bc60d166c8a
comparison
equal deleted inserted replaced
286:a8f7c41e3b47 287:eeca9ddb330a
9 [TestFixture] 9 [TestFixture]
10 public class Eventos_y_patrocinadores_tests : TestBase 10 public class Eventos_y_patrocinadores_tests : TestBase
11 { 11 {
12 private Guid _apressId; 12 private Guid _apressId;
13 private Guid _jetbrainsId; 13 private Guid _jetbrainsId;
14 private Guid _eventoId; 14 private Guid _eventoUnoId;
15 private Guid _eventoDosId;
15 private Agenda _agenda; 16 private Agenda _agenda;
16 17
17 [SetUp] 18 [SetUp]
18 public void CrearDatos() 19 public void CrearDatos()
19 { 20 {
21 var fechaInicio = DateTime.Today.AddDays(7).ToUniversalTime();
22 var fechaTermino = fechaInicio.AddHours(2);
20 _agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository); 23 _agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
21 24
22 _apressId = CrearPatrocinador("Apress", "images/apress.gif"); 25 _apressId = CrearPatrocinador("Apress", "images/apress.gif");
23 _jetbrainsId = CrearPatrocinador("jetbrains", "images/jetbrains.png"); 26 _jetbrainsId = CrearPatrocinador("jetbrains", "images/jetbrains.png");
24 _eventoId = CrearEvento(); 27 _eventoUnoId = CrearEvento(new[] { "Carlos Peix", "Nelo Pauselli" }, "ADFS", fechaInicio, fechaTermino);
28 _eventoDosId = CrearEvento(new[] { "Carlos Peix", "Nelo Pauselli" }, "ADFS: Segunda parte.", fechaInicio.AddDays(3), fechaTermino.AddDays(3));
25 } 29 }
26 30
27 [Test] 31 [Test]
28 public void Indicar_patrociadores() 32 public void Indicar_patrociadores()
29 { 33 {
30 _agenda.IndicarPatrocinadores(_eventoId, new[] { _apressId, _jetbrainsId }); 34 _agenda.IndicarPatrocinadores(_eventoUnoId, new[] { _apressId, _jetbrainsId });
31 35
32 var evento = DefaultEventoRepository.GetActivos().First(); 36 var evento = DefaultEventoRepository.GetActivos().First();
33 Assert.AreNotEqual(Guid.Empty, evento.Id); 37 Assert.AreNotEqual(Guid.Empty, evento.Id);
34 Assert.IsNotNull(evento.FechaInicio); 38 Assert.IsNotNull(evento.FechaInicio);
35 Assert.IsNotNull(evento.Patrocinadores); 39 Assert.IsNotNull(evento.Patrocinadores);
40 44
41 [Test] 45 [Test]
42 public void Agregar_patrociador() 46 public void Agregar_patrociador()
43 { 47 {
44 { 48 {
45 _agenda.IndicarPatrocinadores(_eventoId, new[] { _apressId }); 49 _agenda.IndicarPatrocinadores(_eventoUnoId, new[] { _apressId });
46 50
47 var evento = DefaultEventoRepository.GetActivos().First(); 51 var evento = DefaultEventoRepository.GetActivos().First();
48 Assert.IsTrue(evento.Patrocinadores.Any(p => p.Nombre == "Apress")); 52 Assert.IsTrue(evento.Patrocinadores.Any(p => p.Nombre == "Apress"));
49 Assert.IsFalse(evento.Patrocinadores.Any(p => p.Nombre == "jetbrains")); 53 Assert.IsFalse(evento.Patrocinadores.Any(p => p.Nombre == "jetbrains"));
50 } 54 }
51 55
52 { 56 {
53 _agenda.IndicarPatrocinadores(_eventoId, new[] { _apressId, _jetbrainsId }); 57 _agenda.IndicarPatrocinadores(_eventoUnoId, new[] { _apressId, _jetbrainsId });
54 58
55 var evento = DefaultEventoRepository.GetActivos().First(); 59 var evento = DefaultEventoRepository.GetActivos().First();
56 Assert.IsTrue(evento.Patrocinadores.Any(p => p.Nombre == "Apress")); 60 Assert.IsTrue(evento.Patrocinadores.Any(p => p.Nombre == "Apress"));
57 Assert.IsTrue(evento.Patrocinadores.Any(p => p.Nombre == "jetbrains")); 61 Assert.IsTrue(evento.Patrocinadores.Any(p => p.Nombre == "jetbrains"));
58 } 62 }
60 64
61 [Test] 65 [Test]
62 public void Quitar_patrociador() 66 public void Quitar_patrociador()
63 { 67 {
64 { 68 {
65 _agenda.IndicarPatrocinadores(_eventoId, new[] { _apressId, _jetbrainsId }); 69 _agenda.IndicarPatrocinadores(_eventoUnoId, new[] { _apressId, _jetbrainsId });
66 70
67 var evento = DefaultEventoRepository.GetActivos().First(); 71 var evento = DefaultEventoRepository.GetActivos().First();
68 Assert.IsTrue(evento.Patrocinadores.Any(p => p.Nombre == "Apress")); 72 Assert.IsTrue(evento.Patrocinadores.Any(p => p.Nombre == "Apress"));
69 Assert.IsTrue(evento.Patrocinadores.Any(p => p.Nombre == "jetbrains")); 73 Assert.IsTrue(evento.Patrocinadores.Any(p => p.Nombre == "jetbrains"));
70 } 74 }
71 75
72 { 76 {
73 _agenda.IndicarPatrocinadores(_eventoId, new[] { _apressId }); 77 _agenda.IndicarPatrocinadores(_eventoUnoId, new[] { _apressId });
74 78
75 var evento = DefaultEventoRepository.GetActivos().First(); 79 var evento = DefaultEventoRepository.GetActivos().First();
76 Assert.IsTrue(evento.Patrocinadores.Any(p => p.Nombre == "Apress")); 80 Assert.IsTrue(evento.Patrocinadores.Any(p => p.Nombre == "Apress"));
77 Assert.IsFalse(evento.Patrocinadores.Any(p => p.Nombre == "jetbrains")); 81 Assert.IsFalse(evento.Patrocinadores.Any(p => p.Nombre == "jetbrains"));
78 } 82 }
79 83
80 { 84 {
81 _agenda.IndicarPatrocinadores(_eventoId, new Guid[] { }); 85 _agenda.IndicarPatrocinadores(_eventoUnoId, new Guid[] { });
82 86
83 var evento = DefaultEventoRepository.GetActivos().First(); 87 var evento = DefaultEventoRepository.GetActivos().First();
84 Assert.IsFalse(evento.Patrocinadores.Any()); 88 Assert.IsFalse(evento.Patrocinadores.Any());
85 } 89 }
86 } 90 }
94 patrocinadorRepository.Save(patrocinador); 98 patrocinadorRepository.Save(patrocinador);
95 99
96 return patrocinador.Id; 100 return patrocinador.Id;
97 } 101 }
98 102
99 private Guid CrearEvento() 103 private Guid CrearEvento(string[] nombrePonentes, string nombreEvento, DateTime fechaInicio, DateTime fechaTermino)
100 { 104 {
101 var fechaInicio = DateTime.Today.AddDays(7).ToUniversalTime(); 105 var ponentes = new Guid[nombrePonentes.Length];
102 var fechaTermino = fechaInicio.AddHours(2); 106 for (var nroPonente = 0; nroPonente < nombrePonentes.Length; nroPonente++)
103 var ponentes = new[] {TestsHelper.GetOrCreatePonente("Carlos Peix"), TestsHelper.GetOrCreatePonente("Nelo Pauselli")}; 107 {
104 _agenda.Agendar("ADFS", ponentes, fechaInicio, fechaTermino, null, TipoEvento.Van); 108 ponentes[nroPonente] = TestsHelper.GetOrCreatePonente(nombrePonentes[nroPonente]);
109 }
105 110
106 var evento = DefaultEventoRepository.GetActivos().First(); 111 _agenda.Agendar(nombreEvento, ponentes, fechaInicio, fechaTermino, null, TipoEvento.Van);
112
113 var evento = DefaultEventoRepository.GetActivos().First(e=>e.Titulo == nombreEvento);
107 return evento.Id; 114 return evento.Id;
108 } 115 }
109 116
110 } 117 }
111 } 118 }