コード例 #1
0
        public void PASS_Serialize()
        {
            PatternTokenizer analyzer = new PatternTokenizer("name")
            {
                Pattern = "pattern",
                Flags = new List<RegexFlagEnum>() { RegexFlagEnum.CaseInsensitive, RegexFlagEnum.CannonEq },
                Group = 2
            };

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

            string expectedJson = "{\"name\":{\"type\":\"pattern\",\"pattern\":\"pattern\",\"flags\":\"CASE_INSENSITIVE|CANNON_EQ\",\"group\":2}}";
            Assert.AreEqual(expectedJson, json);
        }
コード例 #2
0
        public void PASS_Create()
        {
            PatternTokenizer analyzer = new PatternTokenizer("name")
            {
                Pattern = "pattern",
                Flags = new List<RegexFlagEnum>() { RegexFlagEnum.CaseInsensitive, RegexFlagEnum.CannonEq },
                Group = 2
            };

            Assert.IsNotNull(analyzer);
            Assert.AreEqual("name", analyzer.Name);
            Assert.AreEqual("pattern", analyzer.Pattern);
            Assert.AreEqual(RegexFlagEnum.CaseInsensitive, analyzer.Flags.First());
            Assert.AreEqual(RegexFlagEnum.CannonEq, analyzer.Flags.Last());
            Assert.AreEqual((int)2, analyzer.Group);
        }
コード例 #3
0
        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());

            PatternTokenizer token = new PatternTokenizer(tokenDict.First().Key);
            TokenizerBase.Deserialize(token, fieldDict);
            token.Pattern = fieldDict.GetString(_PATTERN, PatternTokenizer._REGEX_PATTERN_DEFAULT);
            token.Group = fieldDict.GetInt64(_GROUP, PatternTokenizer._GROUP_DEFAULT);
            if (fieldDict.ContainsKey(_FLAGS))
            {
                List<RegexFlagEnum> flagList = new List<RegexFlagEnum>();
                string flagsStr = fieldDict.GetString(_FLAGS);
                foreach (string flagValue in flagsStr.Split(_FLAG_DELIMITERS.ToArray(), StringSplitOptions.RemoveEmptyEntries))
                {
                    flagList.Add(RegexFlagEnum.Find(flagValue));
                }

                if (flagList.Any())
                    token.Flags = flagList;
            }

            return token;
        }