comparison Agendas/trunk/src/Agendas.Tests/PonentesTests.cs @ 94:db4b1e2cae49

Cambio del nombre de la clase Ponente a Persona Se agrega la clase Cuenta para identificar cada una de las cuentas con que se puede autenticar una persona Alta Automatica de cuentas de twitter creando la persona
author Nelo@Kenia.neluz.int
date Sat, 04 Jun 2011 12:11:17 -0300
parents 26d0513a8410
children 83d76f6e0a3c
comparison
equal deleted inserted replaced
93:65f0b3d70c18 94:db4b1e2cae49
14 14
15 [Test] 15 [Test]
16 public void Publicar_dos_eventos_con_el_mismo_ponente_no_registrado() 16 public void Publicar_dos_eventos_con_el_mismo_ponente_no_registrado()
17 { 17 {
18 var publicador = new Mock<IPublicador>(); 18 var publicador = new Mock<IPublicador>();
19 Assert.AreEqual(1, DefaultPersonaRepository.GetAll().Count);
19 20
20 var agenda = new Agenda(publicador.Object, DefaultEventoRepository, DefaultPonenteRepository); 21 var agenda = new Agenda(publicador.Object, DefaultEventoRepository, DefaultPersonaRepository);
21 22
22 agenda.Agendar("Audit (parallel model) con NHibernate 3", "Fabio Maulo", new DateTime(2011, 2, 26), 23 agenda.Agendar("Audit (parallel model) con NHibernate 3", "Fabio Maulo", new DateTime(2011, 2, 26),
23 urlInvitacion); 24 urlInvitacion);
24 agenda.Agendar("Conform - Parte 2", "Fabio Maulo", new DateTime(2011, 3, 5), 25 agenda.Agendar("Conform - Parte 2", "Fabio Maulo", new DateTime(2011, 3, 5),
25 urlInvitacion); 26 urlInvitacion);
27 var eventos = agenda.GetEventosAgendados(); 28 var eventos = agenda.GetEventosAgendados();
28 Assert.AreEqual(2, eventos.Count); 29 Assert.AreEqual(2, eventos.Count);
29 30
30 publicador.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(2)); 31 publicador.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(2));
31 32
32 Assert.AreEqual(1, DefaultPonenteRepository.GetAll().Count); 33 Assert.AreEqual(2, DefaultPersonaRepository.GetAll().Count);
33 34
34 var evento = eventos[0]; 35 var evento = eventos[0];
35 36
36 Assert.IsNotNull(evento.Ponente); 37 Assert.IsNotNull(evento.Persona);
37 var ponente = evento.Ponente; 38 var ponente = evento.Persona;
38 Assert.IsNotNull(evento.Ponente.Eventos); 39 Assert.IsNotNull(evento.Persona.Eventos);
39 Assert.Contains(eventos[0], new List<Evento>(ponente.Eventos)); 40 Assert.Contains(eventos[0], new List<Evento>(ponente.Eventos));
40 Assert.Contains(eventos[1], new List<Evento>(ponente.Eventos)); 41 Assert.Contains(eventos[1], new List<Evento>(ponente.Eventos));
41 } 42 }
42 43
43 [Test] 44 [Test]
46 var publicador = new Mock<IPublicador>(); 47 var publicador = new Mock<IPublicador>();
47 Evento evento = null; 48 Evento evento = null;
48 publicador.Setup(p => p.Publicar(It.IsAny<IEnumerable<Track>>())).Callback<IEnumerable<Track>>( 49 publicador.Setup(p => p.Publicar(It.IsAny<IEnumerable<Track>>())).Callback<IEnumerable<Track>>(
49 t => evento = t.First().Evento); 50 t => evento = t.First().Evento);
50 51
51 var agenda = new Agenda(publicador.Object, DefaultEventoRepository, DefaultPonenteRepository); 52 var agenda = new Agenda(publicador.Object, DefaultEventoRepository, DefaultPersonaRepository);
52 53
53 agenda.RegistrarPonente("Fabio Maulo", "fabiomaulo@gmail.com", "@fabiomaulo", "http://fabiomaulo.blogspot.com"); 54 agenda.RegistrarPonente("Fabio Maulo", "fabiomaulo@gmail.com", "@fabiomaulo", "http://fabiomaulo.blogspot.com");
54 55
55 agenda.Agendar("Audit (parallel model) con NHibernate 3", "Fabio Maulo", new DateTime(2011, 2, 26), urlInvitacion); 56 agenda.Agendar("Audit (parallel model) con NHibernate 3", "Fabio Maulo", new DateTime(2011, 2, 26), urlInvitacion);
56 57
57 Assert.AreEqual(1, agenda.GetEventosAgendados().Count); 58 Assert.AreEqual(1, agenda.GetEventosAgendados().Count);
58 59
59 publicador.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(1)); 60 publicador.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(1));
60 61
61 Assert.IsNotNull(evento); 62 Assert.IsNotNull(evento);
62 Assert.AreEqual("Fabio Maulo", evento.Ponente.Nombre); 63 Assert.AreEqual("Fabio Maulo", evento.Persona.Nombre);
63 Assert.AreEqual("fabiomaulo@gmail.com", evento.Ponente.Mail); 64 Assert.AreEqual("fabiomaulo@gmail.com", evento.Persona.Mail);
64 Assert.AreEqual("@fabiomaulo", evento.Ponente.Twitter); 65 Assert.AreEqual("@fabiomaulo", evento.Persona.Twitter);
65 Assert.AreEqual("http://fabiomaulo.blogspot.com", evento.Ponente.Blog); 66 Assert.AreEqual("http://fabiomaulo.blogspot.com", evento.Persona.Blog);
66 } 67 }
67 68
68 [Test] 69 [Test]
69 public void Publicar_evento_sin_ponente_registrado() 70 public void Publicar_evento_sin_ponente_registrado()
70 { 71 {
71 var publicador = new Mock<IPublicador>(); 72 var publicador = new Mock<IPublicador>();
72 Evento evento = null; 73 Evento evento = null;
73 publicador.Setup(p => p.Publicar(It.IsAny<IEnumerable<Track>>())).Callback<IEnumerable<Track>>( 74 publicador.Setup(p => p.Publicar(It.IsAny<IEnumerable<Track>>())).Callback<IEnumerable<Track>>(
74 t => evento = t.First().Evento); 75 t => evento = t.First().Evento);
75 76
76 var agenda = new Agenda(publicador.Object, DefaultEventoRepository, DefaultPonenteRepository); 77 var agenda = new Agenda(publicador.Object, DefaultEventoRepository, DefaultPersonaRepository);
77 78
78 agenda.Agendar("Audit (parallel model) con NHibernate 3", "Fabio Maulo", new DateTime(2011, 2, 26), 79 agenda.Agendar("Audit (parallel model) con NHibernate 3", "Fabio Maulo", new DateTime(2011, 2, 26),
79 urlInvitacion); 80 urlInvitacion);
80 81
81 Assert.AreEqual(1, agenda.GetEventosAgendados().Count); 82 Assert.AreEqual(1, agenda.GetEventosAgendados().Count);
82 83
83 publicador.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(1)); 84 publicador.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Exactly(1));
84 85
85 Assert.IsNotNull(evento); 86 Assert.IsNotNull(evento);
86 Assert.AreEqual("Fabio Maulo", evento.Ponente.Nombre); 87 Assert.AreEqual("Fabio Maulo", evento.Persona.Nombre);
87 Assert.IsNullOrEmpty(evento.Ponente.Twitter); 88 Assert.IsNullOrEmpty(evento.Persona.Twitter);
88 } 89 }
89 90
90 [Test] 91 [Test]
91 public void Quitar_ponente_de_un_evento() 92 public void Quitar_ponente_de_un_evento()
92 { 93 {
93 var agenda = new Agenda(null, DefaultEventoRepository, DefaultPonenteRepository); 94 var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository);
94 95
95 const string titulo = "Audit (parallel model) con NHibernate 3"; 96 const string titulo = "Audit (parallel model) con NHibernate 3";
96 Guid eventoId; 97 Guid eventoId;
97 98
98 agenda.Proponer(titulo, "Fabio", urlInvitacion); 99 agenda.Proponer(titulo, "Fabio", urlInvitacion);
99 Ponente ponente; 100 Persona persona;
100 { 101 {
101 var eventos = agenda.GetEventosPropuestos(); 102 var eventos = agenda.GetEventosPropuestos();
102 Assert.AreEqual(1, eventos.Count); 103 Assert.AreEqual(1, eventos.Count);
103 104
104 Evento evento = eventos[0]; 105 Evento evento = eventos[0];
105 Assert.AreEqual("Fabio", evento.Ponente.Nombre); 106 Assert.AreEqual("Fabio", evento.Persona.Nombre);
106 107
107 eventoId = evento.Id; 108 eventoId = evento.Id;
108 ponente = evento.Ponente; 109 persona = evento.Persona;
109 } 110 }
110 111
111 agenda.ModificarPropuesta(eventoId, titulo, null, urlInvitacion); 112 agenda.ModificarPropuesta(eventoId, titulo, null, urlInvitacion);
112 { 113 {
113 var eventos = agenda.GetEventosPropuestos(); 114 var eventos = agenda.GetEventosPropuestos();
114 Assert.AreEqual(1, eventos.Count); 115 Assert.AreEqual(1, eventos.Count);
115 116
116 Evento evento = eventos[0]; 117 Evento evento = eventos[0];
117 Assert.IsNull(evento.Ponente); 118 Assert.IsNull(evento.Persona);
118 } 119 }
119 120
120 Assert.AreEqual(0, ponente.Eventos.Count()); 121 Assert.AreEqual(0, persona.Eventos.Count());
121 } 122 }
122 123
123 [Test] 124 [Test]
124 public void Cambiar_ponente_de_un_evento() 125 public void Cambiar_ponente_de_un_evento()
125 { 126 {
126 var agenda = new Agenda(null, DefaultEventoRepository, DefaultPonenteRepository); 127 var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository);
127 128
128 const string titulo = "Audit (parallel model) con NHibernate 3"; 129 const string titulo = "Audit (parallel model) con NHibernate 3";
129 Guid eventoId; 130 Guid eventoId;
130 131
131 agenda.Proponer(titulo, "Fabio", urlInvitacion); 132 agenda.Proponer(titulo, "Fabio", urlInvitacion);
132 Ponente ponente1; 133 Persona ponente1;
133 { 134 {
134 var eventos = agenda.GetEventosPropuestos(); 135 var eventos = agenda.GetEventosPropuestos();
135 Assert.AreEqual(1, eventos.Count); 136 Assert.AreEqual(1, eventos.Count);
136 137
137 Evento evento = eventos[0]; 138 Evento evento = eventos[0];
138 Assert.AreEqual("Fabio", evento.Ponente.Nombre); 139 Assert.AreEqual("Fabio", evento.Persona.Nombre);
139 140
140 eventoId = evento.Id; 141 eventoId = evento.Id;
141 ponente1 = evento.Ponente; 142 ponente1 = evento.Persona;
142 } 143 }
143 144
144 agenda.ModificarPropuesta(eventoId, titulo, "José", urlInvitacion); 145 agenda.ModificarPropuesta(eventoId, titulo, "José", urlInvitacion);
145 Ponente ponente2; 146 Persona ponente2;
146 { 147 {
147 var eventos = agenda.GetEventosPropuestos(); 148 var eventos = agenda.GetEventosPropuestos();
148 Assert.AreEqual(1, eventos.Count); 149 Assert.AreEqual(1, eventos.Count);
149 150
150 Evento evento = eventos[0]; 151 Evento evento = eventos[0];
151 Assert.IsNotNull(evento.Ponente); 152 Assert.IsNotNull(evento.Persona);
152 ponente2 = evento.Ponente; 153 ponente2 = evento.Persona;
153 } 154 }
154 155
155 Assert.AreEqual(0, ponente1.Eventos.Count()); 156 Assert.AreEqual(0, ponente1.Eventos.Count());
156 Assert.AreEqual(1, ponente2.Eventos.Count()); 157 Assert.AreEqual(1, ponente2.Eventos.Count());
157 } 158 }