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. }
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"))); }