Example #1
0
        private IModelBindingDefinition <TModel> ConfigureInternal <TModel>(IModelBindingDefinitionInitializer initializer)
        {
            var m = new ModelBindingDefinition <TModel>();

            initializer.Initialize(m);

            return(m);
        }
Example #2
0
        public void SimpleModelFluentTest()
        {
            var m = new ModelBindingDefinition <SimpleTestModel>()
                    .AsFluent().UsingStringComparer(StringComparer.Ordinal)
                    .ParsesArgumentsWith(typeof(int), new Int16Converter())
                    .HasFirstOrdinalArgumentOf(a => a.FileName)
                    .ForMember(a => a.Name)
                    .WatchesFor("name", "nam")
                    .ForMember(a => a.Id)
                    .WatchesFor("id")
                    .HasHelpTextOf("Hello World")
                    .ForModel()
                    .UsingSwitchDelimiter("--")
                    .Initialize();

            Assert.AreEqual(1, m.GetOrdinalArguments().Count());
            Assert.Contains(m.Members.GetMemberBindingDefinitionFor(a => a.FileName).MemberInfo, m.GetOrdinalArguments().ToList());
            Assert.AreEqual(StringComparer.Ordinal, m.StringComparer);
            Assert.AreEqual("--", m.SwitchDelimiter);
            Assert.AreEqual(1, m.TypeConverters.Count);
            Assert.IsTrue(m.TypeConverters.ContainsKey(typeof(int)));
            Assert.AreEqual(typeof(Int16Converter), m.TypeConverters[typeof(int)].GetType());

            var member = m.Members.GetMemberBindingDefinitionFor(a => a.Id);

            Assert.IsNull(member.DefaultValue);
            Assert.AreSame(m, member.Parent);
            Assert.IsNull(member.TypeConverter);
            Assert.AreEqual(1, member.SwitchValues.Count);
            Assert.IsTrue(member.CanHandleSwitch("id"));
            Assert.AreEqual("Hello World", member.HelpText);

            member = m.Members.GetMemberBindingDefinitionFor(a => a.Name);
            Assert.IsNull(member.DefaultValue);
            Assert.AreSame(m, member.Parent);
            Assert.IsNull(member.TypeConverter);
            Assert.AreEqual(2, member.SwitchValues.Count);
            Assert.IsFalse(member.CanHandleSwitch("NAM"));
            Assert.IsFalse(member.CanHandleSwitch("nAmE"));
            Assert.IsTrue(member.CanHandleSwitch("nam"));
            Assert.IsTrue(member.CanHandleSwitch("name"));
            Assert.IsNull(member.HelpText);

            member = m.Members.GetMemberBindingDefinitionFor(a => a.FileName);
            Assert.IsNull(member.DefaultValue);
            Assert.AreSame(m, member.Parent);
            Assert.IsNull(member.TypeConverter);
            Assert.IsEmpty(member.SwitchValues);
            Assert.IsNull(member.HelpText);
        }
Example #3
0
        public void SimpleModelFluentTest()
        {
            var m = new ModelBindingDefinition <SimpleTestModel>()
                    .AsFluent().UsingStringComparer(StringComparer.InvariantCulture)
                    .ParsesArgumentsWith(typeof(int), new System.ComponentModel.Int16Converter())
                    .HasFirstOrdinalArgumentOf(a => a.FileName)
                    .ForMember(a => a.Name)
                    .WatchesFor("name", "nam")
                    .ForMember(a => a.Id)
                    .WatchesFor("id")
                    .HasHelpTextOf("Hello World")
                    .ForModel()
                    .UsingSwitchDelimiter("--")
                    .Initialize();

            m.GetOrdinalArguments().Count().Should().Be.EqualTo(1);
            m.GetOrdinalArguments().Should().Contain(m.Members.GetMemberBindingDefinitionFor(a => a.FileName).MemberInfo);
            m.StringComparer.Should().Be.EqualTo(StringComparer.InvariantCulture);
            m.SwitchDelimiter.Should().Be.EqualTo("--");
            m.TypeConverters.Count.Should().Be.EqualTo(1);
            m.TypeConverters.ContainsKey(typeof(int));
            m.TypeConverters[typeof(int)].Should().Be.OfType <System.ComponentModel.Int16Converter>();

            var member = m.Members.GetMemberBindingDefinitionFor(a => a.Id);

            member.DefaultValue.Should().Be.Null();
            member.Parent.Should().Be.EqualTo(m);
            member.TypeConverter.Should().Be.Null();
            member.SwitchValues.Count().Should().Be.EqualTo(1);
            member.CanHandleSwitch("id").Should().Be.True();
            member.HelpText.Should().Be.EqualTo("Hello World");

            member = m.Members.GetMemberBindingDefinitionFor(a => a.Name);
            member.DefaultValue.Should().Be.Null();
            member.Parent.Should().Be.EqualTo(m);
            member.TypeConverter.Should().Be.Null();
            member.SwitchValues.Count().Should().Be.EqualTo(2);
            member.CanHandleSwitch("NAM").Should().Be.False();
            member.CanHandleSwitch("nAmE").Should().Be.False();
            member.CanHandleSwitch("nam").Should().Be.True();
            member.CanHandleSwitch("name").Should().Be.True();
            member.HelpText.Should().Be.Null();

            member = m.Members.GetMemberBindingDefinitionFor(a => a.FileName);
            member.DefaultValue.Should().Be.Null();
            member.Parent.Should().Be.EqualTo(m);
            member.TypeConverter.Should().Be.Null();
            member.SwitchValues.Should().Be.Empty();
            member.HelpText.Should().Be.Null();
        }
        public void SimpleModelFluentTest()
        {
            var m = new ModelBindingDefinition<SimpleTestModel>()
            .AsFluent().UsingStringComparer(StringComparer.InvariantCulture)            
            .ParsesArgumentsWith(typeof(int), new System.ComponentModel.Int16Converter())
            .HasFirstOrdinalArgumentOf(a => a.FileName)
            .ForMember(a => a.Name)
                .WatchesFor("name", "nam")
            .ForMember(a => a.Id)
                .WatchesFor("id")
                .HasHelpTextOf("Hello World")
            .ForModel()
            .UsingSwitchDelimiter("--")
            .Initialize();

            m.GetOrdinalArguments().Count().Should().Be.EqualTo(1);
            m.GetOrdinalArguments().Should().Contain(m.Members.GetMemberBindingDefinitionFor(a => a.FileName).MemberInfo);
            m.StringComparer.Should().Be.EqualTo(StringComparer.InvariantCulture);
            m.SwitchDelimiter.Should().Be.EqualTo("--");
            m.TypeConverters.Count.Should().Be.EqualTo(1);
            m.TypeConverters.ContainsKey(typeof(int));
            m.TypeConverters[typeof(int)].Should().Be.OfType<System.ComponentModel.Int16Converter>();

            var member = m.Members.GetMemberBindingDefinitionFor(a => a.Id);
            member.DefaultValue.Should().Be.Null();
            member.Parent.Should().Be.EqualTo(m);
            member.TypeConverter.Should().Be.Null();
            member.SwitchValues.Count().Should().Be.EqualTo(1);
            member.CanHandleSwitch("id").Should().Be.True();
            member.HelpText.Should().Be.EqualTo("Hello World");

            member = m.Members.GetMemberBindingDefinitionFor(a => a.Name);
            member.DefaultValue.Should().Be.Null();
            member.Parent.Should().Be.EqualTo(m);
            member.TypeConverter.Should().Be.Null();
            member.SwitchValues.Count().Should().Be.EqualTo(2);
            member.CanHandleSwitch("NAM").Should().Be.False();
            member.CanHandleSwitch("nAmE").Should().Be.False();
            member.CanHandleSwitch("nam").Should().Be.True();
            member.CanHandleSwitch("name").Should().Be.True();
            member.HelpText.Should().Be.Null();

            member = m.Members.GetMemberBindingDefinitionFor(a => a.FileName);
            member.DefaultValue.Should().Be.Null();
            member.Parent.Should().Be.EqualTo(m);
            member.TypeConverter.Should().Be.Null();
            member.SwitchValues.Should().Be.Empty();
            member.HelpText.Should().Be.Null();
        }