view Agendas/trunk/src/Agendas.Twitter.Tests/Publicador_tests.cs @ 111:90ce239cfa6d

Tests sobre el publicador de twitter, cada track se pulica solo una vez
author Nelo@Kenia.neluz.int
date Wed, 08 Jun 2011 08:40:04 -0300
parents
children 62791999ad01
line wrap: on
line source

using System;
using AltNetHispano.Agendas.Domain;
using AltNetHispano.Agendas.Tests;
using AltNetHispano.Agendas.Twitter;
using Moq;
using NUnit.Framework;
using Twitterizer;

namespace Agendas.Twitter.Tests
{
	[TestFixture]
	public class Publicador_tests : TestBase
	{
		[Test]
		public void Proponer_evento()
		{
			var adapter = new Mock<ITwitterAdapter>();
			string twitt = null;

			var response = new TwitterResponse<TwitterStatus>
			               	{
			               		Result =
			               			RequestResult.Success
			               	};

			adapter.Setup(a => a.UpdateStatus(It.IsAny<OAuthTokens>(), It.IsAny<string>()))
				.Returns(response)
				.Callback<OAuthTokens, string>((tokens, status) => twitt = status);

			var publicador = new TwitterPublicador(adapter.Object);

			var agenda = new Agenda(publicador, DefaultEventoRepository, DefaultPersonaRepository);

			agenda.Proponer("Identity Providers", null, null, TipoEvento.GrupoEstudio);

			adapter.Verify(a => a.UpdateStatus(It.IsAny<OAuthTokens>(), It.IsAny<string>()), Times.Once());

			Assert.That(twitt, Is.StringContaining("GrupoEstudio"));
		}

		[Test]
		public void Proponer_y_agendar_evento()
		{
			var adapter = new Mock<ITwitterAdapter>();
			string twitt = null;

			var response = new TwitterResponse<TwitterStatus>
			{
				Result =
					RequestResult.Success
			};

			adapter.Setup(a => a.UpdateStatus(It.IsAny<OAuthTokens>(), It.IsAny<string>()))
				.Returns(response)
				.Callback<OAuthTokens, string>((tokens, status) => twitt = status);

			var publicador = new TwitterPublicador(adapter.Object);

			var agenda = new Agenda(publicador, DefaultEventoRepository, DefaultPersonaRepository);
			agenda.Proponer("Identity Providers", null, null, TipoEvento.GrupoEstudio);

			adapter.Verify(a => a.UpdateStatus(It.IsAny<OAuthTokens>(), It.IsAny<string>()), Times.Once());

			agenda.Agendar("Identity Providers", "Nelo Pauselli", DateTime.Today.AddDays(7), null, TipoEvento.GrupoEstudio);

			adapter.Verify(a => a.UpdateStatus(It.IsAny<OAuthTokens>(), It.IsAny<string>()), Times.Exactly(2));

			Assert.That(twitt, Is.StringContaining("@nelopauselli"));

		}
	}
}