public DoTimelineTest ( IUserSession session, List |
||
session | IUserSession | |
testSeq | List |
|
return | Task |
public async Task<bool> DoTimelineTest(IUserSession session, List<int> testSeq)
{
var successStatus = true;
try
{
// 1
if (testSeq.Contains(1))
{
ConsoleOutput.PrintMessage("7.1 Timeline\\GetMentions", ConsoleColor.Gray);
var timeline1 = await session.GetMentions(count: 100);
if (timeline1.OK)
{
foreach (var tweet in timeline1)
{
ConsoleOutput.PrintMessage(
String.Format("From: {0} // Message: {1}", tweet.User.ScreenName, tweet.Text));
}
}
else
successStatus = false;
}
// 2
if (testSeq.Contains(2))
{
ConsoleOutput.PrintMessage("7.2 Timeline\\GetUserTimeline", ConsoleColor.Gray);
var timeline2 = await session.GetUserTimeline(screenName: "shiftkey", count: 20);
if (timeline2.OK)
{
foreach (var tweet in timeline2)
{
ConsoleOutput.PrintMessage(
String.Format("From: {0} // Message: {1}", tweet.User.ScreenName, tweet.Text));
}
}
else
successStatus = false;
}
// 3
if (testSeq.Contains(3))
{
ConsoleOutput.PrintMessage("7.3 Timeline\\GetHomeTimeline", ConsoleColor.Gray);
var timeline3 = await session.GetHomeTimeline(count: 30);
if (timeline3.OK)
{
foreach (var tweet in timeline3)
{
ConsoleOutput.PrintMessage(
String.Format("From: {0} // Message: {1}", tweet.User.ScreenName, tweet.Text));
}
}
else
successStatus = false;
}
// 4
if (testSeq.Contains(4))
{
ConsoleOutput.PrintMessage(
"7.4 Timeline\\GetHomeTimeline - Paging Forward, getting new tweets, with ID mechanism",
ConsoleColor.Gray);
var timeline4 = await session.GetHomeTimeline(count: 10);
long largestid = 0;
long smallestid = 0;
if (timeline4.OK)
{
smallestid = timeline4.ToList()[0].Id;
foreach (var tweet in timeline4)
{
ConsoleOutput.PrintMessage(
String.Format("ID: {0} // From: {1} // Message: {2}", tweet.Id, tweet.User.ScreenName,
tweet.Text));
if (tweet.Id > largestid)
largestid = tweet.Id;
if (tweet.Id < smallestid)
smallestid = tweet.Id;
}
ConsoleOutput.PrintMessage(
String.Format(" LargestID: {0} // SmallestID: {1}", largestid, smallestid));
ConsoleOutput.PrintMessage("Waiting 20 seconds");
await Task.Delay(TimeSpan.FromSeconds(20));
ConsoleOutput.PrintMessage("Now Updating Home Timeline, should add newer messages");
var timeline41 = await session.GetHomeTimeline(sinceId: largestid, count: 10);
if (timeline41.OK)
{
foreach (var tweet in timeline41)
{
ConsoleOutput.PrintMessage(
String.Format("ID: {0} // From: {1} // Message: {2}", tweet.Id,
tweet.User.ScreenName, tweet.Text));
if (tweet.Id > largestid)
largestid = tweet.Id;
if (tweet.Id < smallestid)
smallestid = tweet.Id;
}
}
ConsoleOutput.PrintMessage(
String.Format(" LargestID: {0} // SmallestID: {1}", largestid, smallestid));
ConsoleOutput.PrintMessage("Now Updating Home Timeline, should show older messages");
var timeline42 = await session.GetHomeTimeline(maxId: smallestid, count: 10);
if (timeline42.OK)
{
foreach (var tweet in timeline42)
{
ConsoleOutput.PrintMessage(
String.Format("ID: {0} // From: {1} // Message: {2}", tweet.Id,
tweet.User.ScreenName, tweet.Text));
if (tweet.Id > largestid)
largestid = tweet.Id;
if (tweet.Id < smallestid)
smallestid = tweet.Id;
}
}
else
successStatus = false;
}
}
// 5
if (testSeq.Contains(5))
{
ConsoleOutput.PrintMessage("7.5 Timeline\\GetRetweetsOfMe", ConsoleColor.Gray);
var timeline5 = await session.GetRetweetsOfMe(count: 30);
if (timeline5.OK)
{
foreach (var tweet in timeline5)
{
ConsoleOutput.PrintMessage(
String.Format("From: {0} // Message: {1}", tweet.User.ScreenName, tweet.Text));
}
}
else
successStatus = false;
}
// 6
if (testSeq.Contains(6))
{
ConsoleOutput.PrintMessage(
"7.6 Timeline\\GetHomeTimeline - Paging Backward, getting older tweets with ID mechanism",
ConsoleColor.Gray);
long smallestid = 0;
long largestid = 0;
int howManyToGet = 100;
int pagingSize = 10;
do
{
var timeline6 = await session.GetHomeTimeline(count: pagingSize, maxId: smallestid);
if (timeline6.OK)
{
smallestid = timeline6.ToList()[0].Id; // grab the first for comparator
foreach (var tweet in timeline6)
{
ConsoleOutput.PrintMessage(
String.Format("ID: {0} // From: {1} // Message: {2}", tweet.Id,
tweet.User.ScreenName,
tweet.Text));
if (tweet.Id < smallestid) smallestid = tweet.Id;
if (tweet.Id > largestid) largestid = tweet.Id;
howManyToGet--;
}
ConsoleOutput.PrintMessage(
String.Format("SmallestID: {0}", smallestid),
ConsoleColor.Cyan);
}
else
{
successStatus = false;
TwitterLiveFireUserAuth.PrintTwitterErrors(timeline6.twitterControlMessage);
break;
}
} while (howManyToGet > 0);
}
}
catch (Exception e)
{
ConsoleOutput.PrintError(e.ToString());
return false;
}
return successStatus;
}
}
public static void Main(string[] args) { ConsoleOutput.PrintMessage("BoxKite.Twitter Live Fire Tests (User Auth)"); ConsoleOutput.PrintMessage("(control-c ends at anytime)"); var twittercredentials = ManageTwitterCredentials.GetTwitterCredentialsFromFile(); if (twittercredentials.Valid) { System.Console.CancelKeyPress += cancelStreamHandler; var session = new UserSession(twittercredentials, new DesktopPlatformAdaptor()); var checkUser = session.GetVerifyCredentials().Result; if (checkUser.OK) { ConsoleOutput.PrintMessage(twittercredentials.ScreenName + " is authorised to use BoxKite.Twitter."); // put the test series number you wish to run into the init of the array // then in each test group, put the numbers of the tests you would like to run // NOTE: some tests require a previous test to work successfully // NOTE: some tests post/delete items. This *is* a live fire test! var testSeriesToRun = new List <int> { 4 }; // Calls tested by Test Series // series 1 => 10 (UserAccounts & Auth) // series 2 => 1 (API Management) // series 3 => 4 (Direct Messages) // series 4 => 5 (Tweets) // series 5 => 3 (Favourites) // series 6 => 8 (Friends/Followers) // series 7 => 6 (TimeLine) // series 8 => 3 (Trends) // series 9 => 2 (SuggestedUsers) // series 10=> 7 (Lists) // series 11=> 3 (Combos) // ============= // TOTAL 52 // Test Series 1 if (testSeriesToRun.Contains(1)) { var ualft = new UserAccountLiveFireTests(); var testResult1 = ualft.DoUserAccountTest(session, new List <int> { 1, 2, 3, 4, 5, 6 }).Result; if (testResult1) { ConsoleOutput.PrintMessage(String.Format("1.0 User Account Tests Status: {0}", testResult1), ConsoleColor.White); } else { ConsoleOutput.PrintMessage(String.Format("1.0 User Account Tests Status: {0}", testResult1), ConsoleColor.Red); } } // Test Series 2 if (testSeriesToRun.Contains(2)) { var doit = new ApiManagementLiveFireTests(); var testResult2 = doit.DoApiTest(session, new List <int> { 1 }).Result; if (testResult2) { ConsoleOutput.PrintMessage(String.Format("2.0 API Management Tests Status: {0}", testResult2), ConsoleColor.White); } else { ConsoleOutput.PrintMessage(String.Format("2.0 API Management Tests Status: {0}", testResult2), ConsoleColor.Red); } } // Test Series 3 if (testSeriesToRun.Contains(3)) { var dms = new DirectMessagesLiveFireTests(); var testResult3 = dms.DoDMTest(session, new List <int> { 1, 2 }).Result; if (testResult3) { ConsoleOutput.PrintMessage(String.Format("3.0 Direct Messages Tests Status: {0}", testResult3), ConsoleColor.White); } else { ConsoleOutput.PrintMessage(String.Format("3.0 Direct Messages Tests Status: {0}", testResult3), ConsoleColor.Red); } } // Test Series 4 if (testSeriesToRun.Contains(4)) { var tws = new TweetsLiveFireTests(); var testResult4 = tws.DoTweetTest(session, new List <int> { 5 }).Result; if (testResult4) { ConsoleOutput.PrintMessage(String.Format("4.0 Tweet Tests Status: {0}", testResult4), ConsoleColor.White); } else { ConsoleOutput.PrintMessage(String.Format("4.0 Tweet Tests Status: {0}", testResult4), ConsoleColor.Red); } } // Test Series 5 if (testSeriesToRun.Contains(5)) { var fvs = new FavouritesLiveFireTests(); var testResult5 = fvs.DoFavouritesTest(session, new List <int> { 1, 2, 3 }).Result; if (testResult5) { ConsoleOutput.PrintMessage(String.Format("5.0 Favourite Tests Status: {0}", testResult5), ConsoleColor.White); } else { ConsoleOutput.PrintMessage(String.Format("5.0 Favourite Tests Status: {0}", testResult5), ConsoleColor.Red); } } // Test Series 6 if (testSeriesToRun.Contains(6)) { var ffvs = new FriendsFollowersLiveFireTests(); var testResult6 = ffvs.DoFriendsFollowersTest(session, new List <int> { 4, 5 }).Result; if (testResult6) { ConsoleOutput.PrintMessage(String.Format("6.0 FriendsFollowers Tests Status: {0}", testResult6), ConsoleColor.White); } else { ConsoleOutput.PrintMessage(String.Format("6.0 FriendsFollowers Tests Status: {0}", testResult6), ConsoleColor.Red); } } // Test Series 7 if (testSeriesToRun.Contains(7)) { var tmln = new TimelineLiveFireTests(); var testResult7 = tmln.DoTimelineTest(session, new List <int> { 6 }).Result; if (testResult7) { ConsoleOutput.PrintMessage(String.Format("7.0 Timeline Tests Status: {0}", testResult7), ConsoleColor.White); } else { ConsoleOutput.PrintMessage(String.Format("7.0 Timeline Tests Status: {0}", testResult7), ConsoleColor.Red); } } // Test Series 8(also tests SearchFor in SearchExtensions) if (testSeriesToRun.Contains(8)) { var trln = new TrendsLiveFireTests(); var testResult8 = trln.DoTrendsTest(session, new List <int> { 4, 5 }).Result; if (testResult8) { ConsoleOutput.PrintMessage(String.Format("8.0 Trends (and SearchFor) Tests Status: {0}", testResult8), ConsoleColor.White); } else { ConsoleOutput.PrintMessage(String.Format("8.0 Trends (and SearchFor) Tests Status: {0}", testResult8), ConsoleColor.Red); } } // Test Series 9(also tests SearchFor in SearchExtensions) if (testSeriesToRun.Contains(9)) { var trln = new SuggestedUsersLiveFireTests(); var testResult9 = trln.DoSuggestedUsersTest(session, new List <int> { 1, 2 }).Result; if (testResult9) { ConsoleOutput.PrintMessage(String.Format("9.0 SuggestedUsers Tests Status: {0}", testResult9), ConsoleColor.White); } else { ConsoleOutput.PrintMessage(String.Format("9.0 SuggestedUsers Tests Status: {0}", testResult9), ConsoleColor.Red); } } // Test Series 10 Lists if (testSeriesToRun.Contains(10)) { var lsts = new ListsLiveFireTests(); var testResult10 = lsts.DoListsTest(session, new List <int> { 1, 5, 7 }).Result; if (testResult10) { ConsoleOutput.PrintMessage(String.Format("10.0 Lists Tests Status: {0}", testResult10), ConsoleColor.White); } else { ConsoleOutput.PrintMessage(String.Format("10.0 Lists Tests Status: {0}", testResult10), ConsoleColor.Red); } } // Test Series 11 Lists if (testSeriesToRun.Contains(11)) { var cmbs = new CombosFireTests(); var testResult11 = cmbs.DoCombosTest(session, new List <int> { 2, 3 }).Result; if (testResult11) { ConsoleOutput.PrintMessage(String.Format("11.0 Combos Tests Status: {0}", testResult11), ConsoleColor.White); } else { ConsoleOutput.PrintMessage(String.Format("11.0 Combos Tests Status: {0}", testResult11), ConsoleColor.Red); } } } else { ConsoleOutput.PrintError("Unable to Authorise."); } } ConsoleOutput.PrintMessage("Press Return to close window"); System.Console.ReadLine(); }