# HG changeset patch # User nelopauselli # Date 1311858808 10800 # Node ID 62791999ad017852bf228479a1f6e46da76a59b7 # Parent 2d1adbaf03733ee55884f4f4e4ace215b1e84966 Agregando relación entre Evento y Patrocinador diff -r 2d1adbaf0373 -r 62791999ad01 Agendas/trunk/src/Agendas.Domain/Agenda.cs --- a/Agendas/trunk/src/Agendas.Domain/Agenda.cs Thu Jul 28 09:26:24 2011 -0300 +++ b/Agendas/trunk/src/Agendas.Domain/Agenda.cs Thu Jul 28 10:13:28 2011 -0300 @@ -1,5 +1,7 @@ using System; +using System.Collections; using System.Collections.Generic; +using System.Linq; using AltNetHispano.Agendas.Domain.Exceptions; using AltNetHispano.Agendas.Domain.Repositories; @@ -9,12 +11,15 @@ { private readonly IEventoRepository _eventosRepository; private readonly IPersonaRepository _personaRepository; + private readonly IPatrocinadorRepository _patrocinadorRepository; + private readonly IPublicador _publicador; public Agenda(IPublicador publicador, IEventoRepository eventosRepository, - IPersonaRepository personaRepository) + IPersonaRepository personaRepository, IPatrocinadorRepository patrocinadorRepository) { _publicador = publicador; + _patrocinadorRepository = patrocinadorRepository; _personaRepository = personaRepository; _eventosRepository = eventosRepository; } @@ -204,5 +209,34 @@ return new Resultado(true); } + + public void IndicarPatrocinadores(Guid eventoId, Guid[] patrocinadores) + { + var evento = GetEvento(eventoId); + + var agregar = new List(); + var quitar = new List(); + + foreach (var patrocinadorId in patrocinadores) + { + if (!evento.Patrocinadores.Any(p => p.Id == patrocinadorId)) + { + var patrocinador = _patrocinadorRepository.Get(patrocinadorId); + agregar.Add(patrocinador); + } + } + + foreach (var patrocinador in evento.Patrocinadores) + { + if (!patrocinadores.Any(p => p == patrocinador.Id)) + quitar.Add(patrocinador); + } + + foreach (var patrocinador in agregar) + evento.AddPatrocinador(patrocinador); + + foreach (var patrocinador in quitar) + evento.RemovePatrocinador(patrocinador); + } } } \ No newline at end of file diff -r 2d1adbaf0373 -r 62791999ad01 Agendas/trunk/src/Agendas.Domain/Agendas.Domain.csproj --- a/Agendas/trunk/src/Agendas.Domain/Agendas.Domain.csproj Thu Jul 28 09:26:24 2011 -0300 +++ b/Agendas/trunk/src/Agendas.Domain/Agendas.Domain.csproj Thu Jul 28 10:13:28 2011 -0300 @@ -33,6 +33,7 @@ + diff -r 2d1adbaf0373 -r 62791999ad01 Agendas/trunk/src/Agendas.Domain/Evento.cs --- a/Agendas/trunk/src/Agendas.Domain/Evento.cs Thu Jul 28 09:26:24 2011 -0300 +++ b/Agendas/trunk/src/Agendas.Domain/Evento.cs Thu Jul 28 10:13:28 2011 -0300 @@ -1,4 +1,5 @@ using System; +using System.Collections; using System.Collections.Generic; using AltNetHispano.Agendas.Domain.Exceptions; @@ -9,6 +10,7 @@ protected Evento() { _tracks = new List(); + _patrocinadores=new List(); } #region Propiedades del Evento @@ -89,8 +91,9 @@ } private EventoState _eventoState; + private IList _patrocinadores; - /// + /// /// Obtiene una instancia de la clase que representa el estado del evento /// public virtual EventoState GetEstado() @@ -112,7 +115,25 @@ public virtual TipoEvento Tipo { get; private set; } - #endregion + public IEnumerable Patrocinadores + { + get { + return _patrocinadores; + } + } + + internal virtual void AddPatrocinador(Patrocinador patrocinador) + { + _patrocinadores.Add(patrocinador); + } + + internal virtual void RemovePatrocinador(Patrocinador patrocinador) + { + _patrocinadores.Remove(patrocinador); + } + + + #endregion #region Acciones sobre el evento diff -r 2d1adbaf0373 -r 62791999ad01 Agendas/trunk/src/Agendas.Domain/Patrocinador.cs --- a/Agendas/trunk/src/Agendas.Domain/Patrocinador.cs Thu Jul 28 09:26:24 2011 -0300 +++ b/Agendas/trunk/src/Agendas.Domain/Patrocinador.cs Thu Jul 28 10:13:28 2011 -0300 @@ -1,4 +1,7 @@ -using System; +using System.Drawing; +using System.IO; +using System.Linq; +using System.IO; namespace AltNetHispano.Agendas.Domain { @@ -15,5 +18,13 @@ protected Patrocinador() { } + + public virtual void LoadLogo(string path) + { + var image = Image.FromFile(path); + var ms = new MemoryStream(); + image.Save(ms, image.RawFormat); + Logo = ms.ToArray(); + } } } \ No newline at end of file diff -r 2d1adbaf0373 -r 62791999ad01 Agendas/trunk/src/Agendas.Factories/AgendaFactory.cs --- a/Agendas/trunk/src/Agendas.Factories/AgendaFactory.cs Thu Jul 28 09:26:24 2011 -0300 +++ b/Agendas/trunk/src/Agendas.Factories/AgendaFactory.cs Thu Jul 28 10:13:28 2011 -0300 @@ -19,7 +19,7 @@ return _agenda ?? (_agenda = new Agenda(new TwitterPublicador(), new EventoRepository(sessionFactory), - new PersonaRepository(sessionFactory))); + new PersonaRepository(sessionFactory), new PatrocinadorRepository(sessionFactory))); } public static IPersonaRepository GetPersonaRepository() diff -r 2d1adbaf0373 -r 62791999ad01 Agendas/trunk/src/Agendas.Google.Test/PublicadorTest.cs --- a/Agendas/trunk/src/Agendas.Google.Test/PublicadorTest.cs Thu Jul 28 09:26:24 2011 -0300 +++ b/Agendas/trunk/src/Agendas.Google.Test/PublicadorTest.cs Thu Jul 28 10:13:28 2011 -0300 @@ -20,7 +20,7 @@ adapter.Setup(ad => ad.CreateEvent(It.IsAny(), out message)).Returns(true); var publicador = new GooglePublicador(adapter.Object); - var agenda = new Agenda(publicador, DefaultEventoRepository, DefaultPersonaRepository); + var agenda = new Agenda(publicador, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository); agenda.Proponer("Agile Patterns", null, null, TipoEvento.Van); adapter.Verify(ad => ad.CreateEvent(It.IsAny(), out message), Times.Never()); @@ -36,7 +36,7 @@ var detail = new VanGEventDetail(); var publicador = new GooglePublicador(adapter.Object); - var agenda = new Agenda(publicador, DefaultEventoRepository, DefaultPersonaRepository); + var agenda = new Agenda(publicador, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository); agenda.Proponer("Agile Patterns", null, null, TipoEvento.Van); agenda.Agendar("Agile Patterns", "Alejandro Labra", new DateTime(2011, 07, 09), "https://groups.google.com/d/topic/altnet-hispano/arYEMsPiAtY/discussion", TipoEvento.Van); @@ -72,7 +72,7 @@ var detail = new CafeGEventDetail(); var publicador = new GooglePublicador(adapter.Object); - var agenda = new Agenda(publicador, DefaultEventoRepository, DefaultPersonaRepository); + var agenda = new Agenda(publicador, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository); agenda.Proponer("Agile Patterns", null, null, TipoEvento.Cafe); agenda.Agendar("Agile Patterns", "Alejandro Labra", new DateTime(2011, 07, 09), "https://groups.google.com/d/topic/altnet-hispano/arYEMsPiAtY/discussion", TipoEvento.Cafe); @@ -108,7 +108,7 @@ var detail = new EstudioGEventDetail(); var publicador = new GooglePublicador(adapter.Object); - var agenda = new Agenda(publicador, DefaultEventoRepository, DefaultPersonaRepository); + var agenda = new Agenda(publicador, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository); agenda.Proponer("Agile Patterns", null, null, TipoEvento.GrupoEstudio); agenda.Agendar("Agile Patterns", "Alejandro Labra", new DateTime(2011, 07, 09), "https://groups.google.com/d/topic/altnet-hispano/arYEMsPiAtY/discussion", TipoEvento.GrupoEstudio); @@ -145,7 +145,7 @@ adapter.Setup(ad => ad.DeleteEvent(It.IsAny(), It.IsAny(), out message)).Returns(true); var publicador = new GooglePublicador(adapter.Object); - var agenda = new Agenda(publicador, DefaultEventoRepository, DefaultPersonaRepository); + var agenda = new Agenda(publicador, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository); agenda.Proponer("Agile Patterns", null, null, TipoEvento.Van); adapter.Verify(ad => ad.DeleteEvent(It.IsAny(), It.IsAny(), out message), Times.Never()); diff -r 2d1adbaf0373 -r 62791999ad01 Agendas/trunk/src/Agendas.Tests/AgendarTests.cs --- a/Agendas/trunk/src/Agendas.Tests/AgendarTests.cs Thu Jul 28 09:26:24 2011 -0300 +++ b/Agendas/trunk/src/Agendas.Tests/AgendarTests.cs Thu Jul 28 10:13:28 2011 -0300 @@ -29,7 +29,7 @@ publicador.Setup(p => p.Publicar(It.IsAny>())).Throws(new Exception("Error intencional")); - var agenda = new Agenda(publicador.Object, repository.Object, DefaultPersonaRepository); + var agenda = new Agenda(publicador.Object, repository.Object, DefaultPersonaRepository, DefaultPatrocinadorRepository); Assert.Throws( () => agenda.Agendar("Van para publicar", "jjmontes", DateTime.Now, urlInvitacion, TipoEvento.Van)); @@ -47,7 +47,7 @@ var publicador = new Mock(); var repository = new Mock(); - var agenda = new Agenda(publicador.Object, repository.Object, DefaultPersonaRepository); + var agenda = new Agenda(publicador.Object, repository.Object, DefaultPersonaRepository, DefaultPatrocinadorRepository); Assert.Throws( () => agenda.Agendar("Van para publicar", "jjmontes", DateTime.Now, @@ -63,7 +63,7 @@ var publicador = new Mock(); var repository = new Mock(); - var agenda = new Agenda(publicador.Object, repository.Object, DefaultPersonaRepository); + var agenda = new Agenda(publicador.Object, repository.Object, DefaultPersonaRepository, DefaultPatrocinadorRepository); Assert.Throws(() => agenda.Agendar("Van para publicar", "jjmontes", DateTime.Now, urlInvitacion, TipoEvento.Van)); @@ -75,7 +75,7 @@ [Test] public void Intentar_agendar_evento_sin_ponente() { - var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository); + var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository); var r = agenda.Agendar("Van para publicar", string.Empty, DateTime.Now, urlInvitacion, TipoEvento.Van); @@ -92,7 +92,7 @@ var repository = new Mock(); var agenda = new Agenda(new CompositePublicador(new[] { publicador1.Object, publicador2.Object }), - repository.Object, DefaultPersonaRepository); + repository.Object, DefaultPersonaRepository, DefaultPatrocinadorRepository); agenda.Agendar("Van para publicar", "jjmontes", DateTime.Now, urlInvitacion, TipoEvento.Van); @@ -107,7 +107,7 @@ { var publicador = new Mock(); - var agenda = new Agenda(publicador.Object, DefaultEventoRepository, DefaultPersonaRepository); + var agenda = new Agenda(publicador.Object, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository); agenda.Agendar("Van para publicar", "jjmontes", DateTime.Now, urlInvitacion, TipoEvento.Van); @@ -130,7 +130,7 @@ var repository = DefaultEventoRepository; var publicador = new Mock(); - var agenda = new Agenda(publicador.Object, repository, DefaultPersonaRepository); + var agenda = new Agenda(publicador.Object, repository, DefaultPersonaRepository, DefaultPatrocinadorRepository); agenda.Agendar("Van para publicar", "jjmontes", DateTime.Now, urlInvitacion, TipoEvento.Van); @@ -163,7 +163,7 @@ var publicador2 = new Mock(); var agenda = new Agenda(new CompositePublicador(new[] { publicador1.Object, publicador2.Object }), - DefaultEventoRepository, DefaultPersonaRepository); + DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository); agenda.Agendar("Van para publicar", "jjmontes", DateTime.Now, urlInvitacion, TipoEvento.Van); @@ -183,7 +183,7 @@ var publicador2 = new Mock(); var agenda = new Agenda(new CompositePublicador(new[] { publicador1.Object, publicador2.Object }), - DefaultEventoRepository, DefaultPersonaRepository); + DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository); agenda.Proponer("Html 5", "jjmontes", urlInvitacion, TipoEvento.Van); Assert.AreEqual(1, agenda.GetEventosActivos(EventoPropuestoState.GetInstance()).Count); @@ -210,7 +210,7 @@ { var publicador1 = new Mock(); - var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository); + var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository); agenda.Proponer("Html 5", "jjmontes", urlInvitacion, TipoEvento.Van); var evento = @@ -225,7 +225,7 @@ { var publicador1 = new Mock(); - var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository); + var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository); agenda.Agendar("Html 5", "jjmontes", DateTime.MinValue, urlInvitacion, TipoEvento.Van); var evento = DefaultEventoRepository.GetActivos().Single(e => e.Titulo == "Html 5"); @@ -239,7 +239,7 @@ { var publicador1 = new Mock(); - var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository); + var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository); agenda.Agendar("Html 5", "jjmontes", DateTime.MinValue, urlInvitacion, TipoEvento.Van); var evento = DefaultEventoRepository.GetActivos().Single(e => e.Titulo == "Html 5"); @@ -256,7 +256,7 @@ { var publicador1 = new Mock(); - var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository); + var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository); agenda.Agendar("Html 5", "jjmontes", DateTime.MinValue, urlInvitacion, TipoEvento.Van); var evento = DefaultEventoRepository.GetActivos().Single(e => e.Titulo == "Html 5"); @@ -274,7 +274,7 @@ { var publicador1 = new Mock(); - var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository); + var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository); agenda.Agendar("Html 5", "jjmontes", DateTime.MinValue, urlInvitacion, TipoEvento.Van); var evento = DefaultEventoRepository.GetActivos().Single(e => e.Titulo == "Html 5"); @@ -290,7 +290,7 @@ { var publicador1 = new Mock(); - var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository); + var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository); agenda.Agendar("Html 5", "jjmontes", DateTime.MinValue, urlInvitacion, TipoEvento.Van); var evento = DefaultEventoRepository.GetActivos().Single(e => e.Titulo == "Html 5"); @@ -307,7 +307,7 @@ { var publicador1 = new Mock(); - var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository); + var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository); agenda.Agendar("Html 5", "jjmontes", DateTime.MinValue, urlInvitacion, TipoEvento.Van); var evento = DefaultEventoRepository.GetActivos().Single(e => e.Titulo == "Html 5"); @@ -326,7 +326,7 @@ { var publicador1 = new Mock(); - var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository); + var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository); agenda.Proponer("Html 5", "jjmontes", urlInvitacion, TipoEvento.Van); var evento = @@ -343,7 +343,7 @@ { var publicador1 = new Mock(); - var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository); + var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository); agenda.Proponer("Html 5", "jjmontes", urlInvitacion, TipoEvento.Van); var evento = diff -r 2d1adbaf0373 -r 62791999ad01 Agendas/trunk/src/Agendas.Tests/Agendas.Tests.csproj --- a/Agendas/trunk/src/Agendas.Tests/Agendas.Tests.csproj Thu Jul 28 09:26:24 2011 -0300 +++ b/Agendas/trunk/src/Agendas.Tests/Agendas.Tests.csproj Thu Jul 28 10:13:28 2011 -0300 @@ -64,7 +64,6 @@ - @@ -82,6 +81,7 @@ + @@ -132,6 +132,9 @@ Always + + Always + diff -r 2d1adbaf0373 -r 62791999ad01 Agendas/trunk/src/Agendas.Tests/Cruds/PatrocinadorCrud.cs --- a/Agendas/trunk/src/Agendas.Tests/Cruds/PatrocinadorCrud.cs Thu Jul 28 09:26:24 2011 -0300 +++ b/Agendas/trunk/src/Agendas.Tests/Cruds/PatrocinadorCrud.cs Thu Jul 28 10:13:28 2011 -0300 @@ -1,7 +1,4 @@ using System; -using System.Drawing; -using System.IO; -using System.Linq; using AltNetHispano.Agendas.Domain; using AltNetHispano.Agendas.Domain.Repositories; using NUnit.Framework; @@ -26,12 +23,8 @@ { var patrocinador = new Patrocinador("APRESS"); - var image = Image.FromFile("images/apress.gif"); - var ms = new MemoryStream(); - image.Save(ms, image.RawFormat); - _logo = ms.ToArray(); - - patrocinador.Logo = _logo; + patrocinador.LoadLogo("images/apress.gif"); + _logo = patrocinador.Logo; _patrocinadorRepository.Save(patrocinador); return patrocinador.Id; diff -r 2d1adbaf0373 -r 62791999ad01 Agendas/trunk/src/Agendas.Tests/Eventos_y_patrocinadores_tests.cs --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Agendas/trunk/src/Agendas.Tests/Eventos_y_patrocinadores_tests.cs Thu Jul 28 10:13:28 2011 -0300 @@ -0,0 +1,108 @@ +using System; +using System.Linq; +using AltNetHispano.Agendas.Domain; +using Moq; +using NUnit.Framework; + +namespace AltNetHispano.Agendas.Tests +{ + [TestFixture] + public class Eventos_y_patrocinadores_tests : TestBase + { + private Guid _apressId; + private Guid _jetbrainsId; + private Guid _eventoId; + private Agenda _agenda; + + [SetUp] + public void CrearDatos() + { + _agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository); + + _apressId = CrearPatrocinador("Apress", "images/apress.gif"); + _jetbrainsId = CrearPatrocinador("jetbrains", "images/jetbrains.png"); + _eventoId = CrearEvento(); + } + + [Test] + public void Indicar_patrociadores() + { + _agenda.IndicarPatrocinadores(_eventoId, new[] { _apressId, _jetbrainsId }); + + var evento = DefaultEventoRepository.GetActivos().First(); + Assert.AreNotEqual(Guid.Empty, evento.Id); + Assert.IsNotNull(evento.Fecha); + Assert.IsNotNull(evento.Patrocinadores); + Assert.IsTrue(evento.Patrocinadores.Any()); + Assert.IsTrue(evento.Patrocinadores.Any(p => p.Nombre == "Apress")); + Assert.IsTrue(evento.Patrocinadores.Any(p => p.Nombre == "jetbrains")); + } + + [Test] + public void Agregar_patrociador() + { + { + _agenda.IndicarPatrocinadores(_eventoId, new[] {_apressId}); + + var evento = DefaultEventoRepository.GetActivos().First(); + Assert.IsTrue(evento.Patrocinadores.Any(p => p.Nombre == "Apress")); + Assert.IsFalse(evento.Patrocinadores.Any(p => p.Nombre == "jetbrains")); + } + + { + _agenda.IndicarPatrocinadores(_eventoId, new[] { _apressId, _jetbrainsId }); + + var evento = DefaultEventoRepository.GetActivos().First(); + Assert.IsTrue(evento.Patrocinadores.Any(p => p.Nombre == "Apress")); + Assert.IsTrue(evento.Patrocinadores.Any(p => p.Nombre == "jetbrains")); + } + } + + [Test] + public void Quitar_patrociador() + { + { + _agenda.IndicarPatrocinadores(_eventoId, new[] { _apressId, _jetbrainsId }); + + var evento = DefaultEventoRepository.GetActivos().First(); + Assert.IsTrue(evento.Patrocinadores.Any(p => p.Nombre == "Apress")); + Assert.IsTrue(evento.Patrocinadores.Any(p => p.Nombre == "jetbrains")); + } + + { + _agenda.IndicarPatrocinadores(_eventoId, new[] { _apressId }); + + var evento = DefaultEventoRepository.GetActivos().First(); + Assert.IsTrue(evento.Patrocinadores.Any(p => p.Nombre == "Apress")); + Assert.IsFalse(evento.Patrocinadores.Any(p => p.Nombre == "jetbrains")); + } + + { + _agenda.IndicarPatrocinadores(_eventoId, new Guid[] {}); + + var evento = DefaultEventoRepository.GetActivos().First(); + Assert.IsFalse(evento.Patrocinadores.Any()); + } + } + + private static Guid CrearPatrocinador(string nombre, string images) + { + var patrocinador = new Patrocinador(nombre); + patrocinador.LoadLogo(images); + + var patrocinadorRepository = DefaultPatrocinadorRepository; + patrocinadorRepository.Save(patrocinador); + + return patrocinador.Id; + } + + private Guid CrearEvento() + { + _agenda.Agendar("ADFS", "Nelo Pauselli", DateTime.Today.AddDays(7), null, TipoEvento.Van); + + var evento = DefaultEventoRepository.GetActivos().First(); + return evento.Id; + } + + } +} \ No newline at end of file diff -r 2d1adbaf0373 -r 62791999ad01 Agendas/trunk/src/Agendas.Tests/PonentesTests.cs --- a/Agendas/trunk/src/Agendas.Tests/PonentesTests.cs Thu Jul 28 09:26:24 2011 -0300 +++ b/Agendas/trunk/src/Agendas.Tests/PonentesTests.cs Thu Jul 28 10:13:28 2011 -0300 @@ -18,7 +18,7 @@ var publicador = new Mock(); Assert.AreEqual(1, DefaultPersonaRepository.GetAll().Count); - var agenda = new Agenda(publicador.Object, DefaultEventoRepository, DefaultPersonaRepository); + var agenda = new Agenda(publicador.Object, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository); agenda.Agendar("Audit (parallel model) con NHibernate 3", "Fabio Maulo", new DateTime(2011, 2, 26), urlInvitacion, TipoEvento.Van); @@ -45,7 +45,7 @@ publicador.Setup(p => p.Publicar(It.IsAny>())).Callback>( t => evento = t.First().Evento); - var agenda = new Agenda(publicador.Object, DefaultEventoRepository, DefaultPersonaRepository); + var agenda = new Agenda(publicador.Object, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository); agenda.RegistrarPonente("Fabio Maulo", "fabiomaulo@gmail.com", "@fabiomaulo", "http://fabiomaulo.blogspot.com"); @@ -70,7 +70,7 @@ publicador.Setup(p => p.Publicar(It.IsAny>())).Callback>( t => evento = t.First().Evento); - var agenda = new Agenda(publicador.Object, DefaultEventoRepository, DefaultPersonaRepository); + var agenda = new Agenda(publicador.Object, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository); agenda.Agendar("Audit (parallel model) con NHibernate 3", "Fabio Maulo", new DateTime(2011, 2, 26), urlInvitacion, TipoEvento.Van); @@ -87,7 +87,7 @@ [Test] public void Quitar_ponente_de_un_evento() { - var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository); + var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository); const string titulo = "Audit (parallel model) con NHibernate 3"; Guid eventoId; @@ -118,7 +118,7 @@ [Test] public void Cambiar_ponente_de_un_evento() { - var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository); + var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository); const string titulo = "Audit (parallel model) con NHibernate 3"; Guid eventoId; diff -r 2d1adbaf0373 -r 62791999ad01 Agendas/trunk/src/Agendas.Tests/PropuestasTests.cs --- a/Agendas/trunk/src/Agendas.Tests/PropuestasTests.cs Thu Jul 28 09:26:24 2011 -0300 +++ b/Agendas/trunk/src/Agendas.Tests/PropuestasTests.cs Thu Jul 28 10:13:28 2011 -0300 @@ -17,7 +17,7 @@ [Test] public void Crear_modificar_y_publicar_evento_propuesto() { - var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository); + var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository); agenda.Proponer("Van", null, urlInvitacion, TipoEvento.Van); { @@ -52,7 +52,7 @@ [Test] public void Intentar_agendar_evento_propuesto_sin_indicar_fecha() { - var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository); + var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository); { agenda.Proponer("Van propuesta", null, urlInvitacion, TipoEvento.Van); @@ -70,7 +70,7 @@ [Test] public void Intentar_agendar_evento_propuesto_sin_indicar_ponente() { - var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository); + var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository); { agenda.Proponer("Van propuesta", null, urlInvitacion, TipoEvento.Van); @@ -92,7 +92,7 @@ { var idEventoNoExistente = new Guid("99999999999999999999999999999999"); - var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository); + var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository); Assert.Throws(() => agenda.GetEvento(idEventoNoExistente)); } @@ -102,7 +102,7 @@ { var repository = new Mock(); - var agenda = new Agenda(null, repository.Object, DefaultPersonaRepository); + var agenda = new Agenda(null, repository.Object, DefaultPersonaRepository, DefaultPatrocinadorRepository); var r = agenda.Proponer(string.Empty, null, urlInvitacion, TipoEvento.Van); Assert.IsFalse(r.Succeful); @@ -113,7 +113,7 @@ [Test] public void Intentar_proponer_evento_sin_usuario_autenticado() { - var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository); + var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository); SetCurrentUser(null, null); @@ -123,7 +123,7 @@ [Test] public void Proponer_evento_correctamente() { - var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository); + var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository); agenda.Proponer("Van propuesta", null, urlInvitacion, TipoEvento.Van); IList eventosPropuestos = agenda.GetEventosActivos(EventoPropuestoState.GetInstance()); @@ -135,7 +135,7 @@ [Test] public void Verificar_propuesta_separada_de_publicacion() { - var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository); + var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository); agenda.Proponer("Van propuesta", null, urlInvitacion, TipoEvento.Van); var r = agenda.Agendar("Van publicada", "jjmontes", DateTime.Now, diff -r 2d1adbaf0373 -r 62791999ad01 Agendas/trunk/src/Agendas.Tests/TestBase.cs --- a/Agendas/trunk/src/Agendas.Tests/TestBase.cs Thu Jul 28 09:26:24 2011 -0300 +++ b/Agendas/trunk/src/Agendas.Tests/TestBase.cs Thu Jul 28 10:13:28 2011 -0300 @@ -1,6 +1,5 @@ using AltNetHispano.Agendas.Domain; using AltNetHispano.Agendas.Domain.Repositories; -using AltNetHispano.Agendas.Domain.Services; using AltNetHispano.Agendas.Repositories.Memory; using Moq; using NUnit.Framework; @@ -19,6 +18,12 @@ get { return new PersonaRepository(); } } + protected static IPatrocinadorRepository DefaultPatrocinadorRepository + { + get { return new PatrocinadorRepository(); } + } + + [SetUp] public void LimpiarEventos() { @@ -26,6 +31,12 @@ } [SetUp] + public void PatrocinadoresEventos() + { + PatrocinadorRepository.Clear(); + } + + [SetUp] public void LimpiarPonentes() { PersonaRepository.Clear(); diff -r 2d1adbaf0373 -r 62791999ad01 Agendas/trunk/src/Agendas.Tests/TrackTests.cs --- a/Agendas/trunk/src/Agendas.Tests/TrackTests.cs Thu Jul 28 09:26:24 2011 -0300 +++ b/Agendas/trunk/src/Agendas.Tests/TrackTests.cs Thu Jul 28 10:13:28 2011 -0300 @@ -15,7 +15,7 @@ { var repository = DefaultEventoRepository; - var agenda = new Agenda(null, repository, DefaultPersonaRepository); + var agenda = new Agenda(null, repository, DefaultPersonaRepository, DefaultPatrocinadorRepository); var fecha = DateTime.Now.AddDays(5); agenda.Agendar("Html 5", "jjmontes", fecha, urlInvitacion, TipoEvento.Van); @@ -50,7 +50,7 @@ { var repository = DefaultEventoRepository; - var agenda = new Agenda(null, repository, DefaultPersonaRepository); + var agenda = new Agenda(null, repository, DefaultPersonaRepository, DefaultPatrocinadorRepository); agenda.Agendar("Html 5", "jjmontes", DateTime.Now, urlInvitacion, TipoEvento.Van); diff -r 2d1adbaf0373 -r 62791999ad01 Agendas/trunk/src/Agendas.Tests/Workflows/Workflow.cs --- a/Agendas/trunk/src/Agendas.Tests/Workflows/Workflow.cs Thu Jul 28 09:26:24 2011 -0300 +++ b/Agendas/trunk/src/Agendas.Tests/Workflows/Workflow.cs Thu Jul 28 10:13:28 2011 -0300 @@ -9,9 +9,9 @@ { private readonly Agenda _agenda; - public Workflow(IPublicador publicador, IEventoRepository eventoRepository, IPersonaRepository personaRepository) + public Workflow(IPublicador publicador, IEventoRepository eventoRepository, IPersonaRepository personaRepository, IPatrocinadorRepository patrocinadorRepository) { - _agenda = new Agenda(publicador, eventoRepository, personaRepository); + _agenda = new Agenda(publicador, eventoRepository, personaRepository, patrocinadorRepository); } public void Proponer() diff -r 2d1adbaf0373 -r 62791999ad01 Agendas/trunk/src/Agendas.Tests/Workflows/WorkflowTests.cs --- a/Agendas/trunk/src/Agendas.Tests/Workflows/WorkflowTests.cs Thu Jul 28 09:26:24 2011 -0300 +++ b/Agendas/trunk/src/Agendas.Tests/Workflows/WorkflowTests.cs Thu Jul 28 10:13:28 2011 -0300 @@ -16,7 +16,7 @@ public void InitPublicador() { _publicador = new Mock(); - _workflow = new Workflow(_publicador.Object, DefaultEventoRepository, DefaultPersonaRepository); + _workflow = new Workflow(_publicador.Object, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository); } [Test] diff -r 2d1adbaf0373 -r 62791999ad01 Agendas/trunk/src/Agendas.Tests/images/jetbrains.png Binary file Agendas/trunk/src/Agendas.Tests/images/jetbrains.png has changed diff -r 2d1adbaf0373 -r 62791999ad01 Agendas/trunk/src/Agendas.Twitter.Tests/Publicador_tests.cs --- a/Agendas/trunk/src/Agendas.Twitter.Tests/Publicador_tests.cs Thu Jul 28 09:26:24 2011 -0300 +++ b/Agendas/trunk/src/Agendas.Twitter.Tests/Publicador_tests.cs Thu Jul 28 10:13:28 2011 -0300 @@ -29,7 +29,7 @@ var publicador = new TwitterPublicador(adapter.Object); - var agenda = new Agenda(publicador, DefaultEventoRepository, DefaultPersonaRepository); + var agenda = new Agenda(publicador, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository); agenda.Proponer("Identity Providers", null, null, TipoEvento.GrupoEstudio); @@ -56,7 +56,7 @@ var publicador = new TwitterPublicador(adapter.Object); - var agenda = new Agenda(publicador, DefaultEventoRepository, DefaultPersonaRepository); + var agenda = new Agenda(publicador, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository); agenda.Proponer("Identity Providers", null, null, TipoEvento.GrupoEstudio); adapter.Verify(a => a.UpdateStatus(It.IsAny(), It.IsAny()), Times.Once());