public async Task TwitterConfigCanBeRetrieved() { // Arrange using (var con = OpenConnection()) using (var cache = new SqliteCache(con)) { var cfg = new LinqToTwitter.Configuration { PhotoSizeLimit = 123 }; using (var cmd = con.CreateCommand()) { cmd.CommandText = "INSERT INTO TwitterConfig (Data) VALUES (@json);"; var p = cmd.CreateParameter(); p.ParameterName = "json"; p.Value = JsonConvert.SerializeObject(cfg); cmd.Parameters.Add(p); cmd.ExecuteNonQuery(); } // Act var loaded = await cache.ReadTwitterConfig(); // Assert Assert.AreEqual(cfg.PhotoSizeLimit, loaded.PhotoSizeLimit); } }
public async Task SaveTwitterConfig(LinqToTwitter.Configuration cfg) { if (!await Semaphore.WaitAsync(SemaphoreWait)) { return; } try { using (var cmd = Connection.CreateCommand()) { cmd.CommandText = "DELETE FROM TwitterConfig;"; await cmd.ExecuteNonQueryAsync(); } using (var cmd = Connection.CreateCommand()) { cmd.CommandText = "INSERT INTO TwitterConfig (Data, Expires) VALUES(@json, @expires);"; cmd.AddParameter("json", JsonConvert.SerializeObject(cfg)); cmd.AddParameter("expires", SqliteHelper.GetDateValue(DateTime.Now.Add(Constants.Cache.TwitterConfigExpiration))); await cmd.ExecuteNonQueryAsync(); } } finally { Semaphore.Release(); } }
public async Task TwitterConfigCanBeStored() { // Arrange using (var con = OpenConnection()) using (var cache = new SqliteCache(con)) { var cfg = new LinqToTwitter.Configuration { PhotoSizeLimit = 123 }; // Act await cache.SaveTwitterConfig(cfg); // Assert using (var cmd = con.CreateCommand()) { cmd.CommandText = "SELECT Data FROM TwitterConfig"; var fromDb = JsonConvert.DeserializeObject <LinqToTwitter.Configuration>((string)cmd.ExecuteScalar()); Assert.AreEqual(cfg.PhotoSizeLimit, fromDb.PhotoSizeLimit); } } }
public Task SaveTwitterConfig(LinqToTwitter.Configuration cfg) { return(Task.CompletedTask); }