comparison Agendas/trunk/src/Agendas.Tests/PonentesTests.cs @ 61:cb3f7b47c1f0

Relación de Ponente a Eventos de los que es el ponente.
author nelopauselli
date Tue, 17 May 2011 01:27:03 -0300
parents 4a4e12e32256
children c7264bfc4b71
comparison
equal deleted inserted replaced
60:02e163f2ca38 61:cb3f7b47c1f0
1 using System; 1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
2 using AltNetHispano.Agendas.Domain; 4 using AltNetHispano.Agendas.Domain;
3 using Moq; 5 using Moq;
4 using NUnit.Framework; 6 using NUnit.Framework;
5 7
6 namespace AltNetHispano.Agendas.Tests 8 namespace AltNetHispano.Agendas.Tests
16 var agenda = new Agenda(publicador.Object, null, DefaultEventoRepository, DefaultPonenteRepository); 18 var agenda = new Agenda(publicador.Object, null, DefaultEventoRepository, DefaultPonenteRepository);
17 19
18 agenda.Publicar("Audit (parallel model) con NHibernate 3", "Fabio Maulo", new DateTime(2011, 2, 26)); 20 agenda.Publicar("Audit (parallel model) con NHibernate 3", "Fabio Maulo", new DateTime(2011, 2, 26));
19 agenda.Publicar("Conform - Parte 2", "Fabio Maulo", new DateTime(2011, 3, 5)); 21 agenda.Publicar("Conform - Parte 2", "Fabio Maulo", new DateTime(2011, 3, 5));
20 22
21 Assert.AreEqual(2, agenda.GetEventosPublicados().Count); 23 var eventos = agenda.GetEventosPublicados();
24 Assert.AreEqual(2, eventos.Count);
22 25
23 publicador.Verify(p => p.Publicar(It.IsAny<Evento>()), Times.Exactly(2)); 26 publicador.Verify(p => p.Publicar(It.IsAny<Evento>()), Times.Exactly(2));
24 27
25 Assert.AreEqual(1, DefaultPonenteRepository.GetAll().Count); 28 Assert.AreEqual(1, DefaultPonenteRepository.GetAll().Count);
29
30 var evento = eventos[0];
31
32 Assert.IsNotNull(evento.Ponente);
33 var ponente = evento.Ponente;
34 Assert.IsNotNull(evento.Ponente.Eventos);
35 Assert.Contains(eventos[0], new List<Evento>(ponente.Eventos));
36 Assert.Contains(eventos[1], new List<Evento>(ponente.Eventos));
26 } 37 }
27 38
28 [Test] 39 [Test]
29 public void Publicar_evento_con_ponente_registrado() 40 public void Publicar_evento_con_ponente_registrado()
30 { 41 {
76 87
77 const string titulo = "Audit (parallel model) con NHibernate 3"; 88 const string titulo = "Audit (parallel model) con NHibernate 3";
78 Guid eventoId; 89 Guid eventoId;
79 90
80 agenda.Proponer(titulo, "Fabio"); 91 agenda.Proponer(titulo, "Fabio");
92 Ponente ponente;
81 { 93 {
82 var eventos = agenda.GetEventosPropuestos(); 94 var eventos = agenda.GetEventosPropuestos();
83 Assert.AreEqual(1, eventos.Count); 95 Assert.AreEqual(1, eventos.Count);
84 96
85 Evento evento = eventos[0]; 97 Evento evento = eventos[0];
86 Assert.AreEqual("Fabio", evento.Ponente.Nombre); 98 Assert.AreEqual("Fabio", evento.Ponente.Nombre);
87 99
88 eventoId = evento.Id; 100 eventoId = evento.Id;
101 ponente = evento.Ponente;
89 } 102 }
90 103
91 agenda.ModificarPropuesta(eventoId, titulo, null); 104 agenda.ModificarPropuesta(eventoId, titulo, null);
92 { 105 {
93 var eventos = agenda.GetEventosPropuestos(); 106 var eventos = agenda.GetEventosPropuestos();
94 Assert.AreEqual(1, eventos.Count); 107 Assert.AreEqual(1, eventos.Count);
95 108
96 Evento evento = eventos[0]; 109 Evento evento = eventos[0];
97 Assert.IsNull(evento.Ponente); 110 Assert.IsNull(evento.Ponente);
98 } 111 }
112
113 Assert.AreEqual(0, ponente.Eventos.Count());
114 }
115
116 [Test]
117 public void Cambiar_ponente_de_un_evento()
118 {
119 var agenda = new Agenda(null, null, DefaultEventoRepository, DefaultPonenteRepository);
120
121 const string titulo = "Audit (parallel model) con NHibernate 3";
122 Guid eventoId;
123
124 agenda.Proponer(titulo, "Fabio");
125 Ponente ponente1;
126 {
127 var eventos = agenda.GetEventosPropuestos();
128 Assert.AreEqual(1, eventos.Count);
129
130 Evento evento = eventos[0];
131 Assert.AreEqual("Fabio", evento.Ponente.Nombre);
132
133 eventoId = evento.Id;
134 ponente1 = evento.Ponente;
135 }
136
137 agenda.ModificarPropuesta(eventoId, titulo, "José");
138 Ponente ponente2;
139 {
140 var eventos = agenda.GetEventosPropuestos();
141 Assert.AreEqual(1, eventos.Count);
142
143 Evento evento = eventos[0];
144 Assert.IsNotNull(evento.Ponente);
145 ponente2 = evento.Ponente;
146 }
147
148 Assert.AreEqual(0, ponente1.Eventos.Count());
149 Assert.AreEqual(1, ponente2.Eventos.Count());
99 } 150 }
100 } 151 }
101 } 152 }