示例#1
0
        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);
                }
        }
示例#2
0
        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();
            }
        }
示例#3
0
        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);
                    }
                }
        }
示例#4
0
文件: NullCache.cs 项目: zAfLu/Twice
 public Task SaveTwitterConfig(LinqToTwitter.Configuration cfg)
 {
     return(Task.CompletedTask);
 }