public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
        {
            Dictionary<string, object> tokenDict = serializer.Deserialize<Dictionary<string, object>>(reader);
            Dictionary<string, object> fieldDict = JsonConvert.DeserializeObject<Dictionary<string, object>>(tokenDict.First().Value.ToString());

            KeywordTokenizer token = new KeywordTokenizer(tokenDict.First().Key);
            TokenizerBase.Deserialize(token, fieldDict);
            token.BufferSize = fieldDict.GetInt64(_BUFFER_SIZE, KeywordTokenizer._BUFFER_SIZE_DEFAULT);

            return token;
        }
        public void PASS_Create()
        {
            KeywordTokenizer token = new KeywordTokenizer("name")
            {
                BufferSize = 31
            };

            Assert.IsNotNull(token);
            Assert.AreEqual("name", token.Name);
            Assert.AreEqual((Int64)31, token.BufferSize);
        }
        public void PASS_Serialize()
        {
            KeywordTokenizer token = new KeywordTokenizer("name")
            {
                BufferSize = 31
            };

            string json = JsonConvert.SerializeObject(token);
            Assert.IsNotNull(json);

            string expectedJson = "{\"name\":{\"type\":\"keyword\",\"buffer_size\":31}}";
            Assert.AreEqual(expectedJson, json);
        }