db structure v3

This commit is contained in:
Vincent Cloutier 2023-04-28 12:14:47 -04:00
parent ad79d183b4
commit 06bb1013ed
11 changed files with 72 additions and 48 deletions

View file

@ -61,25 +61,25 @@ namespace BirdsiteLive.Pipeline.Processors.SubTasks
{ {
// skip the first time to avoid sending backlog of tweet // skip the first time to avoid sending backlog of tweet
var tweetId = tweets.Last().Id; var tweetId = tweets.Last().Id;
await _twitterUserDal.UpdateTwitterUserAsync(user.Id, tweetId, tweetId, user.FetchingErrorCount, now); await _twitterUserDal.UpdateTwitterUserAsync(user.Id, tweetId, user.FetchingErrorCount, now);
} }
else if (tweets.Length > 0 && user.LastTweetPostedId != -1) else if (tweets.Length > 0 && user.LastTweetPostedId != -1)
{ {
userWtData.Tweets = tweets; userWtData.Tweets = tweets;
usersWtTweets.Add(userWtData); usersWtTweets.Add(userWtData);
var tweetId = tweets.Last().Id; var tweetId = tweets.Last().Id;
await _twitterUserDal.UpdateTwitterUserAsync(user.Id, tweetId, tweetId, user.FetchingErrorCount, now); await _twitterUserDal.UpdateTwitterUserAsync(user.Id, tweetId, user.FetchingErrorCount, now);
} }
else else
{ {
await _twitterUserDal.UpdateTwitterUserAsync(user.Id, user.LastTweetPostedId, user.LastTweetSynchronizedForAllFollowersId, user.FetchingErrorCount, now); await _twitterUserDal.UpdateTwitterUserAsync(user.Id, user.LastTweetPostedId, user.FetchingErrorCount, now);
} }
} }
catch(Exception e) catch(Exception e)
{ {
_logger.LogError(e.Message); _logger.LogError(e.Message);
await _twitterUserDal.UpdateTwitterUserAsync(user.Id, user.LastTweetPostedId, user.LastTweetSynchronizedForAllFollowersId, user.FetchingErrorCount, now); await _twitterUserDal.UpdateTwitterUserAsync(user.Id, user.LastTweetPostedId, user.FetchingErrorCount, now);
} }
}); });
todo.Add(t); todo.Add(t);
@ -104,7 +104,7 @@ namespace BirdsiteLive.Pipeline.Processors.SubTasks
if (user.LastTweetPostedId == -1) if (user.LastTweetPostedId == -1)
tweets = await _twitterTweetsService.GetTimelineAsync(user.Acct); tweets = await _twitterTweetsService.GetTimelineAsync(user.Acct);
else else
tweets = await _twitterTweetsService.GetTimelineAsync(user.Acct, user.LastTweetSynchronizedForAllFollowersId); tweets = await _twitterTweetsService.GetTimelineAsync(user.Acct, user.LastTweetPostedId);
} }
catch (Exception e) catch (Exception e)
{ {

View file

@ -23,7 +23,7 @@ namespace BirdsiteLive.DAL.Postgres.DataAccessLayers
public class DbInitializerPostgresDal : PostgresBase, IDbInitializerDal public class DbInitializerPostgresDal : PostgresBase, IDbInitializerDal
{ {
private readonly PostgresTools _tools; private readonly PostgresTools _tools;
private readonly Version _currentVersion = new Version(2, 5); private readonly Version _currentVersion = new Version(3, 0);
private const string DbVersionType = "db-version"; private const string DbVersionType = "db-version";
#region Ctor #region Ctor
@ -136,7 +136,8 @@ namespace BirdsiteLive.DAL.Postgres.DataAccessLayers
new Tuple<Version, Version>(new Version(2,1), new Version(2,2)), new Tuple<Version, Version>(new Version(2,1), new Version(2,2)),
new Tuple<Version, Version>(new Version(2,2), new Version(2,3)), new Tuple<Version, Version>(new Version(2,2), new Version(2,3)),
new Tuple<Version, Version>(new Version(2,3), new Version(2,4)), new Tuple<Version, Version>(new Version(2,3), new Version(2,4)),
new Tuple<Version, Version>(new Version(2,4), new Version(2,5)) new Tuple<Version, Version>(new Version(2,4), new Version(2,5)),
new Tuple<Version, Version>(new Version(2,5), new Version(3,0))
}; };
} }
@ -179,6 +180,48 @@ namespace BirdsiteLive.DAL.Postgres.DataAccessLayers
await _tools.ExecuteRequestAsync(alterTwitterUserId); await _tools.ExecuteRequestAsync(alterTwitterUserId);
} }
else if (from == new Version(2, 5) && to == new Version(3, 0))
{
var dropFollowingSyncStatus = $@"ALTER TABLE {_settings.FollowersTableName} DROP COLUMN followingssyncstatus";
await _tools.ExecuteRequestAsync(dropFollowingSyncStatus);
var dropLastTweet = $@"ALTER TABLE {_settings.TwitterUserTableName} DROP COLUMN lasttweetsynchronizedforallfollowersid";
await _tools.ExecuteRequestAsync(dropLastTweet);
var addFediverseEquivalent = $@"ALTER TABLE {_settings.TwitterUserTableName} ADD fediverseaccount text";
await _tools.ExecuteRequestAsync(addFediverseEquivalent);
var createWorkers = $@"CREATE TABLE {_settings.WorkersTableName}
(
id BIGINT PRIMARY KEY,
rangeStart INTEGER,
rangeEnd INTEGER,
lastSeen TIMESTAMP (2) WITHOUT TIME ZONE,
name text
);";
await _tools.ExecuteRequestAsync(createWorkers);
var createWorkerInstance = $@" INSERT INTO {_settings.WorkersTableName} (id,rangeStart,rangeEnd) VALUES(0,0, 100) ";
await _tools.ExecuteRequestAsync(createWorkerInstance);
var createInstagram = $@"CREATE TABLE {_settings.InstagramUserTableName}
(
id SERIAL PRIMARY KEY,
acct VARCHAR(20) UNIQUE,
data JSONB
);";
await _tools.ExecuteRequestAsync(createInstagram);
var createInstagramPost = $@"CREATE TABLE {_settings.CachedInstaPostsTableName}
(
id VARCHAR(30) PRIMARY KEY,
acct VARCHAR(20) UNIQUE,
data JSONB
);";
await _tools.ExecuteRequestAsync(createInstagramPost);
}
else else
{ {
throw new NotImplementedException(); throw new NotImplementedException();
@ -207,7 +250,10 @@ namespace BirdsiteLive.DAL.Postgres.DataAccessLayers
$@"DROP TABLE {_settings.DbVersionTableName};", $@"DROP TABLE {_settings.DbVersionTableName};",
$@"DROP TABLE {_settings.TwitterUserTableName};", $@"DROP TABLE {_settings.TwitterUserTableName};",
$@"DROP TABLE {_settings.FollowersTableName};", $@"DROP TABLE {_settings.FollowersTableName};",
$@"DROP TABLE {_settings.CachedTweetsTableName};" $@"DROP TABLE {_settings.CachedTweetsTableName};",
$@"DROP TABLE {_settings.InstagramUserTableName};",
$@"DROP TABLE {_settings.CachedInstaPostsTableName};",
$@"DROP TABLE {_settings.WorkersTableName};"
}; };
foreach (var r in dropsRequests) foreach (var r in dropsRequests)

View file

@ -105,7 +105,6 @@ namespace BirdsiteLive.DAL.Postgres.DataAccessLayers
var followers = new List<Follower>(); var followers = new List<Follower>();
while (await reader.ReadAsync()) while (await reader.ReadAsync())
{ {
string syncStatusString = reader["followingsSyncStatus"] as string;
followers.Add(new Follower followers.Add(new Follower
{ {
Id = reader["id"] as int? ?? default, Id = reader["id"] as int? ?? default,

View file

@ -27,8 +27,8 @@ namespace BirdsiteLive.DAL.Postgres.DataAccessLayers
using (var dbConnection = Connection) using (var dbConnection = Connection)
{ {
await dbConnection.ExecuteAsync( await dbConnection.ExecuteAsync(
$"INSERT INTO {_settings.TwitterUserTableName} (acct,lastTweetPostedId,lastTweetSynchronizedForAllFollowersId) VALUES(@acct,@lastTweetPostedId,@lastTweetSynchronizedForAllFollowersId)", $"INSERT INTO {_settings.TwitterUserTableName} (acct,lastTweetPostedId) VALUES(@acct,@lastTweetPostedId)",
new { acct, lastTweetPostedId, lastTweetSynchronizedForAllFollowersId = lastTweetPostedId }); new { acct, lastTweetPostedId });
} }
} }
@ -53,7 +53,6 @@ namespace BirdsiteLive.DAL.Postgres.DataAccessLayers
Acct = reader["acct"] as string, Acct = reader["acct"] as string,
TwitterUserId = reader["twitterUserId"] as long? ?? default, TwitterUserId = reader["twitterUserId"] as long? ?? default,
LastTweetPostedId = reader["lastTweetPostedId"] as long? ?? default, LastTweetPostedId = reader["lastTweetPostedId"] as long? ?? default,
LastTweetSynchronizedForAllFollowersId = reader["lastTweetSynchronizedForAllFollowersId"] as long? ?? default,
LastSync = reader["lastSync"] as DateTime? ?? default, LastSync = reader["lastSync"] as DateTime? ?? default,
FetchingErrorCount = reader["fetchingErrorCount"] as int? ?? default, FetchingErrorCount = reader["fetchingErrorCount"] as int? ?? default,
}; };
@ -79,7 +78,6 @@ namespace BirdsiteLive.DAL.Postgres.DataAccessLayers
Acct = reader["acct"] as string, Acct = reader["acct"] as string,
TwitterUserId = reader["twitterUserId"] as long? ?? default, TwitterUserId = reader["twitterUserId"] as long? ?? default,
LastTweetPostedId = reader["lastTweetPostedId"] as long? ?? default, LastTweetPostedId = reader["lastTweetPostedId"] as long? ?? default,
LastTweetSynchronizedForAllFollowersId = reader["lastTweetSynchronizedForAllFollowersId"] as long? ?? default,
LastSync = reader["lastSync"] as DateTime? ?? default, LastSync = reader["lastSync"] as DateTime? ?? default,
FetchingErrorCount = reader["fetchingErrorCount"] as int? ?? default, FetchingErrorCount = reader["fetchingErrorCount"] as int? ?? default,
}; };
@ -143,7 +141,6 @@ namespace BirdsiteLive.DAL.Postgres.DataAccessLayers
Acct = reader["acct"] as string, Acct = reader["acct"] as string,
TwitterUserId = reader["twitterUserId"] as long? ?? default, TwitterUserId = reader["twitterUserId"] as long? ?? default,
LastTweetPostedId = reader["lastTweetPostedId"] as long? ?? default, LastTweetPostedId = reader["lastTweetPostedId"] as long? ?? default,
LastTweetSynchronizedForAllFollowersId = reader["lastTweetSynchronizedForAllFollowersId"] as long? ?? default,
LastSync = reader["lastSync"] as DateTime? ?? default, LastSync = reader["lastSync"] as DateTime? ?? default,
FetchingErrorCount = reader["fetchingErrorCount"] as int? ?? default, FetchingErrorCount = reader["fetchingErrorCount"] as int? ?? default,
} }
@ -189,21 +186,19 @@ namespace BirdsiteLive.DAL.Postgres.DataAccessLayers
await command.ExecuteNonQueryAsync(); await command.ExecuteNonQueryAsync();
} }
public async Task UpdateTwitterUserAsync(int id, long lastTweetPostedId, long lastTweetSynchronizedForAllFollowersId, int fetchingErrorCount, DateTime lastSync) public async Task UpdateTwitterUserAsync(int id, long lastTweetPostedId, int fetchingErrorCount, DateTime lastSync)
{ {
if(id == default) throw new ArgumentException("id"); if(id == default) throw new ArgumentException("id");
if(lastTweetPostedId == default) throw new ArgumentException("lastTweetPostedId"); if(lastTweetPostedId == default) throw new ArgumentException("lastTweetPostedId");
if(lastTweetSynchronizedForAllFollowersId == default) throw new ArgumentException("lastTweetSynchronizedForAllFollowersId");
if(lastSync == default) throw new ArgumentException("lastSync"); if(lastSync == default) throw new ArgumentException("lastSync");
var query = $"UPDATE {_settings.TwitterUserTableName} SET lastTweetPostedId = $1, lastTweetSynchronizedForAllFollowersId = $2, fetchingErrorCount = $3, lastSync = $4 WHERE id = $5"; var query = $"UPDATE {_settings.TwitterUserTableName} SET lastTweetPostedId = $1, fetchingErrorCount = $2, lastSync = $3 WHERE id = $4";
await using var connection = DataSource.CreateConnection(); await using var connection = DataSource.CreateConnection();
await connection.OpenAsync(); await connection.OpenAsync();
await using var command = new NpgsqlCommand(query, connection) { await using var command = new NpgsqlCommand(query, connection) {
Parameters = { Parameters = {
new() { Value = lastTweetPostedId}, new() { Value = lastTweetPostedId},
new() { Value = lastTweetSynchronizedForAllFollowersId},
new() { Value = fetchingErrorCount}, new() { Value = fetchingErrorCount},
new() { Value = lastSync.ToUniversalTime()}, new() { Value = lastSync.ToUniversalTime()},
new() { Value = id}, new() { Value = id},
@ -215,7 +210,7 @@ namespace BirdsiteLive.DAL.Postgres.DataAccessLayers
public async Task UpdateTwitterUserAsync(SyncTwitterUser user) public async Task UpdateTwitterUserAsync(SyncTwitterUser user)
{ {
await UpdateTwitterUserAsync(user.Id, user.LastTweetPostedId, user.LastTweetSynchronizedForAllFollowersId, user.FetchingErrorCount, user.LastSync); await UpdateTwitterUserAsync(user.Id, user.LastTweetPostedId, user.FetchingErrorCount, user.LastSync);
} }
public async Task DeleteTwitterUserAsync(string acct) public async Task DeleteTwitterUserAsync(string acct)

View file

@ -6,6 +6,9 @@
public string DbVersionTableName { get; set; } = "db_version"; public string DbVersionTableName { get; set; } = "db_version";
public string TwitterUserTableName { get; set; } = "twitter_users"; public string TwitterUserTableName { get; set; } = "twitter_users";
public string InstagramUserTableName { get; set; } = "instagram_users";
public string WorkersTableName { get; set; } = "workers";
public string CachedInstaPostsTableName { get; set; } = "cached_insta_posts";
public string FollowersTableName { get; set; } = "followers"; public string FollowersTableName { get; set; } = "followers";
public string CachedTweetsTableName { get; set; } = "cached_tweets"; public string CachedTweetsTableName { get; set; } = "cached_tweets";
} }

View file

@ -12,7 +12,7 @@ namespace BirdsiteLive.DAL.Contracts
Task<SyncTwitterUser[]> GetAllTwitterUsersWithFollowersAsync(int maxNumber, int nStart, int nEnd, int m); Task<SyncTwitterUser[]> GetAllTwitterUsersWithFollowersAsync(int maxNumber, int nStart, int nEnd, int m);
Task<SyncTwitterUser[]> GetAllTwitterUsersAsync(int maxNumber); Task<SyncTwitterUser[]> GetAllTwitterUsersAsync(int maxNumber);
Task<SyncTwitterUser[]> GetAllTwitterUsersAsync(); Task<SyncTwitterUser[]> GetAllTwitterUsersAsync();
Task UpdateTwitterUserAsync(int id, long lastTweetPostedId, long lastTweetSynchronizedForAllFollowersId, int fetchingErrorCount, DateTime lastSync); Task UpdateTwitterUserAsync(int id, long lastTweetPostedId, int fetchingErrorCount, DateTime lastSync);
Task UpdateTwitterUserIdAsync(string username, long twitterUserId); Task UpdateTwitterUserIdAsync(string username, long twitterUserId);
Task UpdateTwitterUserAsync(SyncTwitterUser user); Task UpdateTwitterUserAsync(SyncTwitterUser user);
Task DeleteTwitterUserAsync(string acct); Task DeleteTwitterUserAsync(string acct);

View file

@ -9,7 +9,6 @@ namespace BirdsiteLive.DAL.Models
public string Acct { get; set; } public string Acct { get; set; }
public long LastTweetPostedId { get; set; } public long LastTweetPostedId { get; set; }
public long LastTweetSynchronizedForAllFollowersId { get; set; }
public DateTime LastSync { get; set; } public DateTime LastSync { get; set; }

View file

@ -19,6 +19,9 @@ namespace BirdsiteLive.DAL.Postgres.Tests.DataAccessLayers.Base
CachedTweetsTableName = "CachedTweetsTableName" + RandomGenerator.GetString(4), CachedTweetsTableName = "CachedTweetsTableName" + RandomGenerator.GetString(4),
FollowersTableName = "FollowersTableName" + RandomGenerator.GetString(4), FollowersTableName = "FollowersTableName" + RandomGenerator.GetString(4),
TwitterUserTableName = "TwitterUserTableName" + RandomGenerator.GetString(4), TwitterUserTableName = "TwitterUserTableName" + RandomGenerator.GetString(4),
InstagramUserTableName = "InstagramUserTableName" + RandomGenerator.GetString(4),
CachedInstaPostsTableName = "CachedInstaPosts" + RandomGenerator.GetString(4),
WorkersTableName = "workers" + RandomGenerator.GetString(4),
}; };
_tools = new PostgresTools(_settings); _tools = new PostgresTools(_settings);
} }

View file

@ -48,7 +48,6 @@ namespace BirdsiteLive.DAL.Postgres.Tests.DataAccessLayers
Assert.AreEqual(acct, result.Acct); Assert.AreEqual(acct, result.Acct);
Assert.AreEqual(lastTweetId, result.LastTweetPostedId); Assert.AreEqual(lastTweetId, result.LastTweetPostedId);
Assert.AreEqual(lastTweetId, result.LastTweetSynchronizedForAllFollowersId);
Assert.AreEqual(0, result.FetchingErrorCount); Assert.AreEqual(0, result.FetchingErrorCount);
Assert.IsTrue(result.Id > 0); Assert.IsTrue(result.Id > 0);
} }
@ -67,7 +66,6 @@ namespace BirdsiteLive.DAL.Postgres.Tests.DataAccessLayers
Assert.AreEqual(acct, resultById.Acct); Assert.AreEqual(acct, resultById.Acct);
Assert.AreEqual(lastTweetId, resultById.LastTweetPostedId); Assert.AreEqual(lastTweetId, resultById.LastTweetPostedId);
Assert.AreEqual(lastTweetId, resultById.LastTweetSynchronizedForAllFollowersId);
Assert.AreEqual(result.Id, resultById.Id); Assert.AreEqual(result.Id, resultById.Id);
} }
@ -87,13 +85,12 @@ namespace BirdsiteLive.DAL.Postgres.Tests.DataAccessLayers
var updatedLastSyncId = 1550L; var updatedLastSyncId = 1550L;
var now = DateTime.Now; var now = DateTime.Now;
var errors = 15; var errors = 15;
await dal.UpdateTwitterUserAsync(result.Id, updatedLastTweetId, updatedLastSyncId, errors, now); await dal.UpdateTwitterUserAsync(result.Id, updatedLastTweetId, errors, now);
result = await dal.GetTwitterUserAsync(acct); result = await dal.GetTwitterUserAsync(acct);
Assert.AreEqual(acct, result.Acct); Assert.AreEqual(acct, result.Acct);
Assert.AreEqual(updatedLastTweetId, result.LastTweetPostedId); Assert.AreEqual(updatedLastTweetId, result.LastTweetPostedId);
Assert.AreEqual(updatedLastSyncId, result.LastTweetSynchronizedForAllFollowersId);
Assert.AreEqual(errors, result.FetchingErrorCount); Assert.AreEqual(errors, result.FetchingErrorCount);
Assert.IsTrue(Math.Abs((now.ToUniversalTime() - result.LastSync).Milliseconds) < 100); Assert.IsTrue(Math.Abs((now.ToUniversalTime() - result.LastSync).Milliseconds) < 100);
} }
@ -116,7 +113,6 @@ namespace BirdsiteLive.DAL.Postgres.Tests.DataAccessLayers
var errors = 15; var errors = 15;
result.LastTweetPostedId = updatedLastTweetId; result.LastTweetPostedId = updatedLastTweetId;
result.LastTweetSynchronizedForAllFollowersId = updatedLastSyncId;
result.FetchingErrorCount = errors; result.FetchingErrorCount = errors;
result.LastSync = now; result.LastSync = now;
await dal.UpdateTwitterUserAsync(result); await dal.UpdateTwitterUserAsync(result);
@ -125,7 +121,6 @@ namespace BirdsiteLive.DAL.Postgres.Tests.DataAccessLayers
Assert.AreEqual(acct, result.Acct); Assert.AreEqual(acct, result.Acct);
Assert.AreEqual(updatedLastTweetId, result.LastTweetPostedId); Assert.AreEqual(updatedLastTweetId, result.LastTweetPostedId);
Assert.AreEqual(updatedLastSyncId, result.LastTweetSynchronizedForAllFollowersId);
Assert.AreEqual(errors, result.FetchingErrorCount); Assert.AreEqual(errors, result.FetchingErrorCount);
Assert.IsTrue(Math.Abs((now.ToUniversalTime() - result.LastSync).Milliseconds) < 100); Assert.IsTrue(Math.Abs((now.ToUniversalTime() - result.LastSync).Milliseconds) < 100);
} }
@ -148,7 +143,6 @@ namespace BirdsiteLive.DAL.Postgres.Tests.DataAccessLayers
var errors = 32768; var errors = 32768;
result.LastTweetPostedId = updatedLastTweetId; result.LastTweetPostedId = updatedLastTweetId;
result.LastTweetSynchronizedForAllFollowersId = updatedLastSyncId;
result.FetchingErrorCount = errors; result.FetchingErrorCount = errors;
result.LastSync = now; result.LastSync = now;
await dal.UpdateTwitterUserAsync(result); await dal.UpdateTwitterUserAsync(result);
@ -157,7 +151,6 @@ namespace BirdsiteLive.DAL.Postgres.Tests.DataAccessLayers
Assert.AreEqual(acct, result.Acct); Assert.AreEqual(acct, result.Acct);
Assert.AreEqual(updatedLastTweetId, result.LastTweetPostedId); Assert.AreEqual(updatedLastTweetId, result.LastTweetPostedId);
Assert.AreEqual(updatedLastSyncId, result.LastTweetSynchronizedForAllFollowersId);
Assert.AreEqual(errors, result.FetchingErrorCount); Assert.AreEqual(errors, result.FetchingErrorCount);
Assert.IsTrue(Math.Abs((now.ToUniversalTime() - result.LastSync).Milliseconds) < 100); Assert.IsTrue(Math.Abs((now.ToUniversalTime() - result.LastSync).Milliseconds) < 100);
} }
@ -167,7 +160,7 @@ namespace BirdsiteLive.DAL.Postgres.Tests.DataAccessLayers
public async Task Update_NoId() public async Task Update_NoId()
{ {
var dal = new TwitterUserPostgresDal(_settings); var dal = new TwitterUserPostgresDal(_settings);
await dal.UpdateTwitterUserAsync(default, default, default, default, DateTime.UtcNow); await dal.UpdateTwitterUserAsync(default, default, default, DateTime.UtcNow);
} }
[TestMethod] [TestMethod]
@ -175,23 +168,16 @@ namespace BirdsiteLive.DAL.Postgres.Tests.DataAccessLayers
public async Task Update_NoLastTweetPostedId() public async Task Update_NoLastTweetPostedId()
{ {
var dal = new TwitterUserPostgresDal(_settings); var dal = new TwitterUserPostgresDal(_settings);
await dal.UpdateTwitterUserAsync(12, default, default, default, DateTime.UtcNow); await dal.UpdateTwitterUserAsync(12, default, default, DateTime.UtcNow);
} }
[TestMethod]
[ExpectedException(typeof(ArgumentException))]
public async Task Update_NoLastTweetSynchronizedForAllFollowersId()
{
var dal = new TwitterUserPostgresDal(_settings);
await dal.UpdateTwitterUserAsync(12, 9556, default, default, DateTime.UtcNow);
}
[TestMethod] [TestMethod]
[ExpectedException(typeof(ArgumentException))] [ExpectedException(typeof(ArgumentException))]
public async Task Update_NoLastSync() public async Task Update_NoLastSync()
{ {
var dal = new TwitterUserPostgresDal(_settings); var dal = new TwitterUserPostgresDal(_settings);
await dal.UpdateTwitterUserAsync(12, 9556, 65, default, default); await dal.UpdateTwitterUserAsync(12, 9556, 65, default);
} }
[TestMethod] [TestMethod]
@ -261,7 +247,6 @@ namespace BirdsiteLive.DAL.Postgres.Tests.DataAccessLayers
Assert.IsFalse(result[0].Id == default); Assert.IsFalse(result[0].Id == default);
Assert.IsFalse(result[0].Acct == default); Assert.IsFalse(result[0].Acct == default);
Assert.IsFalse(result[0].LastTweetPostedId == default); Assert.IsFalse(result[0].LastTweetPostedId == default);
Assert.IsFalse(result[0].LastTweetSynchronizedForAllFollowersId == default);
} }
[TestMethod] [TestMethod]
@ -318,7 +303,7 @@ namespace BirdsiteLive.DAL.Postgres.Tests.DataAccessLayers
{ {
var user = allUsers[i]; var user = allUsers[i];
var date = i % 2 == 0 ? oldest : newest; var date = i % 2 == 0 ? oldest : newest;
await dal.UpdateTwitterUserAsync(user.Id, user.LastTweetPostedId, user.LastTweetSynchronizedForAllFollowersId, 0, date); await dal.UpdateTwitterUserAsync(user.Id, user.LastTweetPostedId, 0, date);
} }
var result = await dal.GetAllTwitterUsersAsync(10); var result = await dal.GetAllTwitterUsersAsync(10);
@ -326,7 +311,6 @@ namespace BirdsiteLive.DAL.Postgres.Tests.DataAccessLayers
Assert.IsFalse(result[0].Id == default); Assert.IsFalse(result[0].Id == default);
Assert.IsFalse(result[0].Acct == default); Assert.IsFalse(result[0].Acct == default);
Assert.IsFalse(result[0].LastTweetPostedId == default); Assert.IsFalse(result[0].LastTweetPostedId == default);
Assert.IsFalse(result[0].LastTweetSynchronizedForAllFollowersId == default);
foreach (var acc in result) foreach (var acc in result)
Assert.IsTrue(Math.Abs((acc.LastSync - oldest.ToUniversalTime()).TotalMilliseconds) < 1000); Assert.IsTrue(Math.Abs((acc.LastSync - oldest.ToUniversalTime()).TotalMilliseconds) < 1000);
@ -349,7 +333,6 @@ namespace BirdsiteLive.DAL.Postgres.Tests.DataAccessLayers
Assert.IsFalse(result[0].Id == default); Assert.IsFalse(result[0].Id == default);
Assert.IsFalse(result[0].Acct == default); Assert.IsFalse(result[0].Acct == default);
Assert.IsFalse(result[0].LastTweetPostedId == default); Assert.IsFalse(result[0].LastTweetPostedId == default);
Assert.IsFalse(result[0].LastTweetSynchronizedForAllFollowersId == default);
} }
[TestMethod] [TestMethod]
@ -382,7 +365,7 @@ namespace BirdsiteLive.DAL.Postgres.Tests.DataAccessLayers
if (i == 0 || i == 2 || i == 3) if (i == 0 || i == 2 || i == 3)
{ {
var t = await dal.GetTwitterUserAsync(acct); var t = await dal.GetTwitterUserAsync(acct);
await dal.UpdateTwitterUserAsync(t.Id ,1L,2L, 50+i*2, DateTime.Now); await dal.UpdateTwitterUserAsync(t.Id ,1L, 50+i*2, DateTime.Now);
} }
} }

View file

@ -37,7 +37,6 @@ namespace BirdsiteLive.Domain.Tests.BusinessUseCases
Id = 2, Id = 2,
Acct = twitterName, Acct = twitterName,
LastTweetPostedId = -1, LastTweetPostedId = -1,
LastTweetSynchronizedForAllFollowersId = -1
}; };
#endregion #endregion
@ -112,7 +111,6 @@ namespace BirdsiteLive.Domain.Tests.BusinessUseCases
Id = 2, Id = 2,
Acct = twitterName, Acct = twitterName,
LastTweetPostedId = -1, LastTweetPostedId = -1,
LastTweetSynchronizedForAllFollowersId = -1
}; };
#endregion #endregion

View file

@ -97,7 +97,6 @@ namespace BirdsiteLive.Domain.Tests.BusinessUseCases
Id = 2, Id = 2,
Acct = twitterName, Acct = twitterName,
LastTweetPostedId = 460, LastTweetPostedId = 460,
LastTweetSynchronizedForAllFollowersId = 460
}; };
var followerList = new List<Follower> var followerList = new List<Follower>
@ -159,7 +158,6 @@ namespace BirdsiteLive.Domain.Tests.BusinessUseCases
Id = 2, Id = 2,
Acct = twitterName, Acct = twitterName,
LastTweetPostedId = 460, LastTweetPostedId = 460,
LastTweetSynchronizedForAllFollowersId = 460
}; };
var followerList = new List<Follower>(); var followerList = new List<Follower>();