Skip to content

Commit 31c9a72

Browse files
committed
Add GenerateEntityUnitTestsWithAITask and refactor unit test generation
- Introduced a new module task: GenerateEntityUnitTestsWithAITask. - Updated GenerateCqrsHandlerUnitTestsWithAITask and GenerateIntegrationEventHandlerUnitTestsWithAITask to utilize UnitTestHelpers for mock framework retrieval. - Removed redundant GetMockFramework methods from multiple task classes. - Created UnitTestHelpers utility class for shared functionality. - Updated application output log to include new task file generation. - Enhanced AI Prompts designer settings to include context menu option for generating unit tests with AI.
1 parent 3e33f46 commit 31c9a72

File tree

11 files changed

+234
-44
lines changed

11 files changed

+234
-44
lines changed

Modules/Intent.Modules.AI.UnitTests/Intent.AI.UnitTests.imodspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
<tags />
3434
<moduleSettingsExtensions />
3535
<metadata>
36-
<install target="Services" src="modelers/AI Prompts.designer.settings" externalReference="1cd14547-8efc-4adc-a653-7fc17d8206a4" />
36+
<install target="Services;Domain" src="modelers/AI Prompts.designer.settings" externalReference="1cd14547-8efc-4adc-a653-7fc17d8206a4" />
3737
</metadata>
3838
<releaseNotes>release-notes.md</releaseNotes>
3939
<migrations />

Modules/Intent.Modules.AI.UnitTests/Intent.Metadata/Module Builder/Intent.AI.UnitTests/Elements/Designer Settings/AI Prompts__4xpqrk45.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
<definitionPackageId>9972b2a9-b749-4bba-b5c8-824bf694c6ef</definitionPackageId>
1717
<properties>
1818
<property name="9566aa04-ab84-4fbc-b039-6e676159ed82" display="Is Reference" value="false" isActive="true" />
19-
<property name="fdbbd211-a162-4f29-bcdb-1250309d8aef" display="Extend Designers" value="[&quot;81104ae6-2bc5-4bae-b05a-f987b0372d81&quot;]" isActive="true" />
19+
<property name="fdbbd211-a162-4f29-bcdb-1250309d8aef" display="Extend Designers" value="[&quot;81104ae6-2bc5-4bae-b05a-f987b0372d81&quot;,&quot;6ab29b31-27af-4f56-a67c-986d82097d63&quot;]" isActive="true" />
2020
</properties>
2121
</stereotype>
2222
</stereotypes>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,117 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<class id="9fc30fe2-1732-4daf-a267-e1370e4f15c2" type="Element Extension" typeId="e3c7b1ca-f080-45c1-b56f-8d44226c8e20">
3+
<name>Domain Entity Extension</name>
4+
<display>Domain Entity Extension: Class</display>
5+
<isAbstract>false</isAbstract>
6+
<sort-children>by-type-then-manually</sort-children>
7+
<genericTypes />
8+
<typeReference id="981f1616-4c2e-4a1c-ac36-26c13f509c64">
9+
<typeId>04e12b51-ed12-42a3-9667-a6aa81bb6d10</typeId>
10+
<isNavigable>true</isNavigable>
11+
<isNullable>false</isNullable>
12+
<isCollection>false</isCollection>
13+
<isRequired>true</isRequired>
14+
<typePackageName>Intent.Modelers.Domain</typePackageName>
15+
<typePackageId>6572b98d-5e13-4d4b-9ffc-820057da974e</typePackageId>
16+
<stereotypes />
17+
<genericTypeParameters />
18+
</typeReference>
19+
<isMapped>false</isMapped>
20+
<parentFolderId>1cd14547-8efc-4adc-a653-7fc17d8206a4</parentFolderId>
21+
<packageId>d7c7c7b3-1faa-4ea9-b9d4-25291fc2447e</packageId>
22+
<packageName>Intent.AI.UnitTests</packageName>
23+
<stereotypes>
24+
<stereotype stereotypeDefinitionId="159cbc8e-a910-40f7-8e45-3edadbb863c2" name="Type Reference Extension Settings">
25+
<addedByDefault>true</addedByDefault>
26+
<definitionPackageName>Intent.ModuleBuilder</definitionPackageName>
27+
<definitionPackageId>9972b2a9-b749-4bba-b5c8-824bf694c6ef</definitionPackageId>
28+
<properties>
29+
<property name="35226a83-3965-4224-8aef-20c68a0c5180" display="Mode" value="Inherit" isActive="true" />
30+
<property name="7d3859d4-084d-4ff0-8b31-850b4a8f8cd0" display="Display Name" isActive="false" />
31+
<property name="17223dbd-8df0-4700-8b81-02274ca3ed7f" display="Hint" isActive="false" />
32+
<property name="b2cef034-5706-45d2-8554-f4dc582a18ff" display="Target Types" isActive="false" />
33+
<property name="08ec0581-c90a-489b-858f-ee265327c948" display="Target Traits" isActive="true" />
34+
<property name="93e4efa9-186d-4e88-ae0a-491bcd6e6f5e" display="Default Type Id" isActive="false" />
35+
<property name="7a0c4185-1c08-4d3e-9185-14683d7a3bd0" display="Allow Collection" value="Inherit" isActive="false" />
36+
<property name="e3dc90ec-4f5f-4f20-b271-e28a5094dc91" display="Allow Nullable" value="Inherit" isActive="false" />
37+
</properties>
38+
</stereotype>
39+
<stereotype stereotypeDefinitionId="312eab00-f6db-492e-bbb4-e41383c8d3d8" name="Extension Settings">
40+
<addedByDefault>true</addedByDefault>
41+
<definitionPackageName>Intent.ModuleBuilder</definitionPackageName>
42+
<definitionPackageId>9972b2a9-b749-4bba-b5c8-824bf694c6ef</definitionPackageId>
43+
<properties>
44+
<property name="8c964307-9d03-4a14-9fd3-40ea2607955a" display="Display Text Function" isActive="true" />
45+
<property name="996ed45f-2318-4587-9618-73db3d7cfed0" display="Validate Function" isActive="true" />
46+
</properties>
47+
</stereotype>
48+
</stereotypes>
49+
<metadata />
50+
<childElements>
51+
<childElement id="eadc531a-2c8e-4b0d-b441-c008c222892b" type="Context Menu" typeId="d45e383d-90ba-4b64-aca7-34ca100cea21">
52+
<name>[context menu]</name>
53+
<display>[context menu]</display>
54+
<isAbstract>false</isAbstract>
55+
<sort-children>manually</sort-children>
56+
<genericTypes />
57+
<isMapped>false</isMapped>
58+
<parentFolderId>9fc30fe2-1732-4daf-a267-e1370e4f15c2</parentFolderId>
59+
<packageId>d7c7c7b3-1faa-4ea9-b9d4-25291fc2447e</packageId>
60+
<packageName>Intent.AI.UnitTests</packageName>
61+
<stereotypes />
62+
<metadata />
63+
<childElements>
64+
<childElement id="1ff76135-93a2-4ead-9920-126fe7851d5a" type="Run Script Option" typeId="345d46fb-c500-409a-88c7-26720572c9af">
65+
<name>Generate Unit Tests with AI</name>
66+
<display>Generate Unit Tests with AI: Inline Script</display>
67+
<isAbstract>false</isAbstract>
68+
<genericTypes />
69+
<typeReference id="84bd6f80-177e-4c18-b972-809cc486f432">
70+
<typeId>043eee26-1591-42ac-9f2c-fc911b070eb1</typeId>
71+
<isNavigable>true</isNavigable>
72+
<isNullable>false</isNullable>
73+
<isCollection>false</isCollection>
74+
<isRequired>true</isRequired>
75+
<typePackageName>Intent.ModuleBuilder</typePackageName>
76+
<typePackageId>9972b2a9-b749-4bba-b5c8-824bf694c6ef</typePackageId>
77+
<stereotypes />
78+
<genericTypeParameters />
79+
</typeReference>
80+
<isMapped>false</isMapped>
81+
<parentFolderId>eadc531a-2c8e-4b0d-b441-c008c222892b</parentFolderId>
82+
<packageId>d7c7c7b3-1faa-4ea9-b9d4-25291fc2447e</packageId>
83+
<packageName>Intent.AI.UnitTests</packageName>
84+
<stereotypes>
85+
<stereotype stereotypeDefinitionId="56bc0465-c1fe-4bca-9493-2a3ce88a4047" name="Script Settings">
86+
<addedByDefault>true</addedByDefault>
87+
<definitionPackageName>Intent.ModuleBuilder</definitionPackageName>
88+
<definitionPackageId>9972b2a9-b749-4bba-b5c8-824bf694c6ef</definitionPackageId>
89+
<properties>
90+
<property name="73a4088f-626e-4d31-b0b2-113167f015b2" display="Script" value="await execute(&quot;Intent.AI.UnitTests.GenerateEntityUnitTestsWithAITask&quot;);" isActive="true" />
91+
<property name="7df9c3b9-91a0-4cb7-bc3a-15d72f160054" display="Dependencies" value="[&quot;2b87841e-8eb1-4181-86e6-28e45ccfe84f&quot;]" isActive="true" />
92+
</properties>
93+
</stereotype>
94+
<stereotype stereotypeDefinitionId="cbe77364-d1d0-400b-a8c4-646a4c869612" name="Option Settings">
95+
<addedByDefault>true</addedByDefault>
96+
<definitionPackageName>Intent.ModuleBuilder</definitionPackageName>
97+
<definitionPackageId>9972b2a9-b749-4bba-b5c8-824bf694c6ef</definitionPackageId>
98+
<properties>
99+
<property name="b2c3a117-23d3-47e5-8b83-5b902c55a226" display="Icon" value="{&quot;type&quot;:0,&quot;source&quot;:&quot;data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyBpZD0iYnJhY2tldF9zeW1ib2wtYmx1ZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2ZXJzaW9uPSIxLjEiIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSIwIDAgNDIuOSA0Mi45Ij4KICA8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMjkuNi4xLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogMi4xLjEgQnVpbGQgOSkgIC0tPgogIDxkZWZzPgogICAgPGxpbmVhckdyYWRpZW50IGlkPSJsaW5lYXItZ3JhZGllbnQiIHgxPSItMTE1MjIuNyIgeTE9Ii02NjU3LjciIHgyPSItMTE1MjIuNyIgeTI9Ii02NjM5LjQiIGdyYWRpZW50VHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTY2MzYgLTExNDk1LjIpIHJvdGF0ZSgtOTApIHNjYWxlKDEgLTEpIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CiAgICAgIDxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvcj0iI2ZmZiIvPgogICAgICA8c3RvcCBvZmZzZXQ9Ii40IiBzdG9wLWNvbG9yPSIjMDljNGZmIi8+CiAgICAgIDxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzAwNzBjMCIvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxsaW5lYXJHcmFkaWVudCBpZD0ibGluZWFyLWdyYWRpZW50MSIgeDE9Ii0xNTYxMi4yIiB5MT0iLTE1MzciIHgyPSItMTU2MTIuMiIgeTI9Ii0xNTE4LjkiIGdyYWRpZW50VHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTEyMDk5LjggLTk5MjguNykgcm90YXRlKC0xMzUpIHNjYWxlKDEgLTEpIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CiAgICAgIDxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvcj0iI2ZmZiIvPgogICAgICA8c3RvcCBvZmZzZXQ9Ii40IiBzdG9wLWNvbG9yPSIjMDljNGZmIi8+CiAgICAgIDxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzAwNzBjMCIvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxsaW5lYXJHcmFkaWVudCBpZD0ibGluZWFyLWdyYWRpZW50MiIgeDE9Ii0xNDg4Mi42IiB5MT0iNDk3NS40IiB4Mj0iLTE0ODgyLjYiIHkyPSI0OTkzLjYiIGdyYWRpZW50VHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTE0ODU1LjIgLTQ5NTcuMikgcm90YXRlKC0xODApIHNjYWxlKDEgLTEpIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CiAgICAgIDxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvcj0iI2ZmZiIvPgogICAgICA8c3RvcCBvZmZzZXQ9Ii40IiBzdG9wLWNvbG9yPSIjMDljNGZmIi8+CiAgICAgIDxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzAwNzBjMCIvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxsaW5lYXJHcmFkaWVudCBpZD0ibGluZWFyLWdyYWRpZW50MyIgeDE9Ii05NzYyLjMiIHkxPSI5MDY0LjUiIHgyPSItOTc2Mi4zIiB5Mj0iOTA4Mi43IiBncmFkaWVudFRyYW5zZm9ybT0idHJhbnNsYXRlKC0xMzI4OC43IDUwNi43KSByb3RhdGUoMTM1KSBzY2FsZSgxIC0xKSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgogICAgICA8c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiNmZmYiLz4KICAgICAgPHN0b3Agb2Zmc2V0PSIuNCIgc3RvcC1jb2xvcj0iIzA5YzRmZiIvPgogICAgICA8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiMwMDcwYzAiLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8bGluZWFyR3JhZGllbnQgaWQ9ImxpbmVhci1ncmFkaWVudDQiIHgxPSItMzI0OS41IiB5MT0iODMzNS40IiB4Mj0iLTMyNDkuNSIgeTI9IjgzNTMuNiIgZ3JhZGllbnRUcmFuc2Zvcm09InRyYW5zbGF0ZSgtODMxNy4xIDMyNjIuMSkgcm90YXRlKDkwKSBzY2FsZSgxIC0xKSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgogICAgICA8c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiNmZmYiLz4KICAgICAgPHN0b3Agb2Zmc2V0PSIuNCIgc3RvcC1jb2xvcj0iIzA5YzRmZiIvPgogICAgICA8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiMwMDcwYzAiLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8bGluZWFyR3JhZGllbnQgaWQ9ImxpbmVhci1ncmFkaWVudDUiIHgxPSI4MzkuNCIgeTE9IjMyMTQuOCIgeDI9IjgzOS40IiB5Mj0iMzIzMyIgZ3JhZGllbnRUcmFuc2Zvcm09InRyYW5zbGF0ZSgtMjg1My4zIDE2OTUuNSkgcm90YXRlKDQ1KSBzY2FsZSgxIC0xKSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgogICAgICA8c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiNmZmYiLz4KICAgICAgPHN0b3Agb2Zmc2V0PSIuNCIgc3RvcC1jb2xvcj0iIzA5YzRmZiIvPgogICAgICA8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiMwMDcwYzAiLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8bGluZWFyR3JhZGllbnQgaWQ9ImxpbmVhci1ncmFkaWVudDYiIHgxPSIxMTAuNSIgeTE9Ii0zMjk3LjciIHgyPSIxMTAuNSIgeTI9Ii0zMjc5LjQiIGdyYWRpZW50VHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTk3LjkgLTMyNzYpIHNjYWxlKDEgLTEpIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CiAgICAgIDxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvcj0iI2ZmZiIvPgogICAgICA8c3RvcCBvZmZzZXQ9Ii40IiBzdG9wLWNvbG9yPSIjMDljNGZmIi8+CiAgICAgIDxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzAwNzBjMCIvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxsaW5lYXJHcmFkaWVudCBpZD0ibGluZWFyLWdyYWRpZW50NyIgeDE9Ii01MDEwLjYiIHkxPSItNzM4Ni43IiB4Mj0iLTUwMTAuNiIgeTI9Ii03MzY4LjYiIGdyYWRpZW50VHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTE2NjQuNSAtODczOS44KSByb3RhdGUoLTQ1KSBzY2FsZSgxIC0xKSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgogICAgICA8c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiNmZmYiLz4KICAgICAgPHN0b3Agb2Zmc2V0PSIuNCIgc3RvcC1jb2xvcj0iIzA5YzRmZiIvPgogICAgICA8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiMwMDcwYzAiLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8bGluZWFyR3JhZGllbnQgaWQ9ImxpbmVhci1ncmFkaWVudDgiIHgxPSIzMS4yIiB5MT0iLTIwNjgiIHgyPSIzMS4yIiB5Mj0iLTIwNTAuNiIgZ3JhZGllbnRUcmFuc2Zvcm09InRyYW5zbGF0ZSgwIC0yMDI4KSBzY2FsZSgxIC0xKSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgogICAgICA8c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiM0YTk5MjQiLz4KICAgICAgPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjODZkZTMzIi8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogIDwvZGVmcz4KICA8cGF0aCBkPSJNMjEuNywyMS43YzAtLjQuNCwzLjctMS41LDYuOC0xLjgsMy4xLTQuMSw0LTcuNyw0LjgtMiwuNS0zLjIsMC00LjgtLjUtMi4yLS43LTMuMy0yLjUtMy43LTMuMXMtLjgtMS45LS41LTMuMmMuNS0yLjIsMi0zLjMsNC0zLjkuNCwwLDIuMi0uNSwzLjkuNHMyLjIsMS41LDMuNywxLjljMS41LjQsMy4xLDAsMy43LS40LDEuNy0uNiwyLjktMi40LDMuMS0zLjF2LjJoLS4yWiIgZmlsbD0idXJsKCNsaW5lYXItZ3JhZGllbnQpIi8+CiAgPHBhdGggZD0iTTIyLjQsMTkuOWMtLjMtLjMsMi45LDIuNCwzLjcsNS44cy4yLDUuOC0yLDguOWMtMS4yLDEuOC0yLjMsMi40LTMuOCwzLjItMi4xLDEtNC4yLjYtNC43LjVzLTEuOS0uNy0yLjYtMS45Yy0xLjEtMS45LTEtMy44LDAtNS42LjMtLjMsMS4xLTEuOSwzLTIuNSwxLjgtLjYsMi42LS41LDQtMS4zczIuMS0yLjEsMi40LTIuOWMuNy0xLjcuNC0zLjcsMC00LjNoLjItLjJaIiBmaWxsPSJ1cmwoI2xpbmVhci1ncmFkaWVudDEpIi8+CiAgPHBhdGggZD0iTTIxLjcsMTguM2MtLjQsMCwzLjctLjQsNi44LDEuNSwzLjEsMS44LDQuMyw0LDQuOCw3LjcuNCwyLDAsMy4yLS41LDQuOC0uNywyLjItMi41LDMuMy0zLjEsMy43cy0xLjkuOC0zLjIuNWMtMi4yLS41LTMuMy0yLTMuOS00LDAtLjQtLjUtMi4yLjQtMy45czEuNS0yLjIsMS45LTMuNywwLTMuMS0uNC0zLjdjLS42LTEuNy0yLjQtMi45LTMuMS0zLjFoLjJ2LjJoLjFaIiBmaWxsPSJ1cmwoI2xpbmVhci1ncmFkaWVudDIpIi8+CiAgPHBhdGggZD0iTTE5LjksMTcuNmMtLjMuMywyLjQtMi45LDUuOC0zLjdzNS44LS4yLDguOSwyYzEuOCwxLjIsMi40LDIuMywzLjIsMy44LDEsMi4xLjYsNC4yLjUsNC43cy0uNywxLjktMS45LDIuNmMtMS45LDEuMS0zLjgsMS01LjYsMC0uMy0uMy0xLjktMS4xLTIuNS0zcy0uNS0yLjYtMS4zLTQtMi4xLTIuMS0yLjktMi40Yy0xLjctLjctMy43LS40LTQuMywwaDB2LS4yaDB2LjJzLjEsMCwuMSwwWiIgZmlsbD0idXJsKCNsaW5lYXItZ3JhZGllbnQzKSIvPgogIDxwYXRoIGQ9Ik0xOC4zLDE4LjNjMCwuNC0uNC0zLjcsMS41LTYuOHM0LTQuMyw3LjctNC44YzItLjQsMy4yLDAsNC44LjUsMi4yLjcsMy4zLDIuNSwzLjcsMy4xcy44LDEuOS41LDMuMmMtLjUsMi4yLTIsMy4zLTQsMy45LS40LDAtMi4yLjUtMy45LS40cy0yLjItMS41LTMuNy0xLjktMy4xLDAtMy43LjRjLTEuNy42LTIuOSwyLjQtMy4xLDMuMXYtLjJoLjJaIiBmaWxsPSJ1cmwoI2xpbmVhci1ncmFkaWVudDQpIi8+CiAgPHBhdGggZD0iTTE3LjYsMTkuOWMuMy4zLTIuOS0yLjQtMy43LTUuOHMtLjItNS44LDItOC45YzEuMi0xLjgsMi4zLTIuNCwzLjgtMy4yLDIuMS0xLDQuMi0uNiw0LjctLjVzMS45LjcsMi42LDEuOWMxLjEsMS45LDEsMy44LDAsNS42LS4zLjMtMS4xLDEuOS0zLDIuNXMtMi42LjUtNCwxLjNjLTEuMy44LTIuMSwyLjEtMi40LDIuOS0uNywxLjctLjQsMy43LDAsNC4zaC0uMi4yLDBaIiBmaWxsPSJ1cmwoI2xpbmVhci1ncmFkaWVudDUpIi8+CiAgPHBhdGggZD0iTTE4LjMsMjEuN2MuNCwwLTMuNy40LTYuOC0xLjVzLTQuMy00LTQuOC03LjdjLS40LTIsMC0zLjIuNS00LjguNy0yLjIsMi41LTMuMywzLjEtMy43czEuOS0uOCwzLjItLjVjMi4yLjUsMy4zLDIsMy45LDQsMCwuNC41LDIuMi0uNCwzLjlzLTEuNSwyLjItMS45LDMuN2MtLjQsMS41LDAsMy4xLjQsMy43LjYsMS43LDIuNCwyLjksMy4xLDMuMWgtLjJ2LS4yaC0uMVoiIGZpbGw9InVybCgjbGluZWFyLWdyYWRpZW50NikiLz4KICA8cGF0aCBkPSJNMTkuOSwyMi40Yy4zLS4zLTIuNCwyLjktNS44LDMuN3MtNS44LjItOC45LTJjLTEuOC0xLjItMi40LTIuMy0zLjItMy44LTEtMi4xLS42LTQuMi0uNS00LjdzLjctMS45LDEuOS0yLjZjMS45LTEuMSwzLjgtMSw1LjYsMCwuMy4zLDEuOSwxLjEsMi41LDMsLjYsMS44LjUsMi42LDEuMyw0LC44LDEuMywyLjEsMi4xLDIuOSwyLjQsMS43LjcsMy43LjQsNC4zLDBoMHYuMmgwdi0uMnMtLjEsMC0uMSwwWiIgZmlsbD0idXJsKCNsaW5lYXItZ3JhZGllbnQ3KSIvPgogIDxyZWN0IHg9IjI4LjQiIHk9IjE4LjkiIHdpZHRoPSI2IiBoZWlnaHQ9IjE1LjkiIGZpbGw9IiNmZmYiLz4KICA8cGF0aCBkPSJNMzQuNywzMC4zdi05LjhjLjgsMCwuOC0uMy44LS44di0uOGMwLS40LS4yLS44LS43LS44aC02LjhjLS40LDAtLjguMy0uOC44di44YzAsLjguOC44LjguOHY5LjhsLTUuOCw4LjdjLS4zLjUtLjQsMS4yLDAsMS43cy45LjksMS41LjloMTUuMWMuNiwwLDEuMS0uMywxLjQtLjhzLjItLjYuMi0uOCwwLS41LS4zLS44bC01LjQtOC44aDBaTTI4LjQsMzMuMmwxLjYtMi41di0xMC4yaDIuNnYxMC4xbDEuNSwyLjZzLTUuNywwLTUuNywwWiIgZmlsbD0idXJsKCNsaW5lYXItZ3JhZGllbnQ4KSIgc3Ryb2tlPSIjZmZmIiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiIHN0cm9rZS13aWR0aD0iLjgiLz4KPC9zdmc+&quot;}" isActive="true" />
100+
<property name="0abff08a-3986-40b1-a28f-4cc03c4fc1ec" display="Shortcut" isActive="true" />
101+
<property name="79f6973f-5e3a-4618-9d4c-d7cc604bffe0" display="Shortcut (macOS)" isActive="true" />
102+
<property name="6087e660-9599-47fb-9ff4-1ad901ce2a00" display="Trigger On Double-Click" value="false" isActive="true" />
103+
<property name="c03841e5-a1e9-4e95-b699-5a466dde7d7d" display="Is Option Visible Function" value="" isActive="true" />
104+
<property name="e034a0ca-0101-4594-8384-43048b714578" display="Order" isActive="true" />
105+
<property name="c37d8704-0003-4886-b6c2-4e51aa22a8f9" display="Menu Group" isActive="true" />
106+
<property name="3e93529e-2110-414e-aec1-2656e1a99b22" display="Top Divider" value="false" isActive="true" />
107+
<property name="d2572c08-f02e-40b2-8a06-4d5251bb3352" display="Bottom Divider" value="false" isActive="true" />
108+
</properties>
109+
</stereotype>
110+
</stereotypes>
111+
<metadata />
112+
<childElements />
113+
</childElement>
114+
</childElements>
115+
</childElement>
116+
</childElements>
117+
</class>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<class id="8ea939ab-8406-4f36-8068-e872330009c3" type="Module Task" typeId="ad38ef37-45b8-4a6a-96de-f8d41da3cfe0">
3+
<name>GenerateEntityUnitTestsWithAITask</name>
4+
<display>GenerateEntityUnitTestsWithAITask</display>
5+
<isAbstract>false</isAbstract>
6+
<genericTypes />
7+
<isMapped>false</isMapped>
8+
<parentFolderId>d7c7c7b3-1faa-4ea9-b9d4-25291fc2447e</parentFolderId>
9+
<packageId>d7c7c7b3-1faa-4ea9-b9d4-25291fc2447e</packageId>
10+
<packageName>Intent.AI.UnitTests</packageName>
11+
<stereotypes />
12+
<metadata />
13+
<childElements />
14+
</class>

Modules/Intent.Modules.AI.UnitTests/Intent.Modules.AI.UnitTests.application.output.log

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,14 @@
4848
<ProjectRelativeFilePath>GenerateCqrsHandlerUnitTestsWithAITask.cs</ProjectRelativeFilePath>
4949
<IsIgnored>false</IsIgnored>
5050
</FileLog>
51+
<FileLog>
52+
<ProjectId>128bf46d-9b55-4ce1-8d5d-d5ce2fc124ba</ProjectId>
53+
<CorrelationId>Intent.ModuleBuilder.Templates.ModuleTask#8ea939ab-8406-4f36-8068-e872330009c3</CorrelationId>
54+
<OverwriteBehaviour>always</OverwriteBehaviour>
55+
<ApplicationRelativeFilePath>Tasks/GenerateEntityUnitTestsWithAITask.cs</ApplicationRelativeFilePath>
56+
<ProjectRelativeFilePath>GenerateEntityUnitTestsWithAITask.cs</ProjectRelativeFilePath>
57+
<IsIgnored>false</IsIgnored>
58+
</FileLog>
5159
<FileLog>
5260
<ProjectId>128bf46d-9b55-4ce1-8d5d-d5ce2fc124ba</ProjectId>
5361
<CorrelationId>Intent.ModuleBuilder.Templates.ModuleTask#e4dc8e83-39c0-486c-b390-aad495483a53</CorrelationId>

Modules/Intent.Modules.AI.UnitTests/Tasks/GenerateCqrsHandlerUnitTestsWithAITask.cs

Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
using Intent.Utils;
1818
using Microsoft.SemanticKernel;
1919
using Newtonsoft.Json;
20+
using Intent.Modules.AI.UnitTests.Utilities;
2021

2122
[assembly: DefaultIntentManaged(Mode.Fully)]
2223
[assembly: IntentTemplate("Intent.ModuleBuilder.Templates.ModuleTask", Version = "1.0")]
@@ -87,7 +88,7 @@ public string Execute(params string[] args)
8788
["inputFilesJson"] = jsonInput,
8889
["userProvidedContext"] = userProvidedContext,
8990
["targetFileName"] = queryModel.Name + "Handler",
90-
["mockFramework"] = GetMockFramework(),
91+
["mockFramework"] = UnitTestHelpers.GetMockFramework(_applicationConfigurationProvider),
9192
["slnRelativePath"] = "/" + string.Join('/', queryModel.GetParentPath().Select(x => x.Name)),
9293
["fileChangesSchema"] = FileChangesSchema.GetPromptInstructions()
9394
});
@@ -890,17 +891,4 @@ private static List<ICanBeReferencedType> GetRelatedElements(IElement element)
890891
return relatedClasses;
891892
}
892893

893-
private string GetMockFramework()
894-
{
895-
const string defaultMock = "Moq";
896-
897-
var unitTestGroup = _applicationConfigurationProvider.GetSettings().GetGroup("d62269ea-8e64-44a0-8392-e1a69da7c960");
898-
899-
if (unitTestGroup is null)
900-
{
901-
return defaultMock;
902-
}
903-
904-
return unitTestGroup.GetSetting("115c28bc-a4c8-4b30-bd00-2e320fee77dc")?.Value ?? defaultMock;
905-
}
906894
}

0 commit comments

Comments
 (0)