public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { Dictionary<string, object> filterDict = serializer.Deserialize<Dictionary<string, object>>(reader); Dictionary<string, object> fieldDict = JsonConvert.DeserializeObject<Dictionary<string, object>>(filterDict.First().Value.ToString()); LimitTokenCountTokenFilter filter = new LimitTokenCountTokenFilter(filterDict.First().Key); TokenFilterBase.Deserialize(filter, fieldDict); filter.MaximumTokenCount = fieldDict.GetInt32(_MAXIMUM_TOKEN_COUNT, LimitTokenCountTokenFilter._MAXIMUM_TOKEN_COUNT_DEFAULT); filter.ConsumeAllTokens = fieldDict.GetBool(_CONSUME_ALL_TOKENS, LimitTokenCountTokenFilter._CONSUME_ALL_TOKENS_DEFAULT); return filter; }
public void PASS_Serialize() { LimitTokenCountTokenFilter filter = new LimitTokenCountTokenFilter("name") { Version = 2.4, MaximumTokenCount = 2, ConsumeAllTokens = true }; string json = JsonConvert.SerializeObject(filter); Assert.IsNotNull(json); string expectedJson = "{\"name\":{\"type\":\"limit\",\"version\":2.4,\"max_token_count\":2,\"consume_all_tokens\":true}}"; Assert.AreEqual(expectedJson, json); }
public void PASS_Create() { LimitTokenCountTokenFilter filter = new LimitTokenCountTokenFilter("name") { Version = 2.4, MaximumTokenCount = 2, ConsumeAllTokens = true }; Assert.IsNotNull(filter); Assert.AreEqual("name", filter.Name); Assert.AreEqual(2.4, filter.Version); Assert.AreEqual((int)2, filter.MaximumTokenCount); Assert.AreEqual(true, filter.ConsumeAllTokens); }