Skip to content

Commit fdd3989

Browse files
authored
Merge pull request #29 from NovoaDev/16-create-unit-test-battery
16 create unit test battery
2 parents fb9c15b + 54a6a5d commit fdd3989

24 files changed

+406
-94
lines changed

Dependency-Graph.Test/.vscode/launch.json

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,23 @@
1414
"enableLongRunningSqlStatements": true,
1515
"enableSqlInformationDebugger": true,
1616
"tenant": "7be8f1f7-bc67-46c0-9487-d836aad47bea"
17+
},
18+
{
19+
"name": "Docker - DependencyGraph",
20+
"request": "launch",
21+
"type": "al",
22+
"environmentType": "OnPrem",
23+
"server": "http://DependencyGraph",
24+
"serverInstance": "BC",
25+
"authentication": "UserPassword",
26+
"startupObjectId": 22,
27+
"startupObjectType": "Page",
28+
"breakOnError": "All",
29+
"launchBrowser": true,
30+
"enableLongRunningSqlStatements": true,
31+
"enableSqlInformationDebugger": true,
32+
"tenant": "default",
33+
"usePublicURLFromServer": true
1734
}
1835
]
1936
}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"mandatorySuffix": "_ANJ"
3+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
permissionset 99990 DepGraphTest_ANJ
2+
{
3+
Access = Public;
4+
Assignable = true;
5+
Permissions = codeunit GenerateFiguresTest_ANJ = X,
6+
codeunit GraphAndMarkdownTest_ANJ = X,
7+
codeunit NumberSequenceTest_ANJ = X,
8+
codeunit TemporaryTablesTest_ANJ = X;
9+
}

Dependency-Graph.Test/Translations/Dependency-Graph.Test.g.xlf

Lines changed: 52 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,58 @@
22
<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 xliff-core-1.2-transitional.xsd">
33
<file datatype="xml" source-language="en-US" target-language="en-US" original="Dependency-Graph.Test">
44
<body>
5-
<group id="body" />
5+
<group id="body">
6+
<trans-unit id="Codeunit 3159861850 - NamedType 4030770184" size-unit="char" translate="yes" xml:space="preserve">
7+
<source>App</source>
8+
<note from="Developer" annotates="general" priority="2"></note>
9+
<note from="Xliff Generator" annotates="general" priority="3">Codeunit GenerateFiguresTest_ANJ - NamedType AppNameLbl</note>
10+
</trans-unit>
11+
<trans-unit id="Codeunit 3159861850 - NamedType 1890489750" size-unit="char" translate="yes" xml:space="preserve">
12+
<source>%1((%2))</source>
13+
<note from="Developer" annotates="general" priority="2"></note>
14+
<note from="Xliff Generator" annotates="general" priority="3">Codeunit GenerateFiguresTest_ANJ - NamedType CircleFigureLbl</note>
15+
</trans-unit>
16+
<trans-unit id="Codeunit 3159861850 - NamedType 3214227760" size-unit="char" translate="yes" xml:space="preserve">
17+
<source>Error generating figures.</source>
18+
<note from="Developer" annotates="general" priority="2"></note>
19+
<note from="Xliff Generator" annotates="general" priority="3">Codeunit GenerateFiguresTest_ANJ - NamedType GenerateFigureErr</note>
20+
</trans-unit>
21+
<trans-unit id="Codeunit 3159861850 - NamedType 4264074168" size-unit="char" translate="yes" xml:space="preserve">
22+
<source>E1</source>
23+
<note from="Developer" annotates="general" priority="2"></note>
24+
<note from="Xliff Generator" annotates="general" priority="3">Codeunit GenerateFiguresTest_ANJ - NamedType IdentityLbl</note>
25+
</trans-unit>
26+
<trans-unit id="Codeunit 3159861850 - NamedType 1958646152" size-unit="char" translate="yes" xml:space="preserve">
27+
<source>%1{%2}</source>
28+
<note from="Developer" annotates="general" priority="2"></note>
29+
<note from="Xliff Generator" annotates="general" priority="3">Codeunit GenerateFiguresTest_ANJ - NamedType RhombusFigureLbl</note>
30+
</trans-unit>
31+
<trans-unit id="Codeunit 3159861850 - NamedType 1518175748" size-unit="char" translate="yes" xml:space="preserve">
32+
<source>%1[%2]</source>
33+
<note from="Developer" annotates="general" priority="2"></note>
34+
<note from="Xliff Generator" annotates="general" priority="3">Codeunit GenerateFiguresTest_ANJ - NamedType SquareRectangleFigureLbl</note>
35+
</trans-unit>
36+
<trans-unit id="Codeunit 1844708212 - NamedType 1644787387" size-unit="char" translate="yes" xml:space="preserve">
37+
<source>E1</source>
38+
<note from="Developer" annotates="general" priority="2"></note>
39+
<note from="Xliff Generator" annotates="general" priority="3">Codeunit NumberSequenceTest_ANJ - NamedType FirstRequestLbl</note>
40+
</trans-unit>
41+
<trans-unit id="Codeunit 1844708212 - NamedType 2011855819" size-unit="char" translate="yes" xml:space="preserve">
42+
<source>The number secuence does not correspond to the expected one</source>
43+
<note from="Developer" annotates="general" priority="2"></note>
44+
<note from="Xliff Generator" annotates="general" priority="3">Codeunit NumberSequenceTest_ANJ - NamedType NumberSequenceErr</note>
45+
</trans-unit>
46+
<trans-unit id="Codeunit 1844708212 - NamedType 1024096429" size-unit="char" translate="yes" xml:space="preserve">
47+
<source>E2</source>
48+
<note from="Developer" annotates="general" priority="2"></note>
49+
<note from="Xliff Generator" annotates="general" priority="3">Codeunit NumberSequenceTest_ANJ - NamedType SecondRequestLbl</note>
50+
</trans-unit>
51+
<trans-unit id="Codeunit 1844708212 - NamedType 2561704828" size-unit="char" translate="yes" xml:space="preserve">
52+
<source>E3</source>
53+
<note from="Developer" annotates="general" priority="2"></note>
54+
<note from="Xliff Generator" annotates="general" priority="3">Codeunit NumberSequenceTest_ANJ - NamedType ThirdRequestLbl</note>
55+
</trans-unit>
56+
</group>
657
</body>
758
</file>
859
</xliff>

Dependency-Graph.Test/app.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,12 @@
1818
"id": "dd0be2ea-f733-4d65-bb34-a28f4624fb14",
1919
"version": "22.0.0.0"
2020
},
21+
{
22+
"id": "5d86850b-0d76-4eca-bd7b-951ad998e997",
23+
"publisher": "Microsoft",
24+
"name": "Tests-TestLibraries",
25+
"version": "22.0.0.0"
26+
},
2127
{
2228
"publisher": "Microsoft",
2329
"name": "Any",
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
/// <summary>
2+
/// Codeunit "GenerateFiguresTest_ANJ" (ID 99991).
3+
/// </summary>
4+
codeunit 99991 GenerateFiguresTest_ANJ
5+
{
6+
Access = Public;
7+
Subtype = Test;
8+
TestPermissions = Disabled;
9+
10+
[Test]
11+
procedure GenerateFigures();
12+
var
13+
ScopeDevFigure: Text;
14+
ScopeGlobalFigure: Text;
15+
ScopePTEFigure: Text;
16+
begin
17+
// [Scenario]
18+
// Verify that the figures are being generated according to each of the extension scopes.
19+
20+
// [Given] Setup:
21+
InitializeDependencyGraphSetup();
22+
23+
// [When] Exercise:
24+
GetFigureText(ScopeDevFigure, ScopeGlobalFigure, ScopePTEFigure);
25+
26+
// [Then] Verify:
27+
LibraryAssert.AreEqual(ScopePTEFigure, StrSubstNo(SquareRectangleFigureLbl, IdentityLbl, AppNameLbl), StrSubstNo(GenerateFigureErr));
28+
LibraryAssert.AreEqual(ScopeGlobalFigure, StrSubstNo(CircleFigureLbl, IdentityLbl, AppNameLbl), StrSubstNo(GenerateFigureErr));
29+
LibraryAssert.AreEqual(ScopeDevFigure, StrSubstNo(RhombusFigureLbl, IdentityLbl, AppNameLbl), StrSubstNo(GenerateFigureErr));
30+
end;
31+
32+
/// <summary>
33+
/// InitializeDependencyGraphSetup
34+
/// </summary>
35+
local procedure InitializeDependencyGraphSetup()
36+
var
37+
DependencyGraphSetup: Record DependencyGraphSetup_ANJ;
38+
begin
39+
DependencyGraphSetup.GetInstance();
40+
DependencyGraphSetup.Validate(ScopePTEFigure, Enum::GeometricFigure_ANJ::SquareRectangle);
41+
DependencyGraphSetup.Validate(ScopeGlobalFigure, Enum::GeometricFigure_ANJ::Circle);
42+
DependencyGraphSetup.Validate(ScopeDevFigure, Enum::GeometricFigure_ANJ::Rhombus);
43+
DependencyGraphSetup.Modify(true);
44+
end;
45+
46+
/// <summary>
47+
/// GetFigureText.
48+
/// </summary>
49+
/// <param name="ScopeDevFigure">VAR Text.</param>
50+
/// <param name="ScopeGlobalFigure">VAR Text.</param>
51+
/// <param name="ScopePTEFigure">VAR Text.</param>
52+
local procedure GetFigureText(var ScopeDevFigure: Text; var ScopeGlobalFigure: Text; var ScopePTEFigure: Text)
53+
begin
54+
ScopePTEFigure := DependencyGraphFacadeANJ.GenerateFigures(Enum::ExtensionScope_ANJ::PTE, IdentityLbl, AppNameLbl);
55+
ScopeGlobalFigure := DependencyGraphFacadeANJ.GenerateFigures(Enum::ExtensionScope_ANJ::Global, IdentityLbl, AppNameLbl);
56+
ScopeDevFigure := DependencyGraphFacadeANJ.GenerateFigures(Enum::ExtensionScope_ANJ::Dev, IdentityLbl, AppNameLbl);
57+
end;
58+
59+
var
60+
DependencyGraphFacadeANJ: Codeunit DependencyGraphFacade_ANJ;
61+
LibraryAssert: Codeunit "Library Assert";
62+
AppNameLbl: Label 'App';
63+
CircleFigureLbl: Label '%1((%2))';
64+
GenerateFigureErr: Label 'Error generating figures.';
65+
IdentityLbl: Label 'E1';
66+
RhombusFigureLbl: Label '%1{%2}';
67+
SquareRectangleFigureLbl: Label '%1[%2]';
68+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
/// <summary>
2+
/// Codeunit "GraphAndMarkdownTest_ANJ" (ID 99993).
3+
/// </summary>
4+
codeunit 99993 GraphAndMarkdownTest_ANJ
5+
{
6+
Access = Public;
7+
Subtype = Test;
8+
}
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
/// <summary>
2+
/// Codeunit NumberSequenceTest_ANJ (ID 99990).
3+
/// </summary>
4+
codeunit 99990 NumberSequenceTest_ANJ
5+
{
6+
Access = Public;
7+
Subtype = Test;
8+
9+
[Test]
10+
procedure TestNumberSequence();
11+
var
12+
FirstRequest: Text;
13+
SecondRequest: Text;
14+
ThirdRequest: Text;
15+
begin
16+
// [Scenario]
17+
// Verify that it is initialized and a number series is created correctly.
18+
19+
// [Given] Setup:
20+
LibraryLowerPermissions.SetO365BusFull();
21+
22+
// [When] Exercise:
23+
CheckInitializeAndCreateSomeNumberSeries(FirstRequest, SecondRequest, ThirdRequest);
24+
25+
// [Then] Verify:
26+
LibraryAssert.AreEqual(FirstRequest, FirstRequestLbl, NumberSequenceErr);
27+
LibraryAssert.AreEqual(SecondRequest, SecondRequestLbl, NumberSequenceErr);
28+
LibraryAssert.AreEqual(ThirdRequest, ThirdRequestLbl, NumberSequenceErr);
29+
end;
30+
31+
/// <summary>
32+
/// CheckInitializeAndCreateSomeNumberSeries.
33+
/// </summary>
34+
/// <param name="FirstRequest">VAR Text.</param>
35+
/// <param name="SecondRequest">VAR Text.</param>
36+
/// <param name="ThirdRequest">VAR Text.</param>
37+
local procedure CheckInitializeAndCreateSomeNumberSeries(var FirstRequest: Text; var SecondRequest: Text; var ThirdRequest: Text)
38+
begin
39+
DependencyGraphFacadeANJ.InitializeNumberSequence();
40+
FirstRequest := DependencyGraphFacadeANJ.GetNextNumberSequence();
41+
SecondRequest := DependencyGraphFacadeANJ.GetNextNumberSequence();
42+
ThirdRequest := DependencyGraphFacadeANJ.GetNextNumberSequence();
43+
end;
44+
45+
var
46+
DependencyGraphFacadeANJ: Codeunit DependencyGraphFacade_ANJ;
47+
LibraryLowerPermissions: Codeunit "Library - Lower Permissions";
48+
LibraryAssert: Codeunit "Library Assert";
49+
FirstRequestLbl: Label 'E1';
50+
NumberSequenceErr: Label 'The number secuence does not correspond to the expected one';
51+
SecondRequestLbl: Label 'E2';
52+
ThirdRequestLbl: Label 'E3';
53+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
/// <summary>
2+
/// Codeunit "TemporaryTablesTest_ANJ" (ID 99992).
3+
/// </summary>
4+
codeunit 99992 TemporaryTablesTest_ANJ
5+
{
6+
Access = Public;
7+
Subtype = Test;
8+
}

Dependency-Graph/.vscode/launch.json

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,23 @@
1414
"enableLongRunningSqlStatements": true,
1515
"enableSqlInformationDebugger": true,
1616
"tenant": "7be8f1f7-bc67-46c0-9487-d836aad47bea"
17+
},
18+
{
19+
"name": "Docker - DependencyGraph",
20+
"request": "launch",
21+
"type": "al",
22+
"environmentType": "OnPrem",
23+
"server": "http://DependencyGraph",
24+
"serverInstance": "BC",
25+
"authentication": "UserPassword",
26+
"startupObjectId": 22,
27+
"startupObjectType": "Page",
28+
"breakOnError": "All",
29+
"launchBrowser": true,
30+
"enableLongRunningSqlStatements": true,
31+
"enableSqlInformationDebugger": true,
32+
"tenant": "default",
33+
"usePublicURLFromServer": true
1734
}
1835
]
1936
}

Dependency-Graph/DependencyGraphANJ.permissionset.al

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,5 +25,6 @@ permissionset 80800 DependencyGraph_ANJ
2525
page MarkdownViewer_ANJ = X,
2626
codeunit DependencyGraphFacade_ANJ = X,
2727
page MarkdownFactbox_ANJ = X,
28-
page MarkdownViewerFull_ANJ = X;
28+
page MarkdownViewerFull_ANJ = X,
29+
codeunit CleanTemporaryTables_ANJ = X;
2930
}
154 KB
Binary file not shown.
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
/// <summary>
2+
/// Codeunit "CleanTemporaryTables_ANJ" (ID 80811).
3+
/// </summary>
4+
codeunit 80811 CleanTemporaryTables_ANJ
5+
{
6+
Access = Public;
7+
8+
/// <summary>
9+
/// Clean.
10+
/// </summary>
11+
/// <param name="ExtensionsTable">Boolean.</param>
12+
/// <param name="RelationsTable">Boolean.</param>
13+
internal procedure Clean(ExtensionsTable: Boolean; RelationsTable: Boolean);
14+
var
15+
IsHandled: Boolean;
16+
begin
17+
OnBeforeClean(ExtensionsTable, RelationsTable, IsHandled);
18+
DoClean(ExtensionsTable, RelationsTable, IsHandled);
19+
OnAfterClean(ExtensionsTable, RelationsTable);
20+
end;
21+
22+
/// <summary>
23+
/// DoClean.
24+
/// </summary>
25+
/// <param name="ExtensionsTable">Boolean.</param>
26+
/// <param name="RelationsTable">Boolean.</param>
27+
/// <param name="IsHandled">Boolean.</param>
28+
local procedure DoClean(ExtensionsTable: Boolean; RelationsTable: Boolean; IsHandled: Boolean);
29+
begin
30+
if IsHandled then
31+
exit;
32+
33+
if ExtensionsTable then
34+
CleanExtensionsTable();
35+
36+
if RelationsTable then
37+
CleanRelationsTable();
38+
end;
39+
40+
/// <summary>
41+
/// CleanExtensionsTable.
42+
/// </summary>
43+
local procedure CleanExtensionsTable();
44+
var
45+
Extensions: Record Extensions_ANJ;
46+
begin
47+
if not Extensions.IsEmpty() then
48+
Extensions.DeleteAll(true);
49+
end;
50+
51+
/// <summary>
52+
/// CleanRelationsTable.
53+
/// </summary>
54+
local procedure CleanRelationsTable();
55+
var
56+
Relations: Record Relations_ANJ;
57+
begin
58+
if not Relations.IsEmpty() then
59+
Relations.DeleteAll(true);
60+
end;
61+
62+
[IntegrationEvent(false, false)]
63+
local procedure OnBeforeClean(var ExtensionsTable: Boolean; var RelationsTable: Boolean; var IsHandled: Boolean);
64+
begin
65+
end;
66+
67+
[IntegrationEvent(false, false)]
68+
local procedure OnAfterClean(ExtensionsTable: Boolean; RelationsTable: Boolean);
69+
begin
70+
end;
71+
}

0 commit comments

Comments
 (0)