public async Task CachedUsersCanBeRetrieved() { // Arrange using (var con = OpenConnection()) using (var cache = new SqliteCache(con)) { using (var cmd = con.CreateCommand()) { cmd.CommandText = "INSERT INTO Users (Id, UserName, UserData) VALUES (@id1, @name1, @data1), " + "(@id2, @name2, @data2);"; cmd.AddParameter("id1", 111); cmd.AddParameter("id2", 222); cmd.AddParameter("name1", "testi"); cmd.AddParameter("name2", "testUser"); var u = DummyGenerator.CreateDummyUser(); u.UserID = 111; u.ScreenName = "testi"; u.CreatedAt = new DateTime(1, 2, 3, 4, 5, 6); cmd.AddParameter("data1", JsonConvert.SerializeObject(u)); u = DummyGenerator.CreateDummyUser(); u.UserID = 222; u.ScreenName = "testUser"; u.CreatedAt = new DateTime(6, 5, 4, 3, 2, 1); cmd.AddParameter("data2", JsonConvert.SerializeObject(u)); cmd.ExecuteNonQuery(); } // Act var users = (await cache.GetKnownUsers()).ToArray(); // Assert Assert.AreEqual(2, users.Length); Assert.IsNotNull(users.SingleOrDefault(u => u.UserId == 111)); Assert.IsNotNull(users.SingleOrDefault(u => u.UserId == 222)); Assert.IsNotNull(users.SingleOrDefault(u => u.UserName == "testi")); Assert.IsNotNull(users.SingleOrDefault(u => u.UserName == "testUser")); var data = JsonConvert.DeserializeObject <User>(users.First(u => u.UserId == 111).Data); Assert.AreEqual(new DateTime(1, 2, 3, 4, 5, 6), data.CreatedAt); data = JsonConvert.DeserializeObject <User>(users.First(u => u.UserId == 222).Data); Assert.AreEqual(new DateTime(6, 5, 4, 3, 2, 1), data.CreatedAt); } }
public async Task ExpiredUserIsNotRetrieved() { // Arrange using (var con = OpenConnection()) using (var cache = new SqliteCache(con)) { using (var cmd = con.CreateCommand()) { cmd.CommandText = "INSERT INTO Users (Id, UserName, UserData, Expires) VALUES (123, 'test', 'test', 100);"; cmd.ExecuteNonQuery(); } // Act var users = (await cache.GetKnownUsers()).ToArray(); // Assert Assert.AreEqual(0, users.Length); } }
public async Task AddingUserTwiceUpdatesData() { // Arrange using (var con = OpenConnection()) using (var cache = new SqliteCache(con)) { var user = DummyGenerator.CreateDummyUserEx(); user.UserID = 123; user.ScreenName = "test"; await cache.AddUsers(new[] { new UserCacheEntry(user) }); // Act user.ScreenName = "testi"; await cache.AddUsers(new[] { new UserCacheEntry(user) }); // Assert var fromDb = (await cache.GetKnownUsers()).First(); Assert.AreEqual("testi", fromDb.UserName); } }