public void TestAddParser__GetParser__Func() { ValueParseMap map = new ValueParseMap(); map.AddParser <string>(s => $">{s}<", s => $"<{s}>"); Assert.Equal(">abc<", map.GetParser(typeof(string)).Parse("abc")); Assert.Equal("<abc>", map.GetParser(typeof(string)).Format("abc")); }
public void TestAddParser__GetParser() { ValueParseMap map = new ValueParseMap(); map.AddParser(Exemplars.ValueParser); Assert.Same(Exemplars.ValueParser, map.GetParser(typeof(string))); }
public void TestGetParser__Null() { ValueParseMap map = new ValueParseMap(); map.AddParser(Exemplars.ValueParser); Assert.Throws <ArgumentNullException>(() => map.GetParser(null)); }
public void TestGetParser__NotRegistered() { ValueParseMap map = new ValueParseMap(); map.AddParser(Exemplars.ValueParser); Assert.Throws <ParseTypeNotRegisteredException>(() => map.GetParser(typeof(double))); }
public void TestClone() { IValueParser parser1 = Exemplars.DummyValueParser <int>(); IValueParser parser2 = Exemplars.DummyValueParser <bool>(); IValueParser parser3 = Exemplars.DummyValueParser <string>(); ValueParseMap map = new ValueParseMap(); map.AddParser(parser1); map.AddParser(parser2); ValueParseMap clone = map.Clone(); Assert.Same(parser1, clone.GetParser(typeof(int))); Assert.Same(parser2, clone.GetParser(typeof(bool))); clone.AddParser(parser3); Assert.Same(parser3, clone.GetParser(typeof(string))); Assert.Throws <ParseTypeNotRegisteredException>(() => map.GetParser(typeof(string))); }