diff Agendas/trunk/src/Agendas.Tests/Cruds/PatrocinadorCrud.cs @ 137:2d1adbaf0373

CRUD de Patrocinador
author nelopauselli
date Thu, 28 Jul 2011 09:26:24 -0300
parents
children 62791999ad01
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Agendas/trunk/src/Agendas.Tests/Cruds/PatrocinadorCrud.cs	Thu Jul 28 09:26:24 2011 -0300
@@ -0,0 +1,96 @@
+using System;
+using System.Drawing;
+using System.IO;
+using System.Linq;
+using AltNetHispano.Agendas.Domain;
+using AltNetHispano.Agendas.Domain.Repositories;
+using NUnit.Framework;
+
+namespace AltNetHispano.Agendas.Tests.Cruds
+{
+	public class PatrocinadorCrud
+	{
+		private readonly IPatrocinadorRepository _patrocinadorRepository;
+		private readonly Func<IDisposable> _requestEmulator;
+		private byte[] _logo;
+
+		public PatrocinadorCrud(Func<IPatrocinadorRepository> createPatrocinadorRepository, Func<IDisposable> requestEmulator)
+		{
+			_patrocinadorRepository = createPatrocinadorRepository.Invoke();
+			_requestEmulator = requestEmulator;
+		}
+
+		public Guid Create()
+		{
+			using (_requestEmulator.Invoke())
+			{
+				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;
+
+				_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.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";
+			}
+
+			using (_requestEmulator.Invoke())
+			{
+				var patrocinador = _patrocinadorRepository.Get(patrocinadorId);
+
+				Assert.IsNotNull(patrocinador);
+				Assert.AreEqual("Apress", patrocinador.Nombre);
+			}
+		}
+
+		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);
+			}
+		}
+	}
+}
\ No newline at end of file