예제 #1
0
        public void When_binding_an_object_to_a_form_with_a_property_and_a_collection_with_a_pluralized_name_of_the_property_using_prefixes()
        {
            var binder = new Binder();

            binder.AddControlPrefix(new HungarianNotationControlPrefix());
            var form = new PostWithOptionsPrefixForm();
            var post = NeededObjectsFactory.CreatePost();

            post.PublishStates.Add(new PublishState {
                State = "Published"
            });
            post.PublishStates.Add(new PublishState {
                State = "Reviewed"
            });
            post.PublishStates.Add(new PublishState {
                State = "Pending Review"
            });
            post.PublishStates.Add(new PublishState {
                State = "Draft"
            });
            post.PublishState = post.PublishStates[2];

            binder.Bind(post, form);

            Assert.That(form.cbPublishState.DataSource, Is.SameAs(post.PublishStates));
            Assert.That(form.cbPublishState.SelectedItem, Is.SameAs(post.PublishState));
        }
예제 #2
0
        public void When_binding_an_object_to_a_form_with_a_property_and_a_collection_with_a_pluralized_name_of_the_property_using_prefixes_and_aliases()
        {
            var binder = new Binder();

            binder.AddControlPrefix(new HungarianNotationControlPrefix());
            var aliases = new List <BindaAlias> {
                new BindaAlias("Location", "PostLocation")
            };
            var form = new PostWithOptionsPrefixForm();
            var post = NeededObjectsFactory.CreatePost();

            post.PublishStates.Add(new PublishState {
                State = "Published"
            });
            post.PublishStates.Add(new PublishState {
                State = "Reviewed"
            });
            post.PublishStates.Add(new PublishState {
                State = "Pending Review"
            });
            post.PublishStates.Add(new PublishState {
                State = "Draft"
            });
            post.PublishState = post.PublishStates[2];

            binder.Bind(post, form, aliases);

            Assert.That(form.cbPublishState.DataSource, Is.SameAs(post.PublishStates));
            Assert.That(form.cbPublishState.SelectedItem, Is.SameAs(post.PublishState));
            Assert.That(form.txtTitle.Text, Is.EqualTo(TestVariables.Title));
            Assert.That(form.txtAuthor.Text, Is.EqualTo(TestVariables.Author));
            Assert.That(form.dpDate.Value, Is.EqualTo(TestVariables.Posted));
            Assert.That(form.txtBody.Text, Is.EqualTo(TestVariables.Body));
            Assert.That(form.txtPostLocation.Text, Is.EqualTo(TestVariables.Location));
        }
예제 #3
0
        public void When_binding_an_object_to_aform_where_theform_is_null()
        {
            var binder = new Binder();
            var post   = NeededObjectsFactory.CreatePost();

            Assert.Throws <ArgumentNullException>(() => binder.Bind(post, (MySampleForm)null));
        }
예제 #4
0
        public void When_binding_a_form_to_an_object_with_a_collection_and_item_bound_to_a_list_control()
        {
            var binder = new Binder();
            var form   = new PostWithOptionsForm();
            var post   = NeededObjectsFactory.CreatePost();

            post.PublishStates.Add(new PublishState {
                State = "Published"
            });
            post.PublishStates.Add(new PublishState {
                State = "Reviewed"
            });
            post.PublishStates.Add(new PublishState {
                State = "Pending Review"
            });
            post.PublishStates.Add(new PublishState {
                State = "Draft"
            });
            post.PublishState = post.PublishStates[2];
            binder.Bind(post, form);
            var newState = post.PublishStates[0];

            form.PublishState.SelectedItem = newState;

            binder.Bind(form, post);

            Assert.That(post.PublishState, Is.EqualTo(newState));
        }
예제 #5
0
        public void When_binding_an_object_to_aform()
        {
            var binder = new Binder();
            var form   = new MySampleForm();
            var post   = NeededObjectsFactory.CreatePost();

            binder.Bind(post, form);

            Assert.That(form.Title.Text, Is.EqualTo(TestVariables.Title));
            Assert.That(form.Author.Text, Is.EqualTo(TestVariables.Author));
            Assert.That(form.Date.Value, Is.EqualTo(TestVariables.Posted));
            Assert.That(form.Body.Text, Is.EqualTo(TestVariables.Body));
        }
예제 #6
0
        public void When_binding_an_object_to_a_form_with_custom_control_registrations()
        {
            var binder   = new Binder();
            var form     = new MySampleForm();
            var strategy = new TestBindaStrategy();

            binder.AddRegistration(strategy, form.Title);
            binder.AddRegistration(typeof(TextBox), "Text");

            var post = NeededObjectsFactory.CreatePost();

            binder.Bind(post, form);

            Assert.IsTrue(strategy.WasSet);
        }
예제 #7
0
        public void When_binding_an_object_to_aform_withaliases()
        {
            var binder  = new Binder();
            var form    = new MySampleForm();
            var aliases = new List <BindaAlias> {
                new BindaAlias("Location", "PostLocation")
            };
            var post = NeededObjectsFactory.CreatePost();

            binder.Bind(post, form, aliases);

            Assert.That(form.Title.Text, Is.EqualTo(TestVariables.Title));
            Assert.That(form.Author.Text, Is.EqualTo(TestVariables.Author));
            Assert.That(form.Date.Value, Is.EqualTo(TestVariables.Posted));
            Assert.That(form.Body.Text, Is.EqualTo(TestVariables.Body));
            Assert.That(form.PostLocation.Text, Is.EqualTo(TestVariables.Location));
        }
예제 #8
0
        public void When_binding_an_oject_to_aform_with_custom_registrations()
        {
            var binder = new Binder();

            binder.AddRegistration(typeof(FluxCapacitor), "PopularityRanking");
            var form = new MySampleForm();
            var post = NeededObjectsFactory.CreatePost();

            post.PopularityRanking = TestVariables.PopularityRanking;

            binder.Bind(post, form);

            Assert.That(form.Title.Text, Is.EqualTo(TestVariables.Title));
            Assert.That(form.Author.Text, Is.EqualTo(TestVariables.Author));
            Assert.That(form.Date.Value, Is.EqualTo(TestVariables.Posted));
            Assert.That(form.Body.Text, Is.EqualTo(TestVariables.Body));
            Assert.That(form.PopularityRanking.PopularityRanking, Is.EqualTo(TestVariables.PopularityRanking));
        }
예제 #9
0
        public void When_binding_a_form_to_a_tree_view()
        {
            var binder   = new Binder();
            var form     = new PostWithOptionsForm();
            var post     = NeededObjectsFactory.CreatePost();
            var comments = NeededObjectsFactory.GenerateComments();

            post.Comments.AddRange(comments);
            binder.Bind(post, form);
            post = new Post();

            binder.Bind(form, post);

            Assert.That(post.Comments.Count, Is.EqualTo(2));
            Assert.That(post.Comments.GetCommentByAuthor("Tom").Comments.Count, Is.EqualTo(1));
            Assert.That(post.Comments.GetCommentByAuthor("Tom").Comments[0].Comments.Count, Is.EqualTo(1));
            Assert.That(post.Comments.GetCommentByAuthor("Sam").Comments.Count, Is.EqualTo(1));
        }
예제 #10
0
        public void When_binding_an_object_to_aform_using_prefixes_withaliases()
        {
            var binder = new Binder();

            binder.AddControlPrefix(new HungarianNotationControlPrefix());
            var form    = new MySamplePrefixForm();
            var aliases = new List <BindaAlias> {
                new BindaAlias("Location", "PostLocation")
            };
            var post = NeededObjectsFactory.CreatePost();

            binder.Bind(post, form, aliases);

            Assert.That(form.txtTitle.Text, Is.EqualTo(TestVariables.Title));
            Assert.That(form.txtAuthor.Text, Is.EqualTo(TestVariables.Author));
            Assert.That(form.dpDate.Value, Is.EqualTo(TestVariables.Posted));
            Assert.That(form.txtBody.Text, Is.EqualTo(TestVariables.Body));
            Assert.That(form.txtPostLocation.Text, Is.EqualTo(TestVariables.Location));
        }
예제 #11
0
        public void When_binding_a_tree_view_to_aform()
        {
            var binder   = new Binder();
            var form     = new PostWithOptionsForm();
            var post     = NeededObjectsFactory.CreatePost();
            var comments = NeededObjectsFactory.GenerateComments();

            post.Comments.AddRange(comments);

            binder.Bind(post, form);

            var allNodes = form.Comments.GetAllNodesRecursive();
            var tags     = allNodes.Select(x => x.Tag);

            CollectionAssert.AllItemsAreNotNull(tags);
            Assert.That(form.Comments.Nodes.Count, Is.EqualTo(2));
            Assert.That(allNodes.GetNodeCommentByAuthor("Tom").Nodes.Count, Is.EqualTo(1));
            Assert.That(allNodes.GetNodeCommentByAuthor("Tom").Nodes[0].Nodes.Count, Is.EqualTo(1));
            Assert.That(allNodes.GetNodeCommentByAuthor("Sam").Nodes.Count, Is.EqualTo(1));
        }
예제 #12
0
        public void When_binding_an_object_to_a_form_with_a_property_and_a_key_value_pair_collection()
        {
            var binder = new Binder();

            binder.AddControlPrefix(new HungarianNotationControlPrefix());

            var post = NeededObjectsFactory.CreatePost();

            post.Categories.Add(new KeyValuePair <int, string>(123, "Toast"));
            post.Categories.Add(new KeyValuePair <int, string>(8915, "Waffles"));
            post.Categories.Add(new KeyValuePair <int, string>(56123, "Pizza"));
            post.Category = 56123;

            var form = new PostWithOptionsPrefixForm();

            binder.AddRegistration(new KeyValueListStrategy(), form.cboCategory);
            binder.Bind(post, form);

            Assert.That(form.cboCategory.DataSource, Is.SameAs(post.Categories));
            Assert.That(form.cboCategory.SelectedValue, Is.EqualTo(post.Category));
        }
예제 #13
0
        public void When_binding_an_oject_to_aform_using_prefixesaliases_and_custom_registrations()
        {
            var binder = new Binder();

            binder.AddControlPrefix(new HungarianNotationControlPrefix());
            binder.AddRegistration(typeof(FluxCapacitor), "PopularityRanking");
            var aliases = new List <BindaAlias> {
                new BindaAlias("Location", "PostLocation")
            };
            var form = new MySamplePrefixForm();
            var post = NeededObjectsFactory.CreatePost();

            post.PopularityRanking = TestVariables.PopularityRanking;

            binder.Bind(post, form, aliases);

            Assert.That(form.txtTitle.Text, Is.EqualTo(TestVariables.Title));
            Assert.That(form.txtAuthor.Text, Is.EqualTo(TestVariables.Author));
            Assert.That(form.dpDate.Value, Is.EqualTo(TestVariables.Posted));
            Assert.That(form.txtBody.Text, Is.EqualTo(TestVariables.Body));
            Assert.That(form.txtPostLocation.Text, Is.EqualTo(TestVariables.Location));
            Assert.That(form.fcPopularityRanking.PopularityRanking, Is.EqualTo(TestVariables.PopularityRanking));
        }