Mercurial > altnet-hispano
view Agendas/trunk/src/Agendas.Repositories.Tests/PatrocinadorCrud.cs @ 300:48ab8788bd19
#200: Patrocinadores: Agregar link al sitio web.
author | juanjose.montesdeocaarbos |
---|---|
date | Mon, 27 Feb 2012 14:45:12 -0300 |
parents | 9bc60d166c8a |
children |
line wrap: on
line source
using System; using System.Drawing; using System.IO; using AltNetHispano.Agendas.Domain; using AltNetHispano.Agendas.Domain.Repositories; using NUnit.Framework; namespace Agendas.Repositories.Tests { public class PatrocinadorCrud { private readonly IPatrocinadorRepository _patrocinadorRepository; private readonly Func<IDisposable> _requestEmulator; private byte[] _logo; private static byte[] LoadLogo(string path) { using (var image = Image.FromFile(path)) { var ms = new MemoryStream(); image.Save(ms, image.RawFormat); return ms.ToArray(); } } public PatrocinadorCrud(Func<IPatrocinadorRepository> createPatrocinadorRepository, Func<IDisposable> requestEmulator) { _patrocinadorRepository = createPatrocinadorRepository.Invoke(); _requestEmulator = requestEmulator; } public Guid Create() { using (_requestEmulator.Invoke()) { var patrocinador = new Patrocinador("APRESS", "http://apress.com/") { Logo = LoadLogo("images/apress.gif") }; _logo = patrocinador.Logo; _patrocinadorRepository.Save(patrocinador); return patrocinador.Id; } } public void Read() { Guid patrocinadorId = Create(); using (_requestEmulator.Invoke()) { var patrocinador = _patrocinadorRepository.Get(patrocinadorId); Assert.IsNotNull(patrocinador); Assert.AreEqual("APRESS", patrocinador.Nombre); Assert.AreEqual("http://apress.com/", patrocinador.WebSite); Assert.IsNotNull(patrocinador.Logo); Assert.AreEqual(_logo, patrocinador.Logo); } } public void Update() { Guid patrocinadorId = Create(); using (_requestEmulator.Invoke()) { var patrocinador = _patrocinadorRepository.Get(patrocinadorId); Assert.IsNotNull(patrocinador); patrocinador.Nombre = "Apress"; patrocinador.WebSite = "http://apress.com"; } using (_requestEmulator.Invoke()) { var patrocinador = _patrocinadorRepository.Get(patrocinadorId); Assert.IsNotNull(patrocinador); Assert.AreEqual("Apress", patrocinador.Nombre); Assert.AreEqual("http://apress.com", patrocinador.WebSite); } } public void Delete() { Guid patrocinadorId = Create(); using (_requestEmulator.Invoke()) { var patrocinador = _patrocinadorRepository.Get(patrocinadorId); Assert.IsNotNull(patrocinador); _patrocinadorRepository.Delete(patrocinador); } using (_requestEmulator.Invoke()) { var patrocinador = _patrocinadorRepository.Get(patrocinadorId); Assert.IsNull(patrocinador); } } } }