Example #1
0
        public void YetAnoterDynamicTest(params string[] args)
        {
            var model = ModelBinder.BindTo <DynamicPartModel>(PARSER.Parse(args));

            Assert.NotNull(model);
            Assert.AreEqual("remove", model.Command);
            Assert.IsInstanceOf <RemoveParams>(model.Params);
            var p = model.Params as RemoveParams;

            Assert.AreEqual("2", p.Id);
        }
Example #2
0
        public void DynamicTest(params string[] args)
        {
            var model = ModelBinder.BindTo <DynamicPartModel>(PARSER.Parse(args));

            Assert.NotNull(model);
            Assert.AreEqual("create", model.Command);
            Assert.IsInstanceOf <CreateParams>(model.Params);
            var p = model.Params as CreateParams;

            Assert.AreEqual("Пиотр", p.Name);
            Assert.AreEqual("Зелёнкин", p.Value);
        }
Example #3
0
        public void StaticTest()
        {
            var model = ModelBinder.BindTo <StaticPartModel>(PARSER.Parse("/type=item", "/1=hello", "/2=7"));

            Assert.NotNull(model);
            Assert.AreEqual("item", model.Type);

            Assert.NotNull(model.Part);
            Assert.AreEqual("hello", model.Part.Property1);
            Assert.AreEqual(7, model.Part.Property2);
            Assert.NotNull(model.Part2);
            Assert.AreEqual("hello", model.Part2.Property1);
            Assert.AreEqual(7, model.Part2.Property2);
            Assert.NotNull(model.Part2.Nested);
            Assert.AreEqual("hello", model.Part2.Nested.Property1);
            Assert.AreEqual(7, model.Part2.Nested.Property2);
        }
Example #4
0
        /// <summary>
        /// Разбирает массив аргументов и привязывает его к объекту указанного типа.
        /// </summary>
        /// <typeparam name="TOptions">Тип объекта для привязки аргументов командной строки.</typeparam>
        /// <param name="args">Массив переданных аргументов.</param>
        TOptions ParseAndBindTo <TOptions>(params string[] args) where TOptions : new()
        {
            var cmdargs = parser.Parse(args);

            return(ModelBinder.BindTo <TOptions>(cmdargs, CultureInfo.InvariantCulture));
        }