annotate Agendas/trunk/src/Agendas.Twitter.Tests/Publicador_tests.cs @ 228:9f61e8555114

Nombrando a todos los ponentes en los twitter y partiendo los mensajes que superan el máximo permitido
author nelopauselli
date Wed, 28 Sep 2011 18:51:53 -0300
parents 5346c0500594
children 33976aea7546
rev   line source
111
90ce239cfa6d Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
diff changeset
1 using System;
228
9f61e8555114 Nombrando a todos los ponentes en los twitter y partiendo los mensajes que superan el máximo permitido
nelopauselli
parents: 200
diff changeset
2 using System.Collections.Generic;
9f61e8555114 Nombrando a todos los ponentes en los twitter y partiendo los mensajes que superan el máximo permitido
nelopauselli
parents: 200
diff changeset
3 using System.Linq;
111
90ce239cfa6d Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
diff changeset
4 using AltNetHispano.Agendas.Domain;
90ce239cfa6d Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
diff changeset
5 using AltNetHispano.Agendas.Tests;
90ce239cfa6d Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
diff changeset
6 using AltNetHispano.Agendas.Twitter;
90ce239cfa6d Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
diff changeset
7 using Moq;
90ce239cfa6d Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
diff changeset
8 using NUnit.Framework;
90ce239cfa6d Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
diff changeset
9
90ce239cfa6d Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
diff changeset
10 namespace Agendas.Twitter.Tests
90ce239cfa6d Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
diff changeset
11 {
90ce239cfa6d Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
diff changeset
12 [TestFixture]
90ce239cfa6d Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
diff changeset
13 public class Publicador_tests : TestBase
90ce239cfa6d Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
diff changeset
14 {
90ce239cfa6d Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
diff changeset
15 [Test]
90ce239cfa6d Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
diff changeset
16 public void Proponer_evento()
90ce239cfa6d Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
diff changeset
17 {
90ce239cfa6d Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
diff changeset
18 var adapter = new Mock<ITwitterAdapter>();
158
734d3f0853bf Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents: 145
diff changeset
19
734d3f0853bf Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents: 145
diff changeset
20 string message;
111
90ce239cfa6d Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
diff changeset
21 string twitt = null;
158
734d3f0853bf Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents: 145
diff changeset
22 adapter.Setup(a => a.Update(It.IsAny<string>(), out message)).Returns(true).Callback<string, string>((status, m) => twitt = status);
111
90ce239cfa6d Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
diff changeset
23
90ce239cfa6d Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
diff changeset
24 var publicador = new TwitterPublicador(adapter.Object);
90ce239cfa6d Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
diff changeset
25
200
5346c0500594 Pasando a estructura de db fija, ya no se crea automáticamente.
nelopauselli
parents: 185
diff changeset
26 var agenda = new Agenda(publicador, DefaultEventoRepository, DefaultPersonaRepository);
111
90ce239cfa6d Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
diff changeset
27
90ce239cfa6d Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
diff changeset
28 agenda.Proponer("Identity Providers", null, null, TipoEvento.GrupoEstudio);
90ce239cfa6d Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
diff changeset
29
158
734d3f0853bf Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents: 145
diff changeset
30 adapter.Verify(a => a.Update(It.IsAny<string>(), out message), Times.Once());
111
90ce239cfa6d Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
diff changeset
31
90ce239cfa6d Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
diff changeset
32 Assert.That(twitt, Is.StringContaining("GrupoEstudio"));
90ce239cfa6d Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
diff changeset
33 }
90ce239cfa6d Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
diff changeset
34
90ce239cfa6d Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
diff changeset
35 [Test]
90ce239cfa6d Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
diff changeset
36 public void Proponer_y_agendar_evento()
90ce239cfa6d Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
diff changeset
37 {
90ce239cfa6d Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
diff changeset
38 var adapter = new Mock<ITwitterAdapter>();
158
734d3f0853bf Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents: 145
diff changeset
39
734d3f0853bf Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents: 145
diff changeset
40 string message;
111
90ce239cfa6d Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
diff changeset
41 string twitt = null;
185
2d02adb79322 Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents: 158
diff changeset
42 var fechaInicio = DateTime.Today.AddDays(7).ToUniversalTime();
2d02adb79322 Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents: 158
diff changeset
43 var fechaTermino = fechaInicio.AddHours(2);
158
734d3f0853bf Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents: 145
diff changeset
44 adapter.Setup(a => a.Update(It.IsAny<string>(), out message)).Returns(true).Callback<string, string>((status, m) => twitt = status);
111
90ce239cfa6d Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
diff changeset
45
90ce239cfa6d Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
diff changeset
46 var publicador = new TwitterPublicador(adapter.Object);
90ce239cfa6d Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
diff changeset
47
200
5346c0500594 Pasando a estructura de db fija, ya no se crea automáticamente.
nelopauselli
parents: 185
diff changeset
48 var agenda = new Agenda(publicador, DefaultEventoRepository, DefaultPersonaRepository);
111
90ce239cfa6d Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
diff changeset
49 agenda.Proponer("Identity Providers", null, null, TipoEvento.GrupoEstudio);
90ce239cfa6d Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
diff changeset
50
158
734d3f0853bf Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents: 145
diff changeset
51 adapter.Verify(a => a.Update(It.IsAny<string>(), out message), Times.Once());
111
90ce239cfa6d Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
diff changeset
52
185
2d02adb79322 Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents: 158
diff changeset
53 agenda.Agendar("Identity Providers", TestsHelper.GetOrCreatePonente("Nelo Pauselli"), fechaInicio, fechaTermino,
2d02adb79322 Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents: 158
diff changeset
54 null, TipoEvento.GrupoEstudio);
111
90ce239cfa6d Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
diff changeset
55
158
734d3f0853bf Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents: 145
diff changeset
56 adapter.Verify(a => a.Update(It.IsAny<string>(), out message), Times.Exactly(2));
111
90ce239cfa6d Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
diff changeset
57
90ce239cfa6d Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
diff changeset
58 Assert.That(twitt, Is.StringContaining("@nelopauselli"));
90ce239cfa6d Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
diff changeset
59
90ce239cfa6d Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
diff changeset
60 }
228
9f61e8555114 Nombrando a todos los ponentes en los twitter y partiendo los mensajes que superan el máximo permitido
nelopauselli
parents: 200
diff changeset
61
9f61e8555114 Nombrando a todos los ponentes en los twitter y partiendo los mensajes que superan el máximo permitido
nelopauselli
parents: 200
diff changeset
62 [Test]
9f61e8555114 Nombrando a todos los ponentes en los twitter y partiendo los mensajes que superan el máximo permitido
nelopauselli
parents: 200
diff changeset
63 public void Twitter_texto_largo()
9f61e8555114 Nombrando a todos los ponentes en los twitter y partiendo los mensajes que superan el máximo permitido
nelopauselli
parents: 200
diff changeset
64 {
9f61e8555114 Nombrando a todos los ponentes en los twitter y partiendo los mensajes que superan el máximo permitido
nelopauselli
parents: 200
diff changeset
65 var adapter = new Mock<ITwitterAdapter>();
9f61e8555114 Nombrando a todos los ponentes en los twitter y partiendo los mensajes que superan el máximo permitido
nelopauselli
parents: 200
diff changeset
66
9f61e8555114 Nombrando a todos los ponentes en los twitter y partiendo los mensajes que superan el máximo permitido
nelopauselli
parents: 200
diff changeset
67 string message;
9f61e8555114 Nombrando a todos los ponentes en los twitter y partiendo los mensajes que superan el máximo permitido
nelopauselli
parents: 200
diff changeset
68 var twitters= new List<string>();
9f61e8555114 Nombrando a todos los ponentes en los twitter y partiendo los mensajes que superan el máximo permitido
nelopauselli
parents: 200
diff changeset
69 adapter.Setup(a => a.Update(It.IsAny<string>(), out message)).Returns(true).Callback<string, string>((status, m) => twitters.Add(status));
9f61e8555114 Nombrando a todos los ponentes en los twitter y partiendo los mensajes que superan el máximo permitido
nelopauselli
parents: 200
diff changeset
70
9f61e8555114 Nombrando a todos los ponentes en los twitter y partiendo los mensajes que superan el máximo permitido
nelopauselli
parents: 200
diff changeset
71 var publicador = new TwitterPublicador(adapter.Object);
9f61e8555114 Nombrando a todos los ponentes en los twitter y partiendo los mensajes que superan el máximo permitido
nelopauselli
parents: 200
diff changeset
72 var agenda = new Agenda(publicador, DefaultEventoRepository, DefaultPersonaRepository);
9f61e8555114 Nombrando a todos los ponentes en los twitter y partiendo los mensajes que superan el máximo permitido
nelopauselli
parents: 200
diff changeset
73
9f61e8555114 Nombrando a todos los ponentes en los twitter y partiendo los mensajes que superan el máximo permitido
nelopauselli
parents: 200
diff changeset
74 var ponente = new Persona("Carlos Peix", "carlospeix@gmail.com", "carlospeix", "http://www.carlospeix.com.ar");
9f61e8555114 Nombrando a todos los ponentes en los twitter y partiendo los mensajes que superan el máximo permitido
nelopauselli
parents: 200
diff changeset
75 DefaultPersonaRepository.Save(ponente);
9f61e8555114 Nombrando a todos los ponentes en los twitter y partiendo los mensajes que superan el máximo permitido
nelopauselli
parents: 200
diff changeset
76
9f61e8555114 Nombrando a todos los ponentes en los twitter y partiendo los mensajes que superan el máximo permitido
nelopauselli
parents: 200
diff changeset
77 var otrosPonentes = new Persona("Nelo Pauselli", "nelopauselli@gmail.com", "nelopauselli",
9f61e8555114 Nombrando a todos los ponentes en los twitter y partiendo los mensajes que superan el máximo permitido
nelopauselli
parents: 200
diff changeset
78 "http://nelopauselli.blogspot.com/");
9f61e8555114 Nombrando a todos los ponentes en los twitter y partiendo los mensajes que superan el máximo permitido
nelopauselli
parents: 200
diff changeset
79 DefaultPersonaRepository.Save(otrosPonentes);
9f61e8555114 Nombrando a todos los ponentes en los twitter y partiendo los mensajes que superan el máximo permitido
nelopauselli
parents: 200
diff changeset
80
9f61e8555114 Nombrando a todos los ponentes en los twitter y partiendo los mensajes que superan el máximo permitido
nelopauselli
parents: 200
diff changeset
81 var inicio = DateTime.Now.AddDays(3);
9f61e8555114 Nombrando a todos los ponentes en los twitter y partiendo los mensajes que superan el máximo permitido
nelopauselli
parents: 200
diff changeset
82
9f61e8555114 Nombrando a todos los ponentes en los twitter y partiendo los mensajes que superan el máximo permitido
nelopauselli
parents: 200
diff changeset
83 agenda.Agendar("Identity Providers Públicos y Empresariales", ponente.Id, inicio, inicio.AddHours(2), null, TipoEvento.Van,
9f61e8555114 Nombrando a todos los ponentes en los twitter y partiendo los mensajes que superan el máximo permitido
nelopauselli
parents: 200
diff changeset
84 new[] {otrosPonentes.Id});
9f61e8555114 Nombrando a todos los ponentes en los twitter y partiendo los mensajes que superan el máximo permitido
nelopauselli
parents: 200
diff changeset
85
9f61e8555114 Nombrando a todos los ponentes en los twitter y partiendo los mensajes que superan el máximo permitido
nelopauselli
parents: 200
diff changeset
86 Assert.IsTrue(twitters.Any());
9f61e8555114 Nombrando a todos los ponentes en los twitter y partiendo los mensajes que superan el máximo permitido
nelopauselli
parents: 200
diff changeset
87 var joined = string.Empty;
9f61e8555114 Nombrando a todos los ponentes en los twitter y partiendo los mensajes que superan el máximo permitido
nelopauselli
parents: 200
diff changeset
88 foreach (var twitter in twitters)
9f61e8555114 Nombrando a todos los ponentes en los twitter y partiendo los mensajes que superan el máximo permitido
nelopauselli
parents: 200
diff changeset
89 {
9f61e8555114 Nombrando a todos los ponentes en los twitter y partiendo los mensajes que superan el máximo permitido
nelopauselli
parents: 200
diff changeset
90 Console.WriteLine(twitter);
9f61e8555114 Nombrando a todos los ponentes en los twitter y partiendo los mensajes que superan el máximo permitido
nelopauselli
parents: 200
diff changeset
91 Assert.LessOrEqual(twitter.Length, 140);
9f61e8555114 Nombrando a todos los ponentes en los twitter y partiendo los mensajes que superan el máximo permitido
nelopauselli
parents: 200
diff changeset
92 joined += twitter;
9f61e8555114 Nombrando a todos los ponentes en los twitter y partiendo los mensajes que superan el máximo permitido
nelopauselli
parents: 200
diff changeset
93 }
9f61e8555114 Nombrando a todos los ponentes en los twitter y partiendo los mensajes que superan el máximo permitido
nelopauselli
parents: 200
diff changeset
94 Assert.That(joined, Is.StringContaining("Identity Providers Públicos y Empresariales"));
9f61e8555114 Nombrando a todos los ponentes en los twitter y partiendo los mensajes que superan el máximo permitido
nelopauselli
parents: 200
diff changeset
95 Assert.That(joined, Is.StringContaining("@carlospeix"));
9f61e8555114 Nombrando a todos los ponentes en los twitter y partiendo los mensajes que superan el máximo permitido
nelopauselli
parents: 200
diff changeset
96 Assert.That(joined, Is.StringContaining("@nelopauselli"));
9f61e8555114 Nombrando a todos los ponentes en los twitter y partiendo los mensajes que superan el máximo permitido
nelopauselli
parents: 200
diff changeset
97
9f61e8555114 Nombrando a todos los ponentes en los twitter y partiendo los mensajes que superan el máximo permitido
nelopauselli
parents: 200
diff changeset
98 Assert.AreEqual(2, twitters.Count());
9f61e8555114 Nombrando a todos los ponentes en los twitter y partiendo los mensajes que superan el máximo permitido
nelopauselli
parents: 200
diff changeset
99 Assert.AreEqual("Se ha agendando el evento Identity Providers Públicos y Empresariales con @carlospeix, @nelopauselli para el 01/10/2011...", twitters.First());
9f61e8555114 Nombrando a todos los ponentes en los twitter y partiendo los mensajes que superan el máximo permitido
nelopauselli
parents: 200
diff changeset
100 Assert.AreEqual("...por http://snipr.com/virtualaltnet", twitters.Last());
9f61e8555114 Nombrando a todos los ponentes en los twitter y partiendo los mensajes que superan el máximo permitido
nelopauselli
parents: 200
diff changeset
101
9f61e8555114 Nombrando a todos los ponentes en los twitter y partiendo los mensajes que superan el máximo permitido
nelopauselli
parents: 200
diff changeset
102 adapter.Verify(a => a.Update(It.IsAny<string>(), out message), Times.Exactly(2));
9f61e8555114 Nombrando a todos los ponentes en los twitter y partiendo los mensajes que superan el máximo permitido
nelopauselli
parents: 200
diff changeset
103
9f61e8555114 Nombrando a todos los ponentes en los twitter y partiendo los mensajes que superan el máximo permitido
nelopauselli
parents: 200
diff changeset
104 }
111
90ce239cfa6d Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
diff changeset
105 }
90ce239cfa6d Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
diff changeset
106 }