{"record":{"id":"5c8cc310f836db26","repo":"devlooped/moq","slug":"value-argument-is-out-of-range","errorCode":null,"errorMessage":"value (Argument is out of range)","messagePattern":"value \\(Argument is out of range\\)","errorType":"exception","errorClass":"ArgumentOutOfRangeException","httpStatus":null,"severity":"error","filePath":"src/Moq/Mock.cs","lineNumber":171,"sourceCode":"\n        internal abstract object?[] ConstructorArguments { get; }\n\n        /// <summary>\n        ///   Specifies the behavior to use when returning default values for unexpected invocations on loose mocks.\n        /// </summary>\n        public DefaultValue DefaultValue\n        {\n            get\n            {\n                return this.DefaultValueProvider.Kind;\n            }\n            set\n            {\n                this.DefaultValueProvider = value switch\n                {\n                    DefaultValue.Empty => DefaultValueProvider.Empty,\n                    DefaultValue.Mock => DefaultValueProvider.Mock,\n                    _ => throw new ArgumentOutOfRangeException(nameof(value)),\n                };\n            }\n        }\n\n        internal abstract EventHandlerCollection EventHandlers { get; }\n\n        /// <summary>\n        ///   Gets the mocked object instance.\n        /// </summary>\n        public object Object => this.OnGetObject();\n\n        /// <summary>\n        ///   Gets the interfaces directly inherited from the mocked type (<see cref=\"MockedType\"/>).\n        /// </summary>\n        internal abstract Type[] InheritedInterfaces { get; }\n\n        internal abstract bool IsObjectInitialized { get; }\n","sourceCodeStart":153,"sourceCodeEnd":189,"githubUrl":"https://github.com/devlooped/moq/blob/89a5be629c752960fe403e95ff583e4ae6f00542/src/Moq/Mock.cs#L153-L189","documentation":"Moq's Mock<T>.DefaultValue property setter validates that the assigned enum value is one of the supported DefaultValue members (Empty or Mock). Any other value (invalid cast, undefined enum constant, DefaultValue.CallBase legacy value) throws ArgumentOutOfRangeException, because Moq has no DefaultValueProvider mapping for it.","triggerScenarios":"Assigning an invalid DefaultValue enum value to mock.DefaultValue, e.g. mock.DefaultValue = (DefaultValue)99 or a value from an older/newer Moq version that no longer exists in the enum. The switch only maps DefaultValue.Empty and DefaultValue.Mock; everything else falls to the throw.","commonSituations":"Casting raw ints to DefaultValue when configuring mocks dynamically or via config files; upgrading/downgrading Moq where the enum lost or gained members (e.g. obsolete DefaultValue.CallBase); copy-pasted code using a different library's DefaultValue enum.","solutions":["Only assign DefaultValue.Empty or DefaultValue.Mock to Mock.DefaultValue","If you need custom default behavior, set mock.DefaultValueProvider to a DefaultValueProvider instance (including custom ones) instead of using the enum","Remove any integer casts or config-driven enum parsing that can produce undefined DefaultValue values","Verify the Moq version and update code that references removed enum members like CallBase"],"exampleFix":"// before\nmock.DefaultValue = (DefaultValue)5; // throws ArgumentOutOfRangeException\n// after\nmock.DefaultValue = DefaultValue.Mock; // or: mock.DefaultValueProvider = DefaultValueProvider.Mock;","handlingStrategy":"validation","validationCode":"static bool IsValidDefaultValue(DefaultValue v) => v is DefaultValue.Empty or DefaultValue.Mock;\n// guard before assignment:\n// if (!IsValidDefaultValue(v)) throw new ArgumentOutOfRangeException(nameof(v));","typeGuard":"static bool IsDefinedDefaultValue(object? v) => v is DefaultValue d && d is DefaultValue.Empty or DefaultValue.Mock;","tryCatchPattern":null,"preventionTips":["Never cast arbitrary ints to the DefaultValue enum","Prefer setting mock.DefaultValueProvider directly with DefaultValueProvider.Empty/Mock/custom providers","Check Moq release notes when upgrading for enum member changes"],"tags":["moq","argument-out-of-range","enum"],"backgroundTag":"invalid-enum-value","analyzedSha":"89a5be629c752960fe403e95ff583e4ae6f00542","analyzedAt":"2026-09-16T05:31:39.496Z","contentChangedAt":"2026-09-16T05:31:39.496Z","schemaVersion":2},"datasetVersion":"2026-09-16T09:17:16.951Z"}