コード例 #1
0
        public void type_match_user_function_not_invoked_if_type_doesnt_match()
        {
            ParameterBindingRulesCollection pb          = new ParameterBindingRulesCollection();
            HttpParameterBinding            mockBinding = new EmptyParameterBinding();

            pb.Add(
                typeof(string),
                param =>
            {
                throw new InvalidOperationException("shouldn't be called");
            }
                );
            pb.Insert(
                0,
                typeof(string),
                param =>
            {
                throw new InvalidOperationException("shouldn't be called");
            }
                );

            // Act
            HttpParameterBinding b2 = pb.LookupBinding(
                CreateParameterDescriptor(typeof(int), "first")
                );
            // Assert - made it through the action without throwing.
        }
コード例 #2
0
        public void Insert_with_type_match()
        {
            ParameterBindingRulesCollection pb           = new ParameterBindingRulesCollection();
            HttpParameterBinding            mockBinding1 = new EmptyParameterBinding();
            HttpParameterBinding            mockBinding2 = new EmptyParameterBinding();
            HttpParameterBinding            mockBinding3 = new EmptyParameterBinding();

            // Act, test insertion
            pb.Add(typeof(string), param => mockBinding2);
            pb.Add(typeof(int), param => mockBinding2);
            pb.Insert(0, typeof(string), param => mockBinding1);
            pb.Insert(2, typeof(int), param => mockBinding3); // goes in middle

            // Assert via lookups
            Assert.Equal(mockBinding1, pb.LookupBinding(CreateParameterDescriptor(typeof(string), "first")));
            Assert.Equal(mockBinding3, pb.LookupBinding(CreateParameterDescriptor(typeof(int), "first")));
        }