mirror of
https://github.com/microsoft/BCQuality.git
synced 2026-10-05 14:46:55 +01:00
- use-generateguid-for-unique-test-fixture-values.md/.good.al: documented each LibraryUtility helper's actual behavior, verified against LibraryUtility.Codeunit.al. GenerateRandomCode opens the target table as a temporary RecordRef, so despite taking TableNo it never checks real data. GenerateRandomXMLText performs no table lookup at all. Only GenerateRandomCodeWithLength/GenerateRandomCode20 (capped at Code[10]/ Code[20]) genuinely verify against the real table. Fixture switched to GenerateRandomCodeWithLength where the comment claims verified uniqueness. - al-testing-review.md: rewired the cue to catch the actual anti-pattern (hardcoded literals, hand-built uniqueness, short-field GUID truncation) instead of only matching the compliant GenerateGUID()+CopyStr shape; broadened tokens to include TestPage, Library - Utility, and .Visible()/.Enabled()/.Editable(). - al-data-modeling-review.md: restricted the Item Ledger Entry Last-Shipping-No. cue to sales combined posting; purchase combined posting is Receive+Invoice and uses different fields entirely. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
21 lines
1.1 KiB
AL
21 lines
1.1 KiB
AL
codeunit 50132 "Sample Customer Type Library"
|
|
{
|
|
var
|
|
LibraryUtility: Codeunit "Library - Utility";
|
|
|
|
procedure CreateCustomerType(var CustomerType: Record "Customer Type")
|
|
begin
|
|
CustomerType.Init();
|
|
// Code is shorter than GenerateGUID()'s 10 characters, and this field's
|
|
// uniqueness matters, so use GenerateRandomCodeWithLength: it opens the
|
|
// real (non-temporary) table and loops until the value doesn't collide.
|
|
// GenerateRandomCode would not do this — it opens the table as temporary,
|
|
// so its own emptiness check never inspects real rows.
|
|
CustomerType.Code :=
|
|
LibraryUtility.GenerateRandomCodeWithLength(CustomerType.FieldNo(Code), Database::"Customer Type", MaxStrLen(CustomerType.Code));
|
|
// Description is long enough to hold the full GenerateGUID() value
|
|
// untruncated, and only needs to be incidental, not verified-unique.
|
|
CustomerType.Description := CopyStr(LibraryUtility.GenerateGUID(), 1, MaxStrLen(CustomerType.Description));
|
|
CustomerType.Insert(true);
|
|
end;
|
|
}
|