Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FEATURE: Allow inserting Tab characters in text boxes #1751

Merged
merged 3 commits into from
Jul 25, 2023

FEATURE: Allow inserting Tab character by Tab key

8716d3d
Select commit
Failed to load commit list.
Sign in for the full log view
Merged

FEATURE: Allow inserting Tab characters in text boxes #1751

FEATURE: Allow inserting Tab character by Tab key
8716d3d
Select commit
Failed to load commit list.
GitHub Actions / NUnit Results succeeded Jul 21, 2023 in 0s

NUnit Results ✅

Tests passed successfully

✅ TestResults/test-results.trx

306 tests were completed in 27s with 306 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
Origam.Common_net2Tests.DebugTimerTests 1✅ 1s
Origam.Common_net2Tests.DictiaoaryExtensionsTests 1✅ 375ms
Origam.Common_net2Tests.DirectoryInfoExtensionTests 2✅ 4ms
Origam.Common_net2Tests.HttpToolsCookieTests 3✅ 75ms
Origam.Common_net2Tests.Properties.OrigamSettingsReaderTests 3✅ 696ms
Origam.Common_net2Tests.StringExtensionTests 1✅ 1ms
Origam.Common_net2Tests.TypeExtensionsTests 1✅ 1s
Origam.DA.Service_net2Tests.FlatFileSearcherTests 20✅ 672ms
Origam.DA.Service_net2Tests.OrderByCommandParserTests 10✅ 22ms
Origam.DA.Service_net2Tests.OrigamDocumentSorterTests 2✅ 106ms
Origam.DA.Service_net2Tests.XmlLoaderTest 8✅ 1s
Origam.DA.ServiceTests.FilePersistenceProviderTests 2✅ 310ms
Origam.DA.ServiceTests.FilterCommandParserTests 60✅ 89ms
Origam.DA.ServiceTests.InstanceWriterTests 2✅ 18ms
Origam.DA.ServiceTests.MetaModelUpgraderTests.MetaModelUpgraderTests 24✅ 787ms
Origam.DA.ServiceTests.MetaModelUpgraderTests.Version6UpgraderTests 4✅ 16ms
Origam.DA.ServiceTests.ScriptContainersTests.EntityUIActionScriptContainerTests 2✅ 35ms
Origam.DA.ServiceTests.ScriptContainersTests.PackageScriptContainerTests 2✅ 6ms
Origam.DA.ServiceTests.ScriptContainersTests.StateMachineEventParameterMappingTests 2✅ 4ms
Origam.GitTests.GitFileComparerTests 2✅ 467ms
Origam.RuleTests.LegacyXsltFunctionContainerTests 17✅ 127ms
Origam.RuleTests.XsltTests 106✅ 5s
Origam.SchemaTests.PackageVersionTests 17✅ 125ms
Origam.Workbench.ServicesTests.FilePersistenceServiceTests 2✅ 5s
Origam.Workbench.ServicesTests.FileStorageDocumentationServiceTests 7✅ 266ms
Origam.WorkbenchTests.DeploymentSorterTests 5✅ 25ms

✅ Origam.Common_net2Tests.DebugTimerTests

✅ ShouldMessureElapsedTime

✅ Origam.Common_net2Tests.DictiaoaryExtensionsTests

✅ ShouldRemoveValues

✅ Origam.Common_net2Tests.DirectoryInfoExtensionTests

✅ ShouldRecognizeDirectoryAsParent
✅ ShouldRecognizeDirectoryIsNotParent

✅ Origam.Common_net2Tests.HttpToolsCookieTests

✅ ShouldNotSplitASingleCookieWithAnExpiresAttribute("laravel_session=YmY3NDk3NTgwZmZhU5NDU5NjExZTQifQ%3D%3D; expires=Thu, 11-Jan-2018 17:50:21 GMT; Max-Age=7200; path=/; HttpOnly, laravel_session=YmY3NDk3NTgwZmZhU5NDU5NjExZTQifQ%3D%3D; expires=Thu, 11-Jan-2018 17:50:21 GMT; Max-Age=7200; path=/; HttpOnly",2)
✅ ShouldNotSplitASingleCookieWithAnExpiresAttribute("laravel_session=YmY3NDk3NTgwZmZhU5NDU5NjExZTQifQ%3D%3D; expires=Thu, 11-Jan-2018 17:50:21 GMT; Max-Age=7200; path=/; HttpOnly",1)
✅ ShouldParseStringToACookie

✅ Origam.Common_net2Tests.Properties.OrigamSettingsReaderTests

✅ ShouldFailWhenArrayOfOrigamSettingsIsMissing
✅ ShouldReadAllSettings
✅ ShouldWriteSettings

✅ Origam.Common_net2Tests.StringExtensionTests

✅ ShouldTruncateString

✅ Origam.Common_net2Tests.TypeExtensionsTests

✅ ShouldRemoveValues

✅ Origam.DA.Service_net2Tests.FlatFileSearcherTests

✅ ShouldFailToFindFindStringInFiles("blabl")
✅ ShouldFailToFindFindStringInFiles("blabl")
✅ ShouldFailToFindFindStringInFiles("labl")
✅ ShouldFailToFindFindStringInFiles("labl")
✅ ShouldFailToFindFindStringInFiles("lable")
✅ ShouldFailToFindFindStringInFiles("lable")
✅ ShouldFindAllItemsContainingKeyword
✅ ShouldFindAllItemsContainingKeyword
✅ ShouldFindStringInFiles("*labl*",["221bf117-1afb-462e-8c38-5b66ad84c347", "8afba476-ce1e-4c8c-b5e8-d3326b0e658d"])
✅ ShouldFindStringInFiles("*labl*",["221bf117-1afb-462e-8c38-5b66ad84c347", "8afba476-ce1e-4c8c-b5e8-d3326b0e658d"])
✅ ShouldFindStringInFiles("*lable",["221bf117-1afb-462e-8c38-5b66ad84c347", "8afba476-ce1e-4c8c-b5e8-d3326b0e658d"])
✅ ShouldFindStringInFiles("*lable",["221bf117-1afb-462e-8c38-5b66ad84c347", "8afba476-ce1e-4c8c-b5e8-d3326b0e658d"])
✅ ShouldFindStringInFiles("blabl*",["221bf117-1afb-462e-8c38-5b66ad84c347", "8afba476-ce1e-4c8c-b5e8-d3326b0e658d"])
✅ ShouldFindStringInFiles("blabl*",["221bf117-1afb-462e-8c38-5b66ad84c347", "8afba476-ce1e-4c8c-b5e8-d3326b0e658d"])
✅ ShouldFindStringInFiles("blable",["221bf117-1afb-462e-8c38-5b66ad84c347", "8afba476-ce1e-4c8c-b5e8-d3326b0e658d"])
✅ ShouldFindStringInFiles("blable",["221bf117-1afb-462e-8c38-5b66ad84c347", "8afba476-ce1e-4c8c-b5e8-d3326b0e658d"])
✅ ShouldFindStringInFiles("Test blable string",["221bf117-1afb-462e-8c38-5b66ad84c347"])
✅ ShouldFindStringInFiles("Test blable string",["221bf117-1afb-462e-8c38-5b66ad84c347"])
✅ ShouldFindStringInFiles("Test file blable",["8afba476-ce1e-4c8c-b5e8-d3326b0e658d"])
✅ ShouldFindStringInFiles("Test file blable",["8afba476-ce1e-4c8c-b5e8-d3326b0e658d"])

✅ Origam.DA.Service_net2Tests.OrderByCommandParserTests

✅ ShouldParseOrderBy
✅ ShouldParseOrderBy
✅ ShouldThrowArgumentExceptionWhenParsingOrderBy(" ,desc")
✅ ShouldThrowArgumentExceptionWhenParsingOrderBy(" ,desc")
✅ ShouldThrowArgumentExceptionWhenParsingOrderBy(",desc")
✅ ShouldThrowArgumentExceptionWhenParsingOrderBy(",desc")
✅ ShouldThrowArgumentExceptionWhenParsingOrderBy("col1, ")
✅ ShouldThrowArgumentExceptionWhenParsingOrderBy("col1, ")
✅ ShouldThrowArgumentExceptionWhenParsingOrderBy("col1,")
✅ ShouldThrowArgumentExceptionWhenParsingOrderBy("col1,")

✅ Origam.DA.Service_net2Tests.OrigamDocumentSorterTests

✅ ShouldSortAttributes
✅ ShouldSortAttributes

✅ Origam.DA.Service_net2Tests.XmlLoaderTest

✅ ReadGroupFile
✅ ReadGroupFile
✅ ReadPackageFile
✅ ReadPackageFile
✅ ReadReferenceFile
✅ ReadReferenceFile
✅ ReadXlms
✅ ReadXlms

✅ Origam.DA.ServiceTests.FilePersistenceProviderTests

✅ ShouldMoveItemInFileWhenParentChangedToAnItemTheFile
✅ ShouldMoveItemInFileWhenParentChangedToAnItemTheFile

✅ Origam.DA.ServiceTests.FilterCommandParserTests

✅ ShouldParseColumnNames("[\"$AND\", [\"$OR\",[\"city_name\",\"like\",\"Wash\"],[\"name\",\"like\",\"Smith\"]], [\"age\",\"gte\",18],[\"id\",\"in\",[\"f2\",\"f3\",\"f4\"]]",["city_name", "name", "age", "id"])
✅ ShouldParseColumnNames("[\"$AND\", [\"$OR\",[\"city_name\",\"like\",\"Wash\"],[\"name\",\"like\",\"Smith\"]], [\"age\",\"gte\",18],[\"id\",\"in\",[\"f2\",\"f3\",\"f4\"]]",["city_name", "name", "age", "id"])
✅ ShouldParseFilter("",null,System.Collections.Generic.List`1[Origam.DA.Service.CustomCommandParser.ParameterData])
✅ ShouldParseFilter("",null,System.Collections.Generic.List`1[Origam.DA.Service.CustomCommandParser.ParameterData])
✅ ShouldParseFilter("[\"$AND\", [\"$OR\",[\"city_name\",\"like\",\"Wash\"],[\"name\",\"like\",\"Smith\"]], [\"age\",\"gte\",18],[\"id\",\"in\",[\"f2\",\"f3\",\"f4\"]]","((([city_name] LIKE '%'+@city_name_like+'%') OR ([name] LIKE '%'+@name_like+'%')) AND ([age] >= @age_gte) AND [id] IN (@id_in_0, @id_in_1, @id_in_2))",System.Collections.Generic.List`1[Origam.DA.Service.CustomCommandParser.ParameterData])
✅ ShouldParseFilter("[\"$AND\", [\"$OR\",[\"city_name\",\"like\",\"Wash\"],[\"name\",\"like\",\"Smith\"]], [\"age\",\"gte\",18],[\"id\",\"in\",[\"f2\",\"f3\",\"f4\"]]","((([city_name] LIKE '%'+@city_name_like+'%') OR ([name] LIKE '%'+@name_like+'%')) AND ([age] >= @age_gte) AND [id] IN (@id_in_0, @id_in_1, @id_in_2))",System.Collections.Generic.List`1[Origam.DA.Service.CustomCommandParser.ParameterData])
✅ ShouldParseFilter("[\"age\",\"between\",[18, 80]]","[age] BETWEEN @age_between_0 AND @age_between_1",System.Collections.Generic.List`1[Origam.DA.Service.CustomCommandParser.ParameterData])
✅ ShouldParseFilter("[\"age\",\"between\",[18, 80]]","[age] BETWEEN @age_between_0 AND @age_between_1",System.Collections.Generic.List`1[Origam.DA.Service.CustomCommandParser.ParameterData])
✅ ShouldParseFilter("[\"age\",\"nbetween\",[18, 80]]","[age] NOT BETWEEN @age_nbetween_0 AND @age_nbetween_1",System.Collections.Generic.List`1[Origam.DA.Service.CustomCommandParser.ParameterData])
✅ ShouldParseFilter("[\"age\",\"nbetween\",[18, 80]]","[age] NOT BETWEEN @age_nbetween_0 AND @age_nbetween_1",System.Collections.Generic.List`1[Origam.DA.Service.CustomCommandParser.ParameterData])
✅ ShouldParseFilter("[\"cash\",\"between\",[18.4, 80]]","[cash] BETWEEN @cash_between_0 AND @cash_between_1",System.Collections.Generic.List`1[Origam.DA.Service.CustomCommandParser.ParameterData])
✅ ShouldParseFilter("[\"cash\",\"between\",[18.4, 80]]","[cash] BETWEEN @cash_between_0 AND @cash_between_1",System.Collections.Generic.List`1[Origam.DA.Service.CustomCommandParser.ParameterData])
✅ ShouldParseFilter("[\"name\",\"contains\",\"John Doe\"]","([name] LIKE '%'+@name_contains+'%')",System.Collections.Generic.List`1[Origam.DA.Service.CustomCommandParser.ParameterData])
✅ ShouldParseFilter("[\"name\",\"contains\",\"John Doe\"]","([name] LIKE '%'+@name_contains+'%')",System.Collections.Generic.List`1[Origam.DA.Service.CustomCommandParser.ParameterData])
✅ ShouldParseFilter("[\"name\",\"ends\",\"John Doe\"]","([name] LIKE '%'+@name_ends)",System.Collections.Generic.List`1[Origam.DA.Service.CustomCommandParser.ParameterData])
✅ ShouldParseFilter("[\"name\",\"ends\",\"John Doe\"]","([name] LIKE '%'+@name_ends)",System.Collections.Generic.List`1[Origam.DA.Service.CustomCommandParser.ParameterData])
✅ ShouldParseFilter("[\"name\",\"eq\",null]","[name] IS NULL",System.Collections.Generic.List`1[Origam.DA.Service.CustomCommandParser.ParameterData])
✅ ShouldParseFilter("[\"name\",\"eq\",null]","[name] IS NULL",System.Collections.Generic.List`1[Origam.DA.Service.CustomCommandParser.ParameterData])
✅ ShouldParseFilter("[\"name\",\"gt\",\"John Doe\"]","([name] > @name_gt)",System.Collections.Generic.List`1[Origam.DA.Service.CustomCommandParser.ParameterData])
✅ ShouldParseFilter("[\"name\",\"gt\",\"John Doe\"]","([name] > @name_gt)",System.Collections.Generic.List`1[Origam.DA.Service.CustomCommandParser.ParameterData])
✅ ShouldParseFilter("[\"name\",\"gt\",\"John, Doe\"]","([name] > @name_gt)",System.Collections.Generic.List`1[Origam.DA.Service.CustomCommandParser.ParameterData])
✅ ShouldParseFilter("[\"name\",\"gt\",\"John, Doe\"]","([name] > @name_gt)",System.Collections.Generic.List`1[Origam.DA.Service.CustomCommandParser.ParameterData])
✅ ShouldParseFilter("[\"name\",\"gt\",\"John' Doe\"]","([name] > @name_gt)",System.Collections.Generic.List`1[Origam.DA.Service.CustomCommandParser.ParameterData])
✅ ShouldParseFilter("[\"name\",\"gt\",\"John' Doe\"]","([name] > @name_gt)",System.Collections.Generic.List`1[Origam.DA.Service.CustomCommandParser.ParameterData])
✅ ShouldParseFilter("[\"Name\",\"in\",[\"Tom\", \"Jane\", \"David\", \"Ben\"]]","[Name] IN (@Name_in_0, @Name_in_1, @Name_in_2, @Name_in_3)",System.Collections.Generic.List`1[Origam.DA.Service.CustomCommandParser.ParameterData])
✅ ShouldParseFilter("[\"Name\",\"in\",[\"Tom\", \"Jane\", \"David\", \"Ben\"]]","[Name] IN (@Name_in_0, @Name_in_1, @Name_in_2, @Name_in_3)",System.Collections.Generic.List`1[Origam.DA.Service.CustomCommandParser.ParameterData])
✅ ShouldParseFilter("[\"Name\",\"in\",[\"Tom\", \"Jane\", \"David\"]]","[Name] IN (@Name_in_0, @Name_in_1, @Name_in_2)",System.Collections.Generic.List`1[Origam.DA.Service.CustomCommandParser.ParameterData])
✅ ShouldParseFilter("[\"Name\",\"in\",[\"Tom\", \"Jane\", \"David\"]]","[Name] IN (@Name_in_0, @Name_in_1, @Name_in_2)",System.Collections.Generic.List`1[Origam.DA.Service.CustomCommandParser.ParameterData])
✅ ShouldParseFilter("[\"name\",\"ncontains\",\"John Doe\"]","([name] NOT LIKE '%'+@name_ncontains+'%')",System.Collections.Generic.List`1[Origam.DA.Service.CustomCommandParser.ParameterData])
✅ ShouldParseFilter("[\"name\",\"ncontains\",\"John Doe\"]","([name] NOT LIKE '%'+@name_ncontains+'%')",System.Collections.Generic.List`1[Origam.DA.Service.CustomCommandParser.ParameterData])
✅ ShouldParseFilter("[\"name\",\"nends\",\"John Doe\"]","([name] NOT LIKE '%'+@name_nends)",System.Collections.Generic.List`1[Origam.DA.Service.CustomCommandParser.ParameterData])
✅ ShouldParseFilter("[\"name\",\"nends\",\"John Doe\"]","([name] NOT LIKE '%'+@name_nends)",System.Collections.Generic.List`1[Origam.DA.Service.CustomCommandParser.ParameterData])
✅ ShouldParseFilter("[\"Name\",\"nin\",[\"Tom\", \"Jane\", \"David\"]]","[Name] NOT IN (@Name_nin_0, @Name_nin_1, @Name_nin_2)",System.Collections.Generic.List`1[Origam.DA.Service.CustomCommandParser.ParameterData])
✅ ShouldParseFilter("[\"Name\",\"nin\",[\"Tom\", \"Jane\", \"David\"]]","[Name] NOT IN (@Name_nin_0, @Name_nin_1, @Name_nin_2)",System.Collections.Generic.List`1[Origam.DA.Service.CustomCommandParser.ParameterData])
✅ ShouldParseFilter("[\"name\",\"nstarts\",\"John Doe\"]","([name] NOT LIKE @name_nstarts+'%')",System.Collections.Generic.List`1[Origam.DA.Service.CustomCommandParser.ParameterData])
✅ ShouldParseFilter("[\"name\",\"nstarts\",\"John Doe\"]","([name] NOT LIKE @name_nstarts+'%')",System.Collections.Generic.List`1[Origam.DA.Service.CustomCommandParser.ParameterData])
✅ ShouldParseFilter("[\"name\",\"starts\",\"John Doe\"]","([name] LIKE @name_starts+'%')",System.Collections.Generic.List`1[Origam.DA.Service.CustomCommandParser.ParameterData])
✅ ShouldParseFilter("[\"name\",\"starts\",\"John Doe\"]","([name] LIKE @name_starts+'%')",System.Collections.Generic.List`1[Origam.DA.Service.CustomCommandParser.ParameterData])
✅ ShouldParseFilter("[\"Timestamp\", \"between\", [\"2020-04-04T00:00:00.000\", \"2020-05-01T00:00:00.000\"]]","[Timestamp] BETWEEN @Timestamp_between_0 AND @Timestamp_between_1",System.Collections.Generic.List`1[Origam.DA.Service.CustomCommandParser.ParameterData])
✅ ShouldParseFilter("[\"Timestamp\", \"between\", [\"2020-04-04T00:00:00.000\", \"2020-05-01T00:00:00.000\"]]","[Timestamp] BETWEEN @Timestamp_between_0 AND @Timestamp_between_1",System.Collections.Generic.List`1[Origam.DA.Service.CustomCommandParser.ParameterData])
✅ ShouldParseFilter("[\"Timestamp\", \"between\", [\"2020-04-04T00:00:00.000\", \"2020-05-01T23:59:59.000\"]]","[Timestamp] BETWEEN @Timestamp_between_0 AND @Timestamp_between_1",System.Collections.Generic.List`1[Origam.DA.Service.CustomCommandParser.ParameterData])
✅ ShouldParseFilter("[\"Timestamp\", \"between\", [\"2020-04-04T00:00:00.000\", \"2020-05-01T23:59:59.000\"]]","[Timestamp] BETWEEN @Timestamp_between_0 AND @Timestamp_between_1",System.Collections.Generic.List`1[Origam.DA.Service.CustomCommandParser.ParameterData])
✅ ShouldParseFilter("[\"Timestamp\", \"nbetween\", [\"2020-08-04T00:00:00.000\", \"2020-05-01T00:00:00.000\"]]","[Timestamp] NOT BETWEEN @Timestamp_nbetween_0 AND @Timestamp_nbetween_1",System.Collections.Generic.List`1[Origam.DA.Service.CustomCommandParser.ParameterData])
✅ ShouldParseFilter("[\"Timestamp\", \"nbetween\", [\"2020-08-04T00:00:00.000\", \"2020-05-01T00:00:00.000\"]]","[Timestamp] NOT BETWEEN @Timestamp_nbetween_0 AND @Timestamp_nbetween_1",System.Collections.Generic.List`1[Origam.DA.Service.CustomCommandParser.ParameterData])
✅ ShouldParseFilter("[\"Timestamp\", \"nbetween\", [\"2020-08-04T00:00:00.000\", \"2020-05-01T23:59:59.000\"]]","[Timestamp] NOT BETWEEN @Timestamp_nbetween_0 AND @Timestamp_nbetween_1",System.Collections.Generic.List`1[Origam.DA.Service.CustomCommandParser.ParameterData])
✅ ShouldParseFilter("[\"Timestamp\", \"nbetween\", [\"2020-08-04T00:00:00.000\", \"2020-05-01T23:59:59.000\"]]","[Timestamp] NOT BETWEEN @Timestamp_nbetween_0 AND @Timestamp_nbetween_1",System.Collections.Generic.List`1[Origam.DA.Service.CustomCommandParser.ParameterData])
✅ ShouldParseFilterOnNullableColumn("[\"name\", \"neq\", \"Tom\"]","([name] <> @name_neq OR [name] IS NULL)",System.Collections.Generic.List`1[Origam.DA.Service.CustomCommandParser.ParameterData])
✅ ShouldParseFilterOnNullableColumn("[\"name\", \"neq\", \"Tom\"]","([name] <> @name_neq OR [name] IS NULL)",System.Collections.Generic.List`1[Origam.DA.Service.CustomCommandParser.ParameterData])
✅ ShouldParseFilterOnNullableColumn("[\"name\", \"nnull\", null]","[name] IS NOT NULL",System.Collections.Generic.List`1[Origam.DA.Service.CustomCommandParser.ParameterData])
✅ ShouldParseFilterOnNullableColumn("[\"name\", \"nnull\", null]","[name] IS NOT NULL",System.Collections.Generic.List`1[Origam.DA.Service.CustomCommandParser.ParameterData])
✅ ShouldParseFilterOnNullableColumn("[\"name\", \"null\", null]","[name] IS NULL",System.Collections.Generic.List`1[Origam.DA.Service.CustomCommandParser.ParameterData])
✅ ShouldParseFilterOnNullableColumn("[\"name\", \"null\", null]","[name] IS NULL",System.Collections.Generic.List`1[Origam.DA.Service.CustomCommandParser.ParameterData])
✅ ShouldThrowArgumentExceptionWhenParsingFilter("[\"name\",\"gt\",\"John Doe\"")
✅ ShouldThrowArgumentExceptionWhenParsingFilter("[\"name\",\"gt\",\"John Doe\"")
✅ ShouldThrowArgumentExceptionWhenParsingFilter("[\"name\"\"gt\",\"John Doe\"")
✅ ShouldThrowArgumentExceptionWhenParsingFilter("[\"name\"\"gt\",\"John Doe\"")
✅ ShouldThrowArgumentExceptionWhenParsingFilter("\"name\",\"gt\",\"John Doe\"]")
✅ ShouldThrowArgumentExceptionWhenParsingFilter("\"name\",\"gt\",\"John Doe\"]")
✅ ShouldThrowArgumentExceptionWhenParsingFilter("bla")
✅ ShouldThrowArgumentExceptionWhenParsingFilter("bla")

✅ Origam.DA.ServiceTests.InstanceWriterTests

✅ ShouldWriteFile
✅ ShouldWriteFile

✅ Origam.DA.ServiceTests.MetaModelUpgraderTests.MetaModelUpgraderTests

✅ ShouldRemoveDeadBaseClass
✅ ShouldRemoveDeadBaseClass
✅ ShouldRemoveDeadBaseClassAndDeleteEmptyFile
✅ ShouldRemoveDeadBaseClassAndDeleteEmptyFile
✅ ShouldReplaceClass
✅ ShouldReplaceClass
✅ ShouldReplaceClassOfVersion5
✅ ShouldReplaceClassOfVersion5
✅ ShouldThrowIfAttributeIsAlreadyPresent
✅ ShouldThrowIfAttributeIsAlreadyPresent
✅ ShouldThrowIfNoUpgradeScriptExists
✅ ShouldThrowIfNoUpgradeScriptExists
✅ ShouldThrowIfOneOfUpgradeScriptsIsMissing
✅ ShouldThrowIfOneOfUpgradeScriptsIsMissing
✅ ShouldThrowIfUpgradeScriptToLastVersionIsNotFound
✅ ShouldThrowIfUpgradeScriptToLastVersionIsNotFound
✅ ShouldUpgradeByOneVersion
✅ ShouldUpgradeByOneVersion
✅ ShouldUpgradeRenamedClass
✅ ShouldUpgradeRenamedClass
✅ ShouldUpgradeRenamedClassWithChild
✅ ShouldUpgradeRenamedClassWithChild
✅ ShouldUpgradeTwoVersions
✅ ShouldUpgradeTwoVersions

✅ Origam.DA.ServiceTests.MetaModelUpgraderTests.Version6UpgraderTests

✅ ShouldUpgradeGroupReferenceFileToVersion6
✅ ShouldUpgradeGroupReferenceFileToVersion6
✅ ShouldUpgradeToVersion6
✅ ShouldUpgradeToVersion6

✅ Origam.DA.ServiceTests.ScriptContainersTests.EntityUIActionScriptContainerTests

✅ ShouldCreteChildren
✅ ShouldCreteChildren

✅ Origam.DA.ServiceTests.ScriptContainersTests.PackageScriptContainerTests

✅ ShouldRenameSchemaExtensionToPackage
✅ ShouldRenameSchemaExtensionToPackage

✅ Origam.DA.ServiceTests.ScriptContainersTests.StateMachineEventParameterMappingTests

✅ ShouldRenameTypeProperty
✅ ShouldRenameTypeProperty

✅ Origam.GitTests.GitFileComparerTests

✅ ShouldFindDiferences
✅ ShouldReturnEmptyDiffIfNoDifferenecesExist

✅ Origam.RuleTests.LegacyXsltFunctionContainerTests

✅ ShouldDecodeSignedOverpunch("0000000000{",2,0.0d)
✅ ShouldDecodeSignedOverpunch("10}",2,-1.0d)
✅ ShouldDecodeSignedOverpunch("21{",0,210.0d)
✅ ShouldDecodeSignedOverpunch("21}",0,-210.0d)
✅ ShouldDecodeSignedOverpunch("21M",1,-21.4d)
✅ ShouldDecodeSignedOverpunch("45a",0,451)
✅ ShouldDecodeSignedOverpunch("45d",0,454.0d)
✅ ShouldDecodeSignedOverpunch("45D",3,0.454d)
✅ ShouldDecodeSignedOverpunch("5545A",2,554.51d)
✅ ShouldFailToDecodeSignedOverpunch("",0)
✅ ShouldFailToDecodeSignedOverpunch("1",0)
✅ ShouldFailToDecodeSignedOverpunch("21+",1)
✅ ShouldFailToDecodeSignedOverpunch("21535",2)
✅ ShouldFailToDecodeSignedOverpunch("45D",5)
✅ ShouldFailToDecodeSignedOverpunch("dvdb",1)
✅ ShouldFailToDecodeSignedOverpunch("dvdbA",1)
✅ ShouldFailToDecodeSignedOverpunch(null,1)

✅ Origam.RuleTests.XsltTests

✅ ShouldAddTime("AS:AddDays('2022-07-13', 1)","2022-07-14T00:00:00.0000000")
✅ ShouldAddTime("AS:AddHours('2022-07-13', 1)","2022-07-13T01:00:00.0000000")
✅ ShouldAddTime("AS:AddMinutes('2022-07-13', 10)","2022-07-13T00:10:00.0000000")
✅ ShouldAddTime("AS:AddMonths('2022-07-13', 1)","2022-08-13T00:00:00.0000000")
✅ ShouldAddTime("AS:AddYears('2022-07-13', 1)","2023-07-13T00:00:00.0000000")
✅ ShouldConvertImage("AS:ResizeImage('{0}', '4', '4', 'true', 'png')","iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAIAAAAmkwkpAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAFiUAABYlAUlSJPAAAAAlSURBVBhXY1ixYsV5GGC4efPmfxhguHjxIpQJ5Fy+fBnK/P8fADtAK5y4oNB3AAAAAElFTkSuQmCCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==")
✅ ShouldConvertImage("AS:ResizeImage('{0}', '4', '4')","iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAmSURBVBhXY/j3798KID4PwyCBm/+RAEjgIpQNBiCBy1A2EPz/DwAwcj5F+ErgqwAAAABJRU5ErkJgggAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==")
✅ ShouldDecodeDataFromUri
✅ ShouldDecodeSignedOverpunch
✅ ShouldDoOrigamRound
✅ ShouldEncodeDataForUri
✅ ShouldExecureiif
✅ ShouldExecureisnull(null,"1")
✅ ShouldExecureisnull(null,null,"1")
✅ ShouldExecureisnull(null,null,null,"1")
✅ ShouldFormatNumber
✅ ShouldGenerateSerial("AS:GenerateSerial('counter1', '0001-01-01')")
✅ ShouldGenerateSerial("AS:GenerateSerial('counter1')")
✅ ShouldGetActiveProfileBusinessUnitId("AS:ActiveProfileBusinessUnitId()","3eed4998-4ca1-445f-a02d-d9851ea978a4")
✅ ShouldGetActiveProfileBusinessUnitId("AS:ActiveProfileId()","e93a81d4-2520-4f14-9af9-574a61c609b0")
✅ ShouldGetActiveProfileBusinessUnitId("AS:ActiveProfileOrganizationId()","4f68699e-6755-4b7d-be93-257ae28f32f5")
✅ ShouldGetConstant
✅ ShouldGetDateTimeNow("AS:LocalDateTime()")
✅ ShouldGetDateTimeNow("AS:UTCDateTime()")
✅ ShouldGetImageDimensions
✅ ShouldGetString("string1 {0} {1} {2} {3} {4} {5} {6} {7} {8} {9}",["1", "2", "3", "4", "5", ...],"string1_value 1 2 3 4 5 6 7 8 9 10")
✅ ShouldGetString("string1 {0} {1} {2} {3} {4} {5} {6} {7} {8}",["1", "2", "3", "4", "5", ...],"string1_value 1 2 3 4 5 6 7 8 9")
✅ ShouldGetString("string1 {0} {1} {2} {3} {4} {5} {6} {7}",["1", "2", "3", "4", "5", ...],"string1_value 1 2 3 4 5 6 7 8")
✅ ShouldGetString("string1 {0} {1} {2} {3} {4} {5} {6}",["1", "2", "3", "4", "5", ...],"string1_value 1 2 3 4 5 6 7")
✅ ShouldGetString("string1 {0} {1} {2} {3} {4} {5}",["1", "2", "3", "4", "5", ...],"string1_value 1 2 3 4 5 6")
✅ ShouldGetString("string1 {0} {1} {2} {3} {4}",["1", "2", "3", "4", "5"],"string1_value 1 2 3 4 5")
✅ ShouldGetString("string1 {0} {1} {2} {3}",["1", "2", "3", "4"],"string1_value 1 2 3 4")
✅ ShouldGetString("string1 {0} {1} {2}",["1", "2", "3"],"string1_value 1 2 3")
✅ ShouldGetString("string1 {0} {1}",["1", "2"],"string1_value 1 2")
✅ ShouldGetString("string1",[],"string1_value")
✅ ShouldGetTimeDifference("AS:DifferenceInDays('2022-07-13', '2022-07-14')",1.0d)
✅ ShouldGetTimeDifference("AS:DifferenceInMinutes('2022-07-13', '2022-07-14')",1440.0d)
✅ ShouldGetTimeDifference("AS:DifferenceInSeconds('2022-07-13', '2022-07-14')",86400.0d)
✅ ShouldListDays
✅ ShouldListFunctions("AS:avg(/ROOT/N1/@count)","2")
✅ ShouldListFunctions("AS:max(/ROOT/N1/@count)","3")
✅ ShouldListFunctions("AS:Max(/ROOT/N1/@count)","3")
✅ ShouldListFunctions("AS:min(/ROOT/N1/@count)","1")
✅ ShouldListFunctions("AS:Min(/ROOT/N1/@count)","1")
✅ ShouldListFunctions("AS:sum(/ROOT/N1/@count)","6")
✅ ShouldListFunctions("AS:Sum(/ROOT/N1/@count)","6")
✅ ShouldLookupValue("AS:LookupValue('{0}', '{1}', '{2}', '{3}', '{4}', '{5}', '{6}')",["par1", "val1", "par2", "val2", "par3", ...])
✅ ShouldLookupValue("AS:LookupValue('{0}', '{1}', '{2}', '{3}', '{4}')",["par1", "val1", "par2", "val2"])
✅ ShouldLookupValue("AS:LookupValue('{0}', '{1}')",["lookupValue"])
✅ ShouldRandomlyDistributeValues
✅ ShouldReturnNull
✅ ShouldRoundNumber("AS:Ceiling(1.54876)","2")
✅ ShouldRoundNumber("AS:NormalRound(1.54876, 2)","1.55")
✅ ShouldRoundNumber("AS:Round(1.54876)","2")
✅ ShouldRunMathFunctions("Div","4","2","2")
✅ ShouldRunMathFunctions("Minus","1","1","0")
✅ ShouldRunMathFunctions("Mod","5","2","1")
✅ ShouldRunMathFunctions("Mul","2","2","4")
✅ ShouldRunMathFunctions("Plus","1","1","2")
✅ ShouldRunNumberOperand
✅ ShouldRunToXml
✅ ShouldTestAbs
✅ ShouldTestAddWorkingDays
✅ ShouldTestDateFunctions("AS:FirstDayNextMonthDate('2022-01-02')","2022-02-01")
✅ ShouldTestDateFunctions("AS:LastDayOfMonth('2022-01-02')","2022-01-31")
✅ ShouldTestDateFunctions("AS:Month('2022-01-02')","01")
✅ ShouldTestDateFunctions("AS:Year('2022-01-02')","2022")
✅ ShouldTestDecimalNumber
✅ ShouldTestDecodeTextFromBase64
✅ ShouldTestDiff
✅ ShouldTestEvaluateXPath
✅ ShouldTestFormatLink
✅ ShouldTestGenerateId
✅ ShouldTestGetMenuId
✅ ShouldTestHttpRequest
✅ ShouldTestIfFeatureOn
✅ ShouldTestInitPosition
✅ ShouldTestIsDateBetween
✅ ShouldTestIsInRole
✅ ShouldTestIsInState
✅ ShouldTestIsUriValid
✅ ShouldTestIsUserAuthenticated
✅ ShouldTestIsUserLockedOut
✅ ShouldTestLookupList("AS:LookupList('{0}', '{1}', '{2}', '{3}', '{4}', '{5}', '{6}')",["par1", "val1", "par2", "val2", "par3", ...])
✅ ShouldTestLookupList("AS:LookupList('{0}', '{1}', '{2}', '{3}', '{4}')",["par1", "val1", "par2", "val2"])
✅ ShouldTestLookupList("AS:LookupList('{0}', '{1}', '{2}')",["par1", "val1"])
✅ ShouldTestLookupList("AS:LookupList('{0}')",[])
✅ ShouldTestLookupOrCreate
✅ ShouldTestLookupValueEx("AS:LookupOrCreateEx('{0}', $parameters1, $parameters1)")
✅ ShouldTestLookupValueEx("AS:LookupValueEx('{0}', $parameters1)")
✅ ShouldTestNextStates
✅ ShouldTestNodeSet
✅ ShouldTestNodeToString
✅ ShouldTestPointFromJtsk
✅ ShouldTestProcessMarkdown
✅ ShouldTestRandom
✅ ShouldTestReferenceCount
✅ ShouldTestResourceIdByActiveProfile
✅ ShouldTestStringManipulationFunctions("AS:Lowercase('TEST')","test")
✅ ShouldTestStringManipulationFunctions("AS:Uppercase('test')","TEST")
✅ ShouldTestStringOperationFunctions("MaxString","w")
✅ ShouldTestStringOperationFunctions("MinString","a")
✅ ShouldTestTranslate
✅ ShouldTestUserInfoMethods("Is2FAEnforced","Is2FAEnforced")
✅ ShouldTestUserInfoMethods("IsUserEmailConfirmed","IsEmailConfirmed")
✅ ShouldTestUserInfoMethods("IsUserLockedOut","IsLockedOut")

✅ Origam.SchemaTests.PackageVersionTests

✅ ShouldBerecognizedAsEqual("5.0.11","5.0.011")
✅ ShouldBerecognizedAsEqual("5.0","5.0")
✅ ShouldBerecognizedAsEqual("5.0","5")
✅ ShouldFailToParse("1.111A")
✅ ShouldFailToParse("1.cdf.11")
✅ ShouldFailToParse("5.")
✅ ShouldFailToParse("dcsd")
✅ ShouldParse("")
✅ ShouldParse("1.011.11")
✅ ShouldParse("1.011")
✅ ShouldParse("1.111")
✅ ShouldParse("5.0")
✅ ShouldParse(null)
✅ ShouldRecognizeFirstIsNewer("5.0.1","5.0")
✅ ShouldRecognizeFirstIsNewer("5.0","4.0")
✅ ShouldRecognizeFirstIsNewer("5.1","5.0")
✅ ShouldRecognizeFirstIsNewer("5.2","5.0.11")

✅ Origam.Workbench.ServicesTests.FilePersistenceServiceTests

✅ ShouldReadNewValueAfterRuntimeConfigChanged
✅ ShouldReloadModelWhenChangesDetected

✅ Origam.Workbench.ServicesTests.FileStorageDocumentationServiceTests

✅ ShouldAddTwoDocumentationItems
✅ ShouldLoadDocumentationOfSpecifiedType
✅ ShouldReadDatSet
✅ ShouldThrowBecauseANodeNameIsWrong
✅ ShouldThrowBecauseAStringCannotBeParsedToGuid
✅ ShouldThrowBecauseCategoryNameIsWrong
✅ ShouldUpdateOneDocumentationItem

✅ Origam.WorkbenchTests.DeploymentSorterTests

✅ ShouldOrderThreeRelatedPackagesByDependencies
✅ ShouldOrderThreeUnrelatedPackagesByDependencies
✅ ShouldOrderTwoRelatedAndOneUnrelatedPackageByDependencies
✅ ShouldOrderTwoRelatedPackagesByDependencies
✅ ShouldOrderTwoUnrelatedPackagesByDependencies