Mercurial > altnet-hispano
changeset 80:c2d98fd6593f
Track como objeto identificable y con referencia al evento correspondiente.
Puede que con estos cambios sea necesario borrar las tablas en la db y dejar
que se vuelvan a generar, ya sea en los test o en la aplicación web
author | nelopauselli |
---|---|
date | Tue, 24 May 2011 18:25:57 -0300 |
parents | 8df9db937434 |
children | c76661cff260 |
files | Agendas/trunk/src/Agendas.Domain/Evento.cs Agendas/trunk/src/Agendas.Domain/Track.cs Agendas/trunk/src/Agendas.NHibernate/NhHelper.cs Agendas/trunk/src/Agendas.Tests/Cruds/EventoCrud.cs Agendas/trunk/src/Agendas.Tests/TrackTests.cs |
diffstat | 5 files changed, 34 insertions(+), 13 deletions(-) [+] |
line wrap: on
line diff
--- a/Agendas/trunk/src/Agendas.Domain/Evento.cs Tue May 24 18:08:59 2011 -0300 +++ b/Agendas/trunk/src/Agendas.Domain/Evento.cs Tue May 24 18:25:57 2011 -0300 @@ -77,7 +77,7 @@ public static Evento Proponer(string titulo, Ponente ponente, string urlInvitacion) { var evento = new Evento {Titulo = titulo, Ponente = ponente, UrlInvitacion = urlInvitacion}; - evento.AddTracks(new Track(Accion.Proponer)); + evento.AddTracks(new Track(evento, Accion.Proponer)); return evento; } @@ -109,7 +109,7 @@ Ponente = ponente; Fecha = fecha; UrlInvitacion = urlInvitacion; - AddTracks(new Track(Accion.Agendar)); + AddTracks(new Track(this, Accion.Agendar)); } public virtual void Actualizar(Ponente ponente, DateTime? fecha, string urlInvitacion) @@ -118,13 +118,13 @@ Fecha = fecha; UrlInvitacion = urlInvitacion; - AddTracks(new Track(Accion.Modificar)); + AddTracks(new Track(this, Accion.Modificar)); } public virtual void CambiarTitulo(string titulo) { Titulo = titulo; - AddTracks(new Track(Accion.CambiarTitulo)); + AddTracks(new Track(this, Accion.CambiarTitulo)); } #endregion
--- a/Agendas/trunk/src/Agendas.Domain/Track.cs Tue May 24 18:08:59 2011 -0300 +++ b/Agendas/trunk/src/Agendas.Domain/Track.cs Tue May 24 18:25:57 2011 -0300 @@ -1,18 +1,20 @@ namespace AltNetHispano.Agendas.Domain { - public class Track + public class Track : Identificable { protected Track() { //ctor para NHibernate } - public Track(Accion accion) + public Track(Evento evento, Accion accion) { Usuario = IdentityContext.GetUserName(); + Evento = evento; Accion = accion; } + public virtual Evento Evento { get; private set; } public virtual Accion Accion { get; private set; } public virtual string Usuario { get; private set; } }
--- a/Agendas/trunk/src/Agendas.NHibernate/NhHelper.cs Tue May 24 18:08:59 2011 -0300 +++ b/Agendas/trunk/src/Agendas.NHibernate/NhHelper.cs Tue May 24 18:25:57 2011 -0300 @@ -19,6 +19,7 @@ { var orm = new ObjectRelationalMapper(); orm.TablePerClass<Evento>(); + orm.TablePerClass<Track>(); orm.TablePerClass<Ponente>(); orm.Cascade<Evento, Ponente>(Cascade.None); @@ -47,10 +48,20 @@ { schemaValidator.Validate(); } - catch(Exception ex) + catch { - var schemaExport = new SchemaExport(cfg); - schemaExport.Create(false, true); + try + { + var schemaUpdate = new SchemaUpdate(cfg); + schemaUpdate.Execute(false, true); + + schemaValidator.Validate(); + } + catch + { + var schemaExport = new SchemaExport(cfg); + schemaExport.Create(false, true); + } } #endif
--- a/Agendas/trunk/src/Agendas.Tests/Cruds/EventoCrud.cs Tue May 24 18:08:59 2011 -0300 +++ b/Agendas/trunk/src/Agendas.Tests/Cruds/EventoCrud.cs Tue May 24 18:25:57 2011 -0300 @@ -48,7 +48,9 @@ Assert.AreEqual(1, van.Ponente.Eventos.Count()); Assert.AreEqual(van, van.Ponente.Eventos.First()); - Assert.AreEqual(1, van.Tracks.Where(t => t.Accion == Accion.Proponer).Count()); + var track1 = van.Tracks.Where(t => t.Accion == Accion.Proponer).FirstOrDefault(); + Assert.IsNotNull(track1); + Assert.AreEqual(van, track1.Evento); Assert.AreEqual("TDD - Diseño Basado en Ejemplos", van.Titulo); }
--- a/Agendas/trunk/src/Agendas.Tests/TrackTests.cs Tue May 24 18:08:59 2011 -0300 +++ b/Agendas/trunk/src/Agendas.Tests/TrackTests.cs Tue May 24 18:25:57 2011 -0300 @@ -22,15 +22,21 @@ var evento = repository.GetEventosConFecha().First(); Assert.AreEqual(1, evento.Tracks.Count()); - Assert.AreEqual(Accion.Agendar, evento.Tracks.Last().Accion); + var ultimo = evento.Tracks.Last(); + Assert.AreEqual(evento, ultimo.Evento); + Assert.AreEqual(Accion.Agendar, ultimo.Accion); agenda.ModificarEvento(evento.Id, "Html 5", "otro ponente", fecha, urlInvitacion); Assert.AreEqual(2, evento.Tracks.Count()); - Assert.AreEqual(Accion.Modificar, evento.Tracks.Last().Accion); + ultimo = evento.Tracks.Last(); + Assert.AreEqual(evento, ultimo.Evento); + Assert.AreEqual(Accion.Modificar, ultimo.Accion); agenda.ModificarEvento(evento.Id, "Html 5 y Css 3", "otro ponente", fecha, urlInvitacion); Assert.AreEqual(3, evento.Tracks.Count()); - Assert.AreEqual(Accion.CambiarTitulo, evento.Tracks.Last().Accion); + ultimo = evento.Tracks.Last(); + Assert.AreEqual(evento, ultimo.Evento); + Assert.AreEqual(Accion.CambiarTitulo, ultimo.Accion); } [Test]