From 1721ad1ac015c0a355b946deb7d1025bd5cf952e Mon Sep 17 00:00:00 2001 From: Patrick Stevens <3138005+Smaug123@users.noreply.github.com> Date: Tue, 30 Sep 2025 22:52:59 +0100 Subject: [PATCH] Unconditional function for empty generating mock (#430) --- ConsumePlugin/GeneratedCapturingMock.fs | 14 +++++++------- .../GeneratedCapturingMockNoAttributes.fs | 12 ++++++------ .../TestCapturingMockGenerator.fs | 4 ++-- .../TestCapturingMockGeneratorNoAttr.fs | 2 +- .../CapturingInterfaceMockGenerator.fs | 5 +---- WoofWare.Myriad.Plugins/version.json | 4 ++-- 6 files changed, 19 insertions(+), 22 deletions(-) diff --git a/ConsumePlugin/GeneratedCapturingMock.fs b/ConsumePlugin/GeneratedCapturingMock.fs index f7f4898..040b8df 100644 --- a/ConsumePlugin/GeneratedCapturingMock.fs +++ b/ConsumePlugin/GeneratedCapturingMock.fs @@ -37,7 +37,7 @@ type internal PublicTypeMock = } /// An implementation where every non-unit method throws. - static member Empty : PublicTypeMock = + static member Empty () : PublicTypeMock = { Calls = PublicTypeMockCalls.Calls.Empty () Mem1 = (fun _ -> raise (System.NotImplementedException "Unimplemented mock function: Mem1")) @@ -90,7 +90,7 @@ type public PublicTypeInternalFalseMock = } /// An implementation where every non-unit method throws. - static member Empty : PublicTypeInternalFalseMock = + static member Empty () : PublicTypeInternalFalseMock = { Calls = PublicTypeInternalFalseMockCalls.Calls.Empty () Mem1 = (fun _ -> raise (System.NotImplementedException "Unimplemented mock function: Mem1")) @@ -140,7 +140,7 @@ type internal InternalTypeMock = } /// An implementation where every non-unit method throws. - static member Empty : InternalTypeMock = + static member Empty () : InternalTypeMock = { Calls = InternalTypeMockCalls.Calls.Empty () Mem1 = (fun _ -> raise (System.NotImplementedException "Unimplemented mock function: Mem1")) @@ -185,7 +185,7 @@ type private PrivateTypeMock = } /// An implementation where every non-unit method throws. - static member Empty : PrivateTypeMock = + static member Empty () : PrivateTypeMock = { Calls = PrivateTypeMockCalls.Calls.Empty () Mem1 = (fun _ -> raise (System.NotImplementedException "Unimplemented mock function: Mem1")) @@ -230,7 +230,7 @@ type private PrivateTypeInternalFalseMock = } /// An implementation where every non-unit method throws. - static member Empty : PrivateTypeInternalFalseMock = + static member Empty () : PrivateTypeInternalFalseMock = { Calls = PrivateTypeInternalFalseMockCalls.Calls.Empty () Mem1 = (fun _ -> raise (System.NotImplementedException "Unimplemented mock function: Mem1")) @@ -487,7 +487,7 @@ type internal TypeWithInterfaceMock = } /// An implementation where every non-unit method throws. - static member Empty : TypeWithInterfaceMock = + static member Empty () : TypeWithInterfaceMock = { Calls = TypeWithInterfaceMockCalls.Calls.Empty () Dispose = (fun () -> ()) @@ -541,7 +541,7 @@ type internal TypeWithPropertiesMock = } /// An implementation where every non-unit method throws. - static member Empty : TypeWithPropertiesMock = + static member Empty () : TypeWithPropertiesMock = { Calls = TypeWithPropertiesMockCalls.Calls.Empty () Dispose = (fun () -> ()) diff --git a/ConsumePlugin/GeneratedCapturingMockNoAttributes.fs b/ConsumePlugin/GeneratedCapturingMockNoAttributes.fs index 33310ac..72b07c3 100644 --- a/ConsumePlugin/GeneratedCapturingMockNoAttributes.fs +++ b/ConsumePlugin/GeneratedCapturingMockNoAttributes.fs @@ -36,7 +36,7 @@ type internal PublicTypeNoAttrMock = } /// An implementation where every non-unit method throws. - static member Empty : PublicTypeNoAttrMock = + static member Empty () : PublicTypeNoAttrMock = { Calls = PublicTypeNoAttrMockCalls.Calls.Empty () Mem1 = (fun _ -> raise (System.NotImplementedException "Unimplemented mock function: Mem1")) @@ -88,7 +88,7 @@ type public PublicTypeInternalFalseNoAttrMock = } /// An implementation where every non-unit method throws. - static member Empty : PublicTypeInternalFalseNoAttrMock = + static member Empty () : PublicTypeInternalFalseNoAttrMock = { Calls = PublicTypeInternalFalseNoAttrMockCalls.Calls.Empty () Mem1 = (fun _ -> raise (System.NotImplementedException "Unimplemented mock function: Mem1")) @@ -137,7 +137,7 @@ type internal InternalTypeNoAttrMock = } /// An implementation where every non-unit method throws. - static member Empty : InternalTypeNoAttrMock = + static member Empty () : InternalTypeNoAttrMock = { Calls = InternalTypeNoAttrMockCalls.Calls.Empty () Mem1 = (fun _ -> raise (System.NotImplementedException "Unimplemented mock function: Mem1")) @@ -181,7 +181,7 @@ type private PrivateTypeNoAttrMock = } /// An implementation where every non-unit method throws. - static member Empty : PrivateTypeNoAttrMock = + static member Empty () : PrivateTypeNoAttrMock = { Calls = PrivateTypeNoAttrMockCalls.Calls.Empty () Mem1 = (fun _ -> raise (System.NotImplementedException "Unimplemented mock function: Mem1")) @@ -225,7 +225,7 @@ type private PrivateTypeInternalFalseNoAttrMock = } /// An implementation where every non-unit method throws. - static member Empty : PrivateTypeInternalFalseNoAttrMock = + static member Empty () : PrivateTypeInternalFalseNoAttrMock = { Calls = PrivateTypeInternalFalseNoAttrMockCalls.Calls.Empty () Mem1 = (fun _ -> raise (System.NotImplementedException "Unimplemented mock function: Mem1")) @@ -479,7 +479,7 @@ type internal TypeWithInterfaceNoAttrMock = } /// An implementation where every non-unit method throws. - static member Empty : TypeWithInterfaceNoAttrMock = + static member Empty () : TypeWithInterfaceNoAttrMock = { Calls = TypeWithInterfaceNoAttrMockCalls.Calls.Empty () Dispose = (fun () -> ()) diff --git a/WoofWare.Myriad.Plugins.Test/TestCapturingMockGenerator/TestCapturingMockGenerator.fs b/WoofWare.Myriad.Plugins.Test/TestCapturingMockGenerator/TestCapturingMockGenerator.fs index 539e417..1e54c86 100644 --- a/WoofWare.Myriad.Plugins.Test/TestCapturingMockGenerator/TestCapturingMockGenerator.fs +++ b/WoofWare.Myriad.Plugins.Test/TestCapturingMockGenerator/TestCapturingMockGenerator.fs @@ -11,7 +11,7 @@ module TestCapturingMockGenerator = [] let ``Example of use: IPublicType`` () = let mock : IPublicType = - { PublicTypeMock.Empty with + { PublicTypeMock.Empty () with Mem1 = fun (s, count) -> List.replicate count s } :> _ @@ -38,7 +38,7 @@ module TestCapturingMockGenerator = [] let ``Example of use: properties`` () = let mock : TypeWithProperties = - { TypeWithPropertiesMock.Empty with + { TypeWithPropertiesMock.Empty () with Mem1 = fun i -> async { return Option.toArray i } Prop1 = fun () -> 44 } diff --git a/WoofWare.Myriad.Plugins.Test/TestCapturingMockGenerator/TestCapturingMockGeneratorNoAttr.fs b/WoofWare.Myriad.Plugins.Test/TestCapturingMockGenerator/TestCapturingMockGeneratorNoAttr.fs index 2da7b77..8bd7c86 100644 --- a/WoofWare.Myriad.Plugins.Test/TestCapturingMockGenerator/TestCapturingMockGeneratorNoAttr.fs +++ b/WoofWare.Myriad.Plugins.Test/TestCapturingMockGenerator/TestCapturingMockGeneratorNoAttr.fs @@ -11,7 +11,7 @@ module TestCapturingMockGeneratorNoAttr = [] let ``Example of use: IPublicType`` () = let mock : IPublicTypeNoAttr = - { PublicTypeNoAttrMock.Empty with + { PublicTypeNoAttrMock.Empty () with Mem1 = fun (s, count) -> List.replicate count s } :> _ diff --git a/WoofWare.Myriad.Plugins/CapturingInterfaceMockGenerator.fs b/WoofWare.Myriad.Plugins/CapturingInterfaceMockGenerator.fs index 1b5a04d..ef7a79d 100644 --- a/WoofWare.Myriad.Plugins/CapturingInterfaceMockGenerator.fs +++ b/WoofWare.Myriad.Plugins/CapturingInterfaceMockGenerator.fs @@ -273,10 +273,7 @@ module internal CapturingInterfaceMockGenerator = let staticMemberEmpty = SynBinding.basic [ Ident.create "Empty" ] - (if interfaceType.Generics.IsNone then - [] - else - [ SynPat.unit ]) + [ SynPat.unit ] (SynExpr.createRecord None emptyRecordFieldInstantiations) |> SynBinding.withXmlDoc (PreXmlDoc.create "An implementation where every non-unit method throws.") |> SynBinding.withReturnAnnotation constructorReturnType diff --git a/WoofWare.Myriad.Plugins/version.json b/WoofWare.Myriad.Plugins/version.json index 828acfc..ed1a4b2 100644 --- a/WoofWare.Myriad.Plugins/version.json +++ b/WoofWare.Myriad.Plugins/version.json @@ -1,5 +1,5 @@ { - "version": "8.1", + "version": "9.0", "publicReleaseRefSpec": [ "^refs/heads/main$" ], @@ -11,4 +11,4 @@ ":/README.md", ":/Directory.Build.props" ] -} \ No newline at end of file +}