Mercurial > altnet-hispano
view Agendas/trunk/src/Agendas.Repositories.Tests/PersonaCrud.cs @ 288:a6037c6c88d8
Se soluciona bug #198 Bug: Summary incorrecto en Google Calendar.
Se parametriza la hora en el mensaje.
author | user@MECHUQUE |
---|---|
date | Mon, 30 Jan 2012 01:52:47 -0300 |
parents | 1ca7c39ad38b |
children |
line wrap: on
line source
using System; using System.Collections.Generic; using System.Linq; using Agendas.Repositories.Tests.Infraestructure; using AltNetHispano.Agendas.Domain; using AltNetHispano.Agendas.Domain.Repositories; using AltNetHispano.Agendas.Domain.Services; using NUnit.Framework; namespace Agendas.Repositories.Tests { public abstract class PersonaCrud<T> where T : IInfraestrutureFactory, new() { private readonly IPersonaRepository _personaRepository; private readonly Func<IDisposable> _requestEmulator; private readonly PersonaService _personaService; private readonly IEventoRepository _eventoRepository; protected PersonaCrud() { var infraestrutureFactory = new T(); _eventoRepository = infraestrutureFactory.GetEventoRepository(); _personaRepository = infraestrutureFactory.GetPonenteRepository(); _requestEmulator = infraestrutureFactory.GetRequestEmulator(); _personaService = new PersonaService(_personaRepository, _eventoRepository); } [Test] public void CreateAdministrador() { Guid id; using (_requestEmulator.Invoke()) { var r = CreatePersona("Nelo Pauselli", "nelopauselli", "nelopauselli@gmail.com", "http://nelopauselli.blogspot.com", null); Assert.AreEqual("Nelo Pauselli", r.Nombre); Assert.AreNotEqual(Guid.Empty, r.Id); id = r.Id; } using (_requestEmulator.Invoke()) { var persona = _personaRepository.GetByNombre("Nelo Pauselli"); Assert.IsNotNull(persona); Assert.AreEqual(id, persona.Id); } } private ResultadoAdd CreatePersona(string nombre, string twitter, string mail, string blog, IEnumerable<string> roles) { return _personaService.Add(nombre, twitter, mail, blog, roles); } [Test] public void ReadAdministrador() { Guid personaId; using (_requestEmulator.Invoke()) { var r = CreatePersona("Nelo Pauselli", "nelopauselli", "nelopauselli@gmail.com", "http://nelopauselli.blogspot.com", null); personaId = r.Id; } using (_requestEmulator.Invoke()) { var persona = _personaRepository.Get(personaId); Assert.IsNotNull(persona); Assert.AreEqual("Nelo Pauselli", persona.Nombre); Assert.AreEqual("nelopauselli", persona.Twitter); Assert.AreEqual("nelopauselli@gmail.com", persona.Mail); Assert.AreEqual("http://nelopauselli.blogspot.com", persona.Blog); Assert.IsTrue(persona.Cuentas.Any()); Assert.AreEqual("nelopauselli", persona.Cuentas.First().LogonName); Assert.AreEqual(IdentityProviderEnum.Twitter, persona.Cuentas.First().IdentityProvider); Assert.IsTrue(persona.Roles.Any()); Assert.IsTrue(persona.Roles.Contains(Roles.Usuario)); Assert.IsTrue(persona.Roles.Contains(Roles.Administrador)); } } [Test] public void CreateUsuario() { using (_requestEmulator.Invoke()) { CreatePersona("Pablo Morales", "pablomorales", "pablomorales@gmail.com", "http://pablomorales.blogspot.com", new[] {Roles.Usuario}); } using (_requestEmulator.Invoke()) { var persona = _personaRepository.GetByNombre("Pablo Morales"); Assert.IsNotNull(persona); } } [Test] public void ReadUsuario() { Guid personaId; using (_requestEmulator.Invoke()) { var r = CreatePersona("Pablo Morales", "pablomorales", "pablomorales@gmail.com", "http://pablomorales.blogspot.com", new[] {Roles.Usuario}); personaId = r.Id; } using (_requestEmulator.Invoke()) { var persona = _personaRepository.Get(personaId); Assert.IsNotNull(persona); Assert.AreEqual("Pablo Morales", persona.Nombre); Assert.AreEqual("pablomorales", persona.Twitter); Assert.AreEqual("pablomorales@gmail.com", persona.Mail); Assert.AreEqual("http://pablomorales.blogspot.com", persona.Blog); Assert.IsTrue(persona.Cuentas.Any()); Assert.AreEqual("pablomorales", persona.Cuentas.First().LogonName); Assert.AreEqual(IdentityProviderEnum.Twitter, persona.Cuentas.First().IdentityProvider); Assert.IsTrue(persona.Roles.Any()); Assert.IsTrue(persona.Roles.Contains(Roles.Usuario)); Assert.IsFalse(persona.Roles.Contains(Roles.Administrador)); } } [Test] public void Update() { Guid personaId; using (_requestEmulator.Invoke()) { var r = CreatePersona("Nelo Pauselli", "nelopauselli", "nelopauselli@gmail.com", "http://nelopauselli.blogspot.com", null); personaId = r.Id; } using (_requestEmulator.Invoke()) { var persona = _personaRepository.Get(personaId); Assert.IsNotNull(persona); persona.Nombre = "Nelo Mariano Pauselli"; } using (_requestEmulator.Invoke()) { var persona = _personaRepository.Get(personaId); Assert.IsNotNull(persona); Assert.AreEqual("Nelo Mariano Pauselli", persona.Nombre); } } [Test] [Ignore] public void UpdateDuplicatePersona() { Guid personaNeloId; using (_requestEmulator.Invoke()) { var r = CreatePersona("Nelo Pauselli", "nelopauselli", "nelopauselli@gmail.com", "http://nelopauselli.blogspot.com", null); personaNeloId = r.Id; } Guid personaJorgeId; using (_requestEmulator.Invoke()) { var r = CreatePersona("Jorge Gamba", "jorgegamba", "jorgegamba@gmail.com", "http://jorgegamba.com/", null); personaJorgeId = r.Id; } using (_requestEmulator.Invoke()) { var persona = _personaRepository.Get(personaNeloId); Assert.IsNotNull(persona); persona.Nombre = "Jorge Gamba"; persona.Mail = "jorgegamba@gmail.com"; persona.Twitter = "jorgegamba"; persona.Blog = "http://jorgegamba.com/"; } } [Test] public void Delete() { Guid personaId; using (_requestEmulator.Invoke()) { var r = CreatePersona("Nelo Pauselli", "nelopauselli", "nelopauselli@gmail.com", "http://nelopauselli.blogspot.com", null); personaId = r.Id; } using (_requestEmulator.Invoke()) { var persona = _personaRepository.Get(personaId); Assert.IsNotNull(persona); _personaService.Delete(personaId); } using (_requestEmulator.Invoke()) { var persona = _personaRepository.Get(personaId); Assert.IsNull(persona); } } [Test] public void GetAllPersonaSortByName() { using (_requestEmulator.Invoke()) { CreatePersona("Pablo Morales", "pablomorales", "pablomorales@gmail.com", "http://pablomorales.blogspot.com", new[] {Roles.Usuario}); } using (_requestEmulator.Invoke()) { CreatePersona("Nelo Pauselli", "nelopauselli", "nelopauselli@gmail.com", "http://nelopauselli.blogspot.com", null); } using (_requestEmulator.Invoke()) { CreatePersona("Jorge Gamba", "jorgegamba", "jorgegamba@gmail.com", "http://nelopauselli.blogspot.com", null); } using (_requestEmulator.Invoke()) { var personas = _personaRepository.GetAll(); var primeraPersona = personas[0]; var segundaPersona = personas[1]; var terceraPersona = personas[2]; Assert.AreEqual("Jorge Gamba", primeraPersona.Nombre); Assert.AreEqual("Nelo Pauselli", segundaPersona.Nombre); Assert.AreEqual("Pablo Morales", terceraPersona.Nombre); } } } }