Mercurial > altnet-hispano
view Agendas/trunk/src/Agendas.Tests/PropuestasTests.cs @ 120:c3573defd18f
Agregado de Fecha, Usuario y Successful en TrackLog
Modificacion de publicador de blog para usar TrackLog
Agregado de TrackLog en el test de crud de eventos
Fix en publicador de twitter para que no twitee si ya se encuentra en TrackLog pero con Successful en true
author | Jorge@Jorge-PC |
---|---|
date | Fri, 24 Jun 2011 21:18:21 -0300 |
parents | 80c22175c9b5 |
children | b74734a1a755 |
line wrap: on
line source
using System; using System.Collections.Generic; using System.Linq; using AltNetHispano.Agendas.Domain; using AltNetHispano.Agendas.Domain.Exceptions; using AltNetHispano.Agendas.Domain.Repositories; using Moq; using NUnit.Framework; namespace AltNetHispano.Agendas.Tests { [TestFixture] public class PropuestasTests : TestBase { private const string urlInvitacion = "http://groups.google.com/group/altnet-hispano/browse_thread/thread/65d6d26eb381386e"; [Test] public void Crear_modificar_y_publicar_evento_propuesto() { var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository); agenda.Proponer("Van", null, urlInvitacion, TipoEvento.Van); { IList<Evento> eventosPropuestos = agenda.GetEventosPropuestos(); IList<Evento> eventosPublicados = agenda.GetEventosAgendados(); Assert.AreEqual(1, eventosPropuestos.Count); Assert.AreEqual(0, eventosPublicados.Count); var evento = eventosPropuestos.FirstOrDefault(); agenda.ModificarPropuesta(evento.Id, "Van 2", "otro ponente", urlInvitacion); eventosPropuestos = agenda.GetEventosPropuestos(); Assert.AreEqual(1, eventosPropuestos.Count); evento = eventosPropuestos.FirstOrDefault(); Assert.AreEqual("Van 2", evento.Titulo); Assert.AreEqual("otro ponente", evento.Ponente.Nombre); } var r = agenda.Agendar("Van 2", "jjmontes", DateTime.Now, urlInvitacion, TipoEvento.Van); Assert.IsTrue(r.Succeful); { IList<Evento> eventosPropuestos = agenda.GetEventosPropuestos(); IList<Evento> eventosPublicados = agenda.GetEventosAgendados(); Assert.AreEqual(0, eventosPropuestos.Count); Assert.AreEqual(1, eventosPublicados.Count); } } [Test] public void Intentar_agendar_evento_propuesto_sin_indicar_fecha() { var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository); { agenda.Proponer("Van propuesta", null, urlInvitacion, TipoEvento.Van); } { var van = agenda.GetEventosPropuestos().FirstOrDefault(); Assert.IsNotNull(van); var r = agenda.Agendar(van.Titulo, "Ponente", null, urlInvitacion, TipoEvento.Van); Assert.IsFalse(r.Succeful); } } [Test] public void Intentar_agendar_evento_propuesto_sin_indicar_ponente() { var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository); { agenda.Proponer("Van propuesta", null, urlInvitacion, TipoEvento.Van); } { var van = agenda.GetEventosPropuestos().FirstOrDefault(); Assert.IsNotNull(van); van.Actualizar(null, DateTime.Today.AddDays(5), urlInvitacion); var r = agenda.Agendar(van.Titulo, string.Empty, van.Fecha, urlInvitacion, TipoEvento.Van); Assert.IsFalse(r.Succeful); } } [Test] public void Intentar_obtener_un_evento_inexistente() { var idEventoNoExistente = new Guid("99999999999999999999999999999999"); var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository); Assert.Throws<EventoNotFoundException>(() => agenda.GetEvento(idEventoNoExistente)); } [Test] public void Intentar_proponer_evento_sin_titulo() { var repository = new Mock<IEventoRepository>(); var agenda = new Agenda(null, repository.Object, DefaultPersonaRepository); var r = agenda.Proponer(string.Empty, null, urlInvitacion, TipoEvento.Van); Assert.IsFalse(r.Succeful); repository.Verify(p => p.Save(It.IsAny<Evento>()), Times.Exactly(0)); } [Test] public void Intentar_proponer_evento_sin_usuario_autenticado() { var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository); SetCurrentUser(null, null); Assert.Throws<UsuarioNoAutenticadoException>(() => agenda.Proponer("Inmortalidad de la meduza.", null, urlInvitacion, TipoEvento.Van)); } [Test] public void Proponer_evento_correctamente() { var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository); agenda.Proponer("Van propuesta", null, urlInvitacion, TipoEvento.Van); IList<Evento> eventosPropuestos = agenda.GetEventosPropuestos(); Assert.IsNotNull(eventosPropuestos); Assert.AreEqual(1, eventosPropuestos.Count); Assert.AreEqual("Van propuesta", eventosPropuestos[0].Titulo); } [Test] public void Verificar_propuesta_separada_de_publicacion() { var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository); agenda.Proponer("Van propuesta", null, urlInvitacion, TipoEvento.Van); var r = agenda.Agendar("Van publicada", "jjmontes", DateTime.Now, urlInvitacion, TipoEvento.Van); Assert.IsTrue(r.Succeful); IList<Evento> eventosPropuestos = agenda.GetEventosPropuestos(); IList<Evento> eventosPublicados = agenda.GetEventosAgendados(); Assert.AreEqual(1, eventosPropuestos.Count); Assert.AreEqual(1, eventosPublicados.Count); } } }