Mercurial > altnet-hispano
annotate Agendas/trunk/src/Agendas.Twitter.Tests/Publicador_tests.cs @ 240:01a9b47185eb
Tests de Twitter, daban en rojo por mensaje fijo (01/10/2011).
author | juanjose.montesdeocaarbos |
---|---|
date | Wed, 05 Oct 2011 07:41:30 -0300 |
parents | e5959f3405e0 |
children | 5cc1681d3789 |
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()); |
240
01a9b47185eb
Tests de Twitter, daban en rojo por mensaje fijo (01/10/2011).
juanjose.montesdeocaarbos
parents:
231
diff
changeset
|
99 Assert.AreEqual(string.Format("Se ha agendando el evento Identity Providers Públicos y Empresariales con @carlospeix y @nelopauselli para el {0}...", inicio.ToString("dd/MM/yyyy")), twitters.First()); |
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
|
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 } |
231 | 105 |
106 [Test] | |
107 public void Evento_sin_ponente() | |
108 { | |
109 var adapter = new Mock<ITwitterAdapter>(); | |
110 | |
111 string message; | |
112 var twitters = new List<string>(); | |
113 adapter.Setup(a => a.Update(It.IsAny<string>(), out message)).Returns(true).Callback<string, string>((status, m) => twitters.Add(status)); | |
114 | |
115 var publicador = new TwitterPublicador(adapter.Object); | |
116 var agenda = new Agenda(publicador, DefaultEventoRepository, DefaultPersonaRepository); | |
117 | |
118 var inicio = DateTime.Now.AddDays(3); | |
119 | |
120 agenda.Agendar("Identity Providers Públicos y Empresariales", Guid.Empty, inicio, inicio.AddHours(2), null, TipoEvento.Cafe); | |
121 | |
122 Assert.IsTrue(twitters.Any()); | |
123 var joined = string.Empty; | |
124 foreach (var twitter in twitters) | |
125 { | |
126 Console.WriteLine(twitter); | |
127 Assert.LessOrEqual(twitter.Length, 140); | |
128 joined += twitter; | |
129 } | |
240
01a9b47185eb
Tests de Twitter, daban en rojo por mensaje fijo (01/10/2011).
juanjose.montesdeocaarbos
parents:
231
diff
changeset
|
130 Assert.AreEqual(string.Format("Se ha agendando el evento Identity Providers Públicos y Empresariales para el {0} por http://snipr.com/virtualaltnet", inicio.ToString("dd/MM/yyyy")), joined); |
231 | 131 |
132 adapter.Verify(a => a.Update(It.IsAny<string>(), out message), Times.Once()); | |
133 | |
134 } | |
111
90ce239cfa6d
Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
diff
changeset
|
135 } |
90ce239cfa6d
Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
diff
changeset
|
136 } |