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); }
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); }
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; }