public void NoShortCircuit(ValidateTypeCtor sut) { sut.ShouldSkip.ShouldSkip(Arg.Any <Type>()).Returns(true); sut.Validate(typeof(ValidClass)); sut.Validate(typeof(ValidClass), new HashSet <string>() { "test" }); sut.Validate(typeof(ValidClass), new HashSet <string>() { "test2" }); sut.ShouldSkip.ReceivedWithAnyArgs(3).ShouldSkip(default !);
public bool Check(Type type) { if (type.BaseType?.FullName != "System.MulticastDelegate") { return(false); } var invoke = type.GetMethod("Invoke"); if (invoke == null) { return(false); } if (invoke.ReturnType == typeof(void)) { return(false); } var typeToCheck = invoke.ReturnType; ValidateType.Validate(typeToCheck, validateCtor: false); if (Registrations.Items.TryGetValue(typeToCheck, out var registrations)) { var register = registrations.FirstOrDefault(); if (register != null) { if (!register.NeedsValidation) { return(true); } typeToCheck = register.Type; } } var parameterNames = new HashSet <string>(invoke.GetParameters().Select(p => p.Name).NotNull()); ValidateTypeCtor.Validate(typeToCheck, parameterNames); return(true); }