view Agendas/trunk/src/Agendas.Tests/EventoTests.cs @ 2:c03560ae4762

Test de Crud para la agenda
author nelopauselli
date Sat, 22 Jan 2011 20:21:31 -0300
parents 6bb4ab4c0611
children 5f007e266509
line wrap: on
line source

using System;
using Agendas.Repositories.Memory;
using AltNetHispano.Agendas.Domain;
using AltNetHispano.Agendas.Domain.Repositories;
using NUnit.Framework;

namespace AltNetHispano.Agendas.Tests
{
	[TestFixture]
	public class EventoTests
	{
		[Test]
		public void Van_crud()
		{
			Guid vanId;
			{
				var van = new Van
							{
								Titulo = "TDD - Diseño Basado en Ejemplos",
								Ponente = "Carlos Blé",
								Fecha = new DateTime(2010, 04, 16)
							};
				IVanRepository eventoRepository = new VanRepository();

				eventoRepository.Save(van);
				vanId = van.Id;
			}

			const string sintesis =
				"Durante la primera hora se habló de los principios SOLID, de BDD, TDD y ATDD. Discusión entre las diferencias entre TDD y BDD, así como también sobre algunas cuestiones relativas a la nomenclatura.\n Durante la segunda hora se realizó un ejercicio práctico demostrando como se comienza a practicar TDD.\n La última parte de la VAN es la mas interesante respecto a lo que es TDD y como se practica.";

			{
				IVanRepository eventoRepository = new VanRepository();

				var van = eventoRepository.Get(vanId);

				Assert.IsNotNull(van);
				Assert.AreEqual("Carlos Blé", van.Ponente);
				Assert.AreEqual("TDD - Diseño Basado en Ejemplos", van.Titulo);
				Assert.AreEqual(new DateTime(2010, 04, 16), van.Fecha);

				van.Sintesis = sintesis;
				van.Enlaces = new[] { "www.carlosble.com", "www.dirigidoPorTests.com" };
				van.Fecha = new DateTime(2010, 04, 17);

				eventoRepository.Update(van);
			}

			{
				IVanRepository eventoRepository = new VanRepository();

				var van = eventoRepository.Get(vanId);

				Assert.IsNotNull(van);
				Assert.AreEqual("Carlos Blé", van.Ponente);
				Assert.AreEqual("TDD - Diseño Basado en Ejemplos", van.Titulo);
				Assert.AreEqual(new DateTime(2010, 04, 17), van.Fecha);
				Assert.AreEqual(sintesis, van.Sintesis);
				Assert.IsNotNull(van.Enlaces);
				Assert.AreEqual(2, van.Enlaces.Count);
				Assert.AreEqual("www.carlosble.com", van.Enlaces[0]);
				Assert.AreEqual("www.dirigidoPorTests.com", van.Enlaces[1]);

				eventoRepository.Delete(van);
			}

			{
				IVanRepository eventoRepository = new VanRepository();

				var van = eventoRepository.Get(vanId);

				Assert.IsNull(van);
			}
		}

		[Test]
		public void Cafe_crud()
		{
			Guid cafeId;
			{
				var cafe = new Cafe
				{
					Titulo = "La Inmortalidad de la Medusa - Arquitectura",
					Fecha = new DateTime(2010, 08, 27),
				};
				ICafeRepository eventoRepository = new CafeRepository();

				eventoRepository.Save(cafe);
				cafeId = cafe.Id;
			}

			const string sintesis =
				"Se habló sobre la sensación de perdida de control con el uso de frameworks, la Organización en capas de una aplicación, servicios en la web que se combinan.\nSe discutió un poco sobre Testing Unitario vs Test de Integración. Testing con Stubs vs Mocks, la diferencia entre decir que debe hacer un componente y como debe hacerlo.\nSe habló sobre MVVM.";

			{
				ICafeRepository eventoRepository = new CafeRepository();

				var cafe = eventoRepository.Get(cafeId);

				Assert.IsNotNull(cafe);
				Assert.AreEqual("La Inmortalidad de la Medusa - Arquitectura", cafe.Titulo);
				Assert.AreEqual(new DateTime(2010, 08, 27), cafe.Fecha);

				cafe.Sintesis = sintesis;

				eventoRepository.Update(cafe);
			}

			{
				ICafeRepository eventoRepository = new CafeRepository();

				var cafe = eventoRepository.Get(cafeId);

				Assert.IsNotNull(cafe);
				Assert.AreEqual("La Inmortalidad de la Medusa - Arquitectura", cafe.Titulo);
				Assert.AreEqual(new DateTime(2010, 08, 27), cafe.Fecha);
				Assert.AreEqual(sintesis, cafe.Sintesis);

				eventoRepository.Delete(cafe);
			}

			{
				ICafeRepository eventoRepository = new CafeRepository();

				var cafe = eventoRepository.Get(cafeId);

				Assert.IsNull(cafe);
			}
		}
	}
}