Esempio n. 1
0
        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"));
        }
Esempio n. 2
0
        public void TestAddParser__GetParser()
        {
            ValueParseMap map = new ValueParseMap();

            map.AddParser(Exemplars.ValueParser);

            Assert.Same(Exemplars.ValueParser, map.GetParser(typeof(string)));
        }
Esempio n. 3
0
        public void TestGetParser__Null()
        {
            ValueParseMap map = new ValueParseMap();

            map.AddParser(Exemplars.ValueParser);

            Assert.Throws <ArgumentNullException>(() => map.GetParser(null));
        }
Esempio n. 4
0
        public void TestGetParser__NotRegistered()
        {
            ValueParseMap map = new ValueParseMap();

            map.AddParser(Exemplars.ValueParser);

            Assert.Throws <ParseTypeNotRegisteredException>(() => map.GetParser(typeof(double)));
        }
Esempio n. 5
0
        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)));
        }