From d5d90751dc9dd4e7103749c9a6b1e3a649a68e60 Mon Sep 17 00:00:00 2001 From: Brian Dukes Date: Tue, 15 Oct 2024 14:55:42 -0500 Subject: [PATCH 1/4] Bump NUnit NuGet packages - NUnit3TestAdapter from 4.5.0 to 4.6.0 - NUnit from 3.13.3 to 3.14.0 - NUnit.Analyzers from 4.2.0 to 4.3.0 - Also install NUnit.Analyzers in all projects where NUnit is installed --- DNN Platform/Tests/App.config | 2 +- .../DNN.Integration.Test.Framework.csproj | 13 +++++++------ .../DNN.Integration.Test.Framework/packages.config | 5 +++-- .../DotNetNuke.Tests.AspNetCCP.csproj | 13 +++++++------ .../DotNetNuke.Tests.AspNetCCP/packages.config | 5 +++-- .../DotNetNuke.Tests.Authentication.csproj | 13 +++++++------ .../DotNetNuke.Tests.Authentication/packages.config | 5 +++-- .../DotNetNuke.Tests.Content.csproj | 13 +++++++------ .../Tests/DotNetNuke.Tests.Content/packages.config | 5 +++-- .../DotNetNuke.Tests.Core.csproj | 13 +++++++------ .../Tests/DotNetNuke.Tests.Core/packages.config | 5 +++-- .../DotNetNuke.Tests.Data.csproj | 13 +++++++------ .../Tests/DotNetNuke.Tests.Data/packages.config | 5 +++-- .../DotNetNuke.Tests.Integration.csproj | 13 +++++++------ .../DotNetNuke.Tests.Integration/packages.config | 5 +++-- .../DotNetNuke.Tests.Mail.csproj | 13 +++++++------ .../Tests/DotNetNuke.Tests.Mail/packages.config | 5 +++-- .../DotNetNuke.Tests.Modules.csproj | 13 +++++++------ .../Tests/DotNetNuke.Tests.Modules/packages.config | 5 +++-- .../DotNetNuke.Tests.SourceGenerators.csproj | 6 +++--- .../DotNetNuke.Tests.UI/DotNetNuke.Tests.UI.csproj | 13 +++++++------ .../Tests/DotNetNuke.Tests.UI/packages.config | 5 +++-- .../DotNetNuke.Tests.Urls.csproj | 13 +++++++------ .../Tests/DotNetNuke.Tests.Urls/packages.config | 5 +++-- .../DotNetNuke.Tests.Utilities.csproj | 13 +++++++------ .../DotNetNuke.Tests.Utilities/packages.config | 5 +++-- .../DotNetNuke.Tests.Web.Mvc.csproj | 13 +++++++------ .../Tests/DotNetNuke.Tests.Web.Mvc/packages.config | 5 +++-- .../DotNetNuke.Tests.Web.csproj | 13 +++++++------ .../Tests/DotNetNuke.Tests.Web/packages.config | 5 +++-- DNN_Platform.sln.DotSettings | 1 + .../Dnn.PersonaBar.ConfigConsole.Tests.csproj | 13 +++++++------ .../packages.config | 5 +++-- .../Dnn.PersonaBar.Pages.Tests.csproj | 13 +++++++------ .../Dnn.PersonaBar.Pages.Tests/packages.config | 5 +++-- .../Dnn.PersonaBar.Security.Tests.csproj | 13 +++++++------ .../Dnn.PersonaBar.Security.Tests/packages.config | 5 +++-- .../Dnn.PersonaBar.Users.Tests.csproj | 13 +++++++------ .../Dnn.PersonaBar.Users.Tests/packages.config | 5 +++-- 39 files changed, 185 insertions(+), 148 deletions(-) diff --git a/DNN Platform/Tests/App.config b/DNN Platform/Tests/App.config index 3757a08e605..41703b7ec6b 100644 --- a/DNN Platform/Tests/App.config +++ b/DNN Platform/Tests/App.config @@ -221,7 +221,7 @@ - + diff --git a/DNN Platform/Tests/DNN.Integration.Test.Framework/DNN.Integration.Test.Framework.csproj b/DNN Platform/Tests/DNN.Integration.Test.Framework/DNN.Integration.Test.Framework.csproj index 7e531cacb6a..78ba88ecd29 100644 --- a/DNN Platform/Tests/DNN.Integration.Test.Framework/DNN.Integration.Test.Framework.csproj +++ b/DNN Platform/Tests/DNN.Integration.Test.Framework/DNN.Integration.Test.Framework.csproj @@ -1,10 +1,10 @@  + + - - Debug @@ -56,8 +56,8 @@ ..\..\..\packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll - - ..\..\..\packages\NUnit.3.13.3\lib\net45\nunit.framework.dll + + ..\..\..\packages\NUnit.3.14.0\lib\net45\nunit.framework.dll @@ -137,6 +137,7 @@ + @@ -145,14 +146,14 @@ This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - + + diff --git a/DNN Platform/Tests/DNN.Integration.Test.Framework/packages.config b/DNN Platform/Tests/DNN.Integration.Test.Framework/packages.config index cd0a5c42111..1ed7c27a9e1 100644 --- a/DNN Platform/Tests/DNN.Integration.Test.Framework/packages.config +++ b/DNN Platform/Tests/DNN.Integration.Test.Framework/packages.config @@ -8,8 +8,9 @@ - - + + + diff --git a/DNN Platform/Tests/DotNetNuke.Tests.AspNetCCP/DotNetNuke.Tests.AspNetCCP.csproj b/DNN Platform/Tests/DotNetNuke.Tests.AspNetCCP/DotNetNuke.Tests.AspNetCCP.csproj index 0e900b28927..e63d4c45361 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.AspNetCCP/DotNetNuke.Tests.AspNetCCP.csproj +++ b/DNN Platform/Tests/DotNetNuke.Tests.AspNetCCP/DotNetNuke.Tests.AspNetCCP.csproj @@ -1,7 +1,7 @@  - - + + Debug AnyCPU @@ -53,8 +53,8 @@ ..\..\..\packages\Moq.4.20.70\lib\net462\Moq.dll - - ..\..\..\packages\NUnit.3.13.3\lib\net45\nunit.framework.dll + + ..\..\..\packages\NUnit.3.14.0\lib\net45\nunit.framework.dll @@ -109,6 +109,7 @@ + @@ -119,8 +120,8 @@ This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - + + diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Web/packages.config b/DNN Platform/Tests/DotNetNuke.Tests.Web/packages.config index dcf14c2dd02..1aacbf96847 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Web/packages.config +++ b/DNN Platform/Tests/DotNetNuke.Tests.Web/packages.config @@ -9,8 +9,9 @@ - - + + + diff --git a/DNN_Platform.sln.DotSettings b/DNN_Platform.sln.DotSettings index 5bf3af7b796..99ebc02f3f1 100644 --- a/DNN_Platform.sln.DotSettings +++ b/DNN_Platform.sln.DotSettings @@ -157,6 +157,7 @@ See the LICENSE file in the project root for more information True True True + True True True True diff --git a/Dnn.AdminExperience/Tests/Dnn.PersonaBar.ConfigConsole.Tests/Dnn.PersonaBar.ConfigConsole.Tests.csproj b/Dnn.AdminExperience/Tests/Dnn.PersonaBar.ConfigConsole.Tests/Dnn.PersonaBar.ConfigConsole.Tests.csproj index bcd5cd41737..53af44db579 100644 --- a/Dnn.AdminExperience/Tests/Dnn.PersonaBar.ConfigConsole.Tests/Dnn.PersonaBar.ConfigConsole.Tests.csproj +++ b/Dnn.AdminExperience/Tests/Dnn.PersonaBar.ConfigConsole.Tests/Dnn.PersonaBar.ConfigConsole.Tests.csproj @@ -1,7 +1,7 @@  - - + + Debug @@ -57,8 +57,8 @@ ..\..\..\packages\Moq.4.20.70\lib\net462\Moq.dll True - - ..\..\..\packages\NUnit.3.13.3\lib\net45\nunit.framework.dll + + ..\..\..\packages\NUnit.3.14.0\lib\net45\nunit.framework.dll @@ -107,6 +107,7 @@ + @@ -114,8 +115,8 @@ This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - + + \ No newline at end of file diff --git a/Dnn.AdminExperience/Tests/Dnn.PersonaBar.ConfigConsole.Tests/packages.config b/Dnn.AdminExperience/Tests/Dnn.PersonaBar.ConfigConsole.Tests/packages.config index 64025b29336..4053a7c2589 100644 --- a/Dnn.AdminExperience/Tests/Dnn.PersonaBar.ConfigConsole.Tests/packages.config +++ b/Dnn.AdminExperience/Tests/Dnn.PersonaBar.ConfigConsole.Tests/packages.config @@ -5,8 +5,9 @@ - - + + + diff --git a/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Pages.Tests/Dnn.PersonaBar.Pages.Tests.csproj b/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Pages.Tests/Dnn.PersonaBar.Pages.Tests.csproj index a88596359e8..154099f785f 100644 --- a/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Pages.Tests/Dnn.PersonaBar.Pages.Tests.csproj +++ b/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Pages.Tests/Dnn.PersonaBar.Pages.Tests.csproj @@ -1,7 +1,7 @@  - - + + Debug @@ -48,8 +48,8 @@ ..\..\..\packages\Moq.4.20.70\lib\net462\Moq.dll True - - ..\..\..\packages\NUnit.3.13.3\lib\net45\nunit.framework.dll + + ..\..\..\packages\NUnit.3.14.0\lib\net45\nunit.framework.dll @@ -106,6 +106,7 @@ + @@ -114,7 +115,7 @@ This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - + + \ No newline at end of file diff --git a/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Pages.Tests/packages.config b/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Pages.Tests/packages.config index 097dba9884d..a9383e135f9 100644 --- a/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Pages.Tests/packages.config +++ b/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Pages.Tests/packages.config @@ -2,8 +2,9 @@ - - + + + diff --git a/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Security.Tests/Dnn.PersonaBar.Security.Tests.csproj b/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Security.Tests/Dnn.PersonaBar.Security.Tests.csproj index 4bafd482692..485441b43fb 100644 --- a/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Security.Tests/Dnn.PersonaBar.Security.Tests.csproj +++ b/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Security.Tests/Dnn.PersonaBar.Security.Tests.csproj @@ -1,7 +1,7 @@  - - + + Debug @@ -51,8 +51,8 @@ ..\..\..\packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll - - ..\..\..\packages\NUnit.3.13.3\lib\net45\nunit.framework.dll + + ..\..\..\packages\NUnit.3.14.0\lib\net45\nunit.framework.dll @@ -121,6 +121,7 @@ + @@ -129,7 +130,7 @@ This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - + + \ No newline at end of file diff --git a/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Security.Tests/packages.config b/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Security.Tests/packages.config index 06f4cb0160d..210338fb59f 100644 --- a/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Security.Tests/packages.config +++ b/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Security.Tests/packages.config @@ -5,8 +5,9 @@ - - + + + diff --git a/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Users.Tests/Dnn.PersonaBar.Users.Tests.csproj b/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Users.Tests/Dnn.PersonaBar.Users.Tests.csproj index 971353ec9d3..3f0affae4e5 100644 --- a/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Users.Tests/Dnn.PersonaBar.Users.Tests.csproj +++ b/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Users.Tests/Dnn.PersonaBar.Users.Tests.csproj @@ -1,7 +1,7 @@  - - + + Debug @@ -49,8 +49,8 @@ ..\..\..\packages\Moq.4.20.70\lib\net462\Moq.dll True - - ..\..\..\packages\NUnit.3.13.3\lib\net45\nunit.framework.dll + + ..\..\..\packages\NUnit.3.14.0\lib\net45\nunit.framework.dll @@ -115,6 +115,7 @@ + @@ -123,7 +124,7 @@ This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - + + \ No newline at end of file diff --git a/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Users.Tests/packages.config b/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Users.Tests/packages.config index 097dba9884d..a9383e135f9 100644 --- a/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Users.Tests/packages.config +++ b/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Users.Tests/packages.config @@ -2,8 +2,9 @@ - - + + + From 45deded9a8c0ef3276864469d7f0ed12533c7750 Mon Sep 17 00:00:00 2001 From: Brian Dukes Date: Tue, 15 Oct 2024 14:58:14 -0500 Subject: [PATCH 2/4] Convert NUnit assertions to new constraint model Classic model is deprecated and will be removed in NUnit 4 --- .../Helpers/WebApiTestHelper.cs | 6 +- .../AspNetClientCapabilityTest.cs | 32 +- .../FacebookUserDataTests.cs | 15 +- .../GoogleUserDataTests.cs | 15 +- .../LiveUserDataTests.cs | 13 +- .../TwitterUserDataTests.cs | 8 +- .../AttachmentControllerTests.cs | 69 +- .../ContentControllerTests.cs | 40 +- .../ContentTypeControllerTests.cs | 10 +- .../ScopeTypeControllerTests.cs | 10 +- .../TermControllerTests.cs | 37 +- .../VocabularyControllerTests.cs | 6 +- .../Tests/DotNetNuke.Tests.Core/CBOTest.cs | 54 +- .../Collections/CollectionExtensionTests.cs | 984 +++++++------- .../Collections/LockStrategyTests.cs | 546 ++++---- .../Collections/NaiveLockingListTests.cs | 29 +- .../Collections/PageSelectorTests.cs | 6 +- .../Collections/PagedListTests.cs | 18 +- .../Collections/PagingExtensionsTests.cs | 32 +- .../Collections/SharedDictionaryTests.cs | 6 +- .../Collections/SharedListTests.cs | 4 +- .../Common/NavigationManagerTests.cs | 60 +- .../Common/UrlUtilsTests.cs | 68 +- .../ComponentModel/ComponentFactoryTests.cs | 2 +- .../ComponentModel/SimpleContainerTests.cs | 4 +- .../Controllers/Host/HostControllerTest.cs | 50 +- .../Messaging/MessagingControllerTests.cs | 41 +- .../Messaging/NotificationsControllerTests.cs | 25 +- .../Messaging/SubscriptionControllerTests.cs | 8 +- .../SubscriptionTypeControllerTests.cs | 2 +- .../UserPreferencesControllerTests.cs | 15 +- .../Portal/PortalControllerTests.cs | 18 +- .../Portal/PortalGroupControllerTests.cs | 8 +- .../Search/InternalSearchControllerTests.cs | 89 +- .../Search/LuceneControllerTests.cs | 158 ++- .../Search/SearchControllerTests.cs | 763 +++++++---- .../Controllers/Search/SearchHelperTests.cs | 54 +- .../Search/SearchQueryStringParserTests.cs | 32 +- .../Social/RelationshipControllerTests.cs | 48 +- .../Modules/Settings/ModuleSettingsTests.cs | 21 +- .../Modules/Settings/NullableSettingsTests.cs | 13 +- .../Modules/Settings/PortalSettingsTests.cs | 21 +- .../Settings/TabModuleSettingsTests.cs | 21 +- .../Portals/PortalSettingsControllerTests.cs | 141 +- .../Entities/Portals/PortalSettingsTests.cs | 20 +- .../Entities/Tabs/TabChangeTrackerTests.cs | 2 +- .../Entities/Tabs/TabControllerTests.cs | 39 +- .../Entities/Urls/AdvancedUrlRewriterTests.cs | 2 +- .../Urls/FriendlyUrlControllerTests.cs | 133 +- .../EscapedStringTest.cs | 8 +- .../FileSystemUtilsTests.cs | 19 +- .../JavaScriptLibraries/JavaScriptTests.cs | 58 +- .../Framework/ReflectionTests.cs | 4 +- .../Framework/ServicesFrameworkTests.cs | 4 +- .../Providers/Caching/DataCacheTests.cs | 12 +- .../Folder/DatabaseFolderProviderTests.cs | 28 +- .../Folder/DefaultFolderProvidersTests.cs | 2 +- .../Folder/FileContentTypeManagerTests.cs | 4 +- .../Folder/FileLockingControllerTests.cs | 44 +- .../Providers/Folder/FileManagerTests.cs | 6 +- .../Providers/Folder/FolderManagerTests.cs | 64 +- .../Folder/SecureFolderProviderTests.cs | 34 +- .../Folder/StandardFolderProviderTests.cs | 36 +- .../Membership/MembershipProviderTests.cs | 4 +- .../Providers/Permissions/PermissionTests.cs | 24 +- .../RetryableActionTests.cs | 17 +- .../PortalSecurity/PortalSecurityTest.cs | 4 +- .../FacebookRequestControllerTests.cs | 47 +- .../CoreCryptographyProviderTests.cs | 4 +- ...FipsCompilanceCryptographyProviderTests.cs | 4 +- .../Services/HtmlUtilsTest.cs | 12 +- .../Installer/AssemblyInstallerTests.cs | 2 +- .../Installer/CleanupInstallerTests.cs | 6 +- .../Localization/LocalizationTests.cs | 14 +- .../Mobile/PreviewProfileControllerTests.cs | 6 +- .../Mobile/RedirectionControllerTests.cs | 108 +- .../Internals/LuceneControllerImplTests.cs | 2 +- .../Services/Tokens/PropertyAccessTests.cs | 12 +- .../Services/Tokens/TokenReplaceTests.cs | 4 +- .../UserRequestIPAddressControllerTest.cs | 8 +- .../Services/UtilTest.cs | 2 +- .../TabCollectionTest.cs | 8 +- .../Tests/DotNetNuke.Tests.Data/DataAssert.cs | 6 +- .../DotNetNuke.Tests.Data/DataContextTests.cs | 8 +- .../DataProviderTests.cs | 14 +- .../DatabaseConnectionProviderTests.cs | 87 +- .../DotNetNuke.Tests.Data/PetaPocoExtTests.cs | 2 +- .../RepositoryBaseTests.cs | 66 +- .../Data/FluentMapperTests.cs | 32 +- .../Data/PetaPocoDataContextTests.cs | 47 +- .../Data/PetaPocoIntegrationTests.cs | 67 +- .../Data/PetaPocoMapperTests.cs | 24 +- .../Data/PetaPocoRepositoryTests.cs | 146 +- .../Modules/DDRMenu/DDRMenuTests.cs | 196 +-- .../DigitalAssets/DigitalAssetsTests.cs | 2 +- .../Modules/Journal/PostJournalTests.cs | 59 +- .../PersonaBar/Content/Pages/AddPageTests.cs | 18 +- .../PersonaBar/Content/Pages/PageUrlsTests.cs | 4 +- .../Manage/Users/UsersFiltersTests.cs | 10 +- .../PersonaBar/Pages/PagesManagementTests.cs | 232 ++-- .../Services/Installer/XmlMergeTests.cs | 1192 +++++++++-------- .../Tests/DotNetNukeWeb/DotNetNukeWebTests.cs | 2 +- .../Tests/FriendsTests.cs | 2 +- .../Tests/Jwt/JwtAuthTest.cs | 947 ++++++------- .../Tests/Library/ImageHandlerTests.cs | 8 +- .../Tests/Portals/PortalInfoTests.cs | 83 +- .../Tests/Portals/PortalSettingsTests.cs | 13 +- .../Tests/Security/AuthCookieTests.cs | 22 +- .../SmtpOAuthControllerTest.cs | 6 +- .../Html/HtmlTextControllerTests.cs | 20 +- .../DataAnnotationsObjectValidatorTests.cs | 34 +- .../Validation/ValidatorTests.cs | 17 +- .../ExtensionUrlProviderControllerTests.cs | 10 +- .../DotNetNuke.Tests.Urls/FriendlyUrlTests.cs | 2 +- .../DotNetNuke.Tests.Urls/UrlRewriteTests.cs | 8 +- .../EnumerableAssert.cs | 9 +- .../DotNetNuke.Tests.Utilities/FileAssert.cs | 64 +- .../HttpSimulator/HttpSimulatorTests.cs | 708 +++++----- .../DotNetNuke.Tests.Utilities/MailAssert.cs | 22 +- .../DictionaryAssert.cs | 9 +- .../DnnHandleErrorAttributeTests.cs | 2 +- .../Controllers/DnnControllerTests.cs | 375 +++--- .../Framework/DnnWebViewPageTests.cs | 16 +- .../ModuleDelegatingViewEngineTests.cs | 40 +- .../Modules/ModuleApplicationTests.cs | 17 +- .../Modules/ModuleExecutionEngineTests.cs | 4 +- .../ResultCapturingActionInvokerTests.cs | 232 ++-- .../Helpers/DnnHelperTests.cs | 2 +- .../Helpers/DnnHtmlHelperTests.cs | 14 +- .../Helpers/DnnUrlHelperTests.cs | 643 ++++----- .../Helpers/ViewResultExtensionsTests.cs | 2 +- .../DotNetNuke.Tests.Web.Mvc/ResultAssert.cs | 10 +- .../Routing/HttpContextExtensionsTests.cs | 12 +- .../Api/BasicAuthMessageHandlerTests.cs | 41 +- .../Api/DigestAuthMessageHandlerTests.cs | 185 +-- .../Api/DnnActionFilterProviderTests.cs | 12 +- .../Api/DnnApiControllerTests.cs | 4 +- .../Api/DnnHttpControllerSelectorTests.cs | 2 +- .../Api/HttpConfigurationExtensionTests.cs | 6 +- .../Internals/DnnDependencyResolverTests.cs | 257 ++-- .../Api/Internals/ServiceContainerTests.cs | 13 +- .../Api/JwtAuthMessageHandlerTests.cs | 658 ++++----- .../Api/PortalAliasRouteManagerTests.cs | 18 +- .../Api/ServiceRoutingManagerTests.cs | 25 +- .../StandardTabAndModuleInfoProviderTests.cs | 852 ++++++------ .../Api/TypeLocatorTests.cs | 56 +- .../FileUploadControllerTests.cs | 2 +- .../SearchServiceControllerTests.cs | 52 +- .../TabVersionControllerTests.cs | 2 +- .../Mvp/ModuleSettingsPresenterTests.cs | 39 +- .../ConfigConsoleControllerTests.cs | 9 +- .../GetPageUnitTests.cs | 56 +- .../PagesControllerUnitTests.cs | 2 +- .../PurgePageUnitTests.cs | 6 +- .../RestorePageUnitTests.cs | 54 +- .../Checks/CheckTelerikPresenceTests.cs | 40 +- .../Checks/CheckUserProfilePageTests.cs | 25 +- .../Services/SecurityControllerTests.cs | 2 +- .../AddRolesUnitTests.cs | 4 +- .../DeleteUserUnitTests.cs | 8 +- .../GetUserUnitTests.cs | 8 +- .../RestoreUserUnitTests.cs | 8 +- .../SearchUsersBySearchTermTest.cs | 2 +- .../SetUserUnitTests.cs | 15 +- .../UserValidatorUnitTests.cs | 10 +- 165 files changed, 6615 insertions(+), 5834 deletions(-) diff --git a/DNN Platform/Tests/DNN.Integration.Test.Framework/Helpers/WebApiTestHelper.cs b/DNN Platform/Tests/DNN.Integration.Test.Framework/Helpers/WebApiTestHelper.cs index 1e967d021ee..03c4163a4b4 100644 --- a/DNN Platform/Tests/DNN.Integration.Test.Framework/Helpers/WebApiTestHelper.cs +++ b/DNN Platform/Tests/DNN.Integration.Test.Framework/Helpers/WebApiTestHelper.cs @@ -131,7 +131,7 @@ public static IWebApiConnector LoginRegisteredUser(string firstName = Integratio if (!connector.IsLoggedIn) { var loggedIn = connector.Login(AppConfigHelper.HostPassword); - Assert.IsTrue(loggedIn); + Assert.That(loggedIn, Is.True); } return connector; @@ -159,7 +159,7 @@ public static IWebApiConnector LoginAdministrator(string firstName = Integration if (!connector.IsLoggedIn) { var loggedIn = connector.Login(AppConfigHelper.HostPassword); - Assert.IsTrue(loggedIn); + Assert.That(loggedIn, Is.True); } return connector; @@ -188,7 +188,7 @@ public static IWebApiConnector LoginUser(string username, string url = null) if (!connector.IsLoggedIn) { var loggedIn = connector.Login(AppConfigHelper.HostPassword); - Assert.IsTrue(loggedIn); + Assert.That(loggedIn, Is.True); } return connector; diff --git a/DNN Platform/Tests/DotNetNuke.Tests.AspNetCCP/AspNetClientCapabilityTest.cs b/DNN Platform/Tests/DotNetNuke.Tests.AspNetCCP/AspNetClientCapabilityTest.cs index b4c57078e83..2576f4ec96f 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.AspNetCCP/AspNetClientCapabilityTest.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.AspNetCCP/AspNetClientCapabilityTest.cs @@ -63,7 +63,7 @@ public void AspNetClientCapability_IsMobile_Returns_True_For_BlackBerry9105V1() var bIsMobile = clientCapability.IsMobile; // Assert - Assert.IsTrue(bIsMobile); + Assert.That(bIsMobile, Is.True); } [Test] @@ -76,7 +76,7 @@ public void AspNetClientCapability_IsMobile_Returns_True_For_IPhone() var bIsMobile = clientCapability.IsMobile; // Assert - Assert.IsTrue(bIsMobile); + Assert.That(bIsMobile, Is.True); } [Test] @@ -89,7 +89,7 @@ public void AspNetClientCapability_IsMobile_Returns_True_For_WP7() var bIsMobile = clientCapability.IsMobile; // Assert - Assert.IsTrue(bIsMobile); + Assert.That(bIsMobile, Is.True); } [Test] @@ -102,7 +102,7 @@ public void AspNetClientCapability_IsMobile_Returns_True_For_IPad() var bIsMobile = clientCapability.IsMobile; // Assert - Assert.IsTrue(bIsMobile); + Assert.That(bIsMobile, Is.True); } [Test] @@ -120,7 +120,7 @@ public void AspNetClientCapability_IsMobile_Returns_True_For_SamsungGalaxyGTP100 var isMobile = clientCapability.IsMobile; // Assert - Assert.IsTrue(isMobile); + Assert.That(isMobile, Is.True); } [Test] @@ -133,7 +133,7 @@ public void AspNetClientCapability_IsMobile_Returns_False_For_EmptyUserAgent() var bIsMmobile = clientCapability.IsMobile; // Assert - Assert.IsFalse(bIsMmobile); + Assert.That(bIsMmobile, Is.False); } [Test] @@ -147,7 +147,7 @@ public void AspNetClientCapability_IsMobile_Returns_False_For_NullUserAgent() var bIsMobile = AspNetClientCapability.IsMobile; // Assert - Assert.IsFalse(bIsMobile); + Assert.That(bIsMobile, Is.False); } [Test] @@ -160,7 +160,7 @@ public void AspNetClientCapability_IsMobile_Returns_True_For_HTCDesireVer1Sub22( var bIsMobile = AspNetClientCapability.IsMobile; // Assert - Assert.IsTrue(bIsMobile); + Assert.That(bIsMobile, Is.True); } [Test] @@ -173,7 +173,7 @@ public void AspNetClientCapability_IsMobile_Returns_False_For_InternetExplorer8( var bIsMobile = AspNetClientCapability.IsMobile; // Assert - Assert.IsFalse(bIsMobile); + Assert.That(bIsMobile, Is.False); } [Test] @@ -186,7 +186,7 @@ public void AspNetClientCapability_IsMobile_Returns_False_For_InternetExplorer9( var bIsMobile = AspNetClientCapability.IsMobile; // Assert - Assert.IsFalse(bIsMobile); + Assert.That(bIsMobile, Is.False); } [Test] @@ -199,7 +199,7 @@ public void AspNetClientCapability_IsMobile_Returns_False_For_InternetExplorer10 var bIsMobile = AspNetClientCapability.IsMobile; // Assert - Assert.IsFalse(bIsMobile); + Assert.That(bIsMobile, Is.False); } [Test] @@ -212,7 +212,7 @@ public void AspNetClientCapability_IsMobile_Returns_False_For_FireFox() var bIsMobile = AspNetClientCapability.IsMobile; // Assert - Assert.IsFalse(bIsMobile); + Assert.That(bIsMobile, Is.False); } [Test] @@ -225,7 +225,7 @@ public void AspNetClientCapability_IsTablet_Returns_False_For_IPhone() var bIsTablet = clientCapability.IsTablet; // Assert - Assert.IsFalse(bIsTablet); + Assert.That(bIsTablet, Is.False); } [Test] @@ -238,7 +238,7 @@ public void AspNetClientCapability_IsTablet_Returns_True_For_PCTablet() var bIsTablet = clientCapability.IsTablet; // Assert - Assert.IsTrue(bIsTablet); + Assert.That(bIsTablet, Is.True); } [Test] @@ -251,7 +251,7 @@ public void AspNetClientCapability_SupportsFlash_Returns_True_For_HTCDesireVer1S var bSupportsFlash = clientCapability.SupportsFlash; // Assert - Assert.IsFalse(bSupportsFlash); + Assert.That(bSupportsFlash, Is.False); } [Test] @@ -264,7 +264,7 @@ public void AspNetClientCapability_SupportsFlash_Returns_False_For_WindowsPhone7 var bIsTablet = clientCapability.IsTablet; // Assert - Assert.IsFalse(bIsTablet); + Assert.That(bIsTablet, Is.False); } } } diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Authentication/FacebookUserDataTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Authentication/FacebookUserDataTests.cs index 303bce42c60..c3e197cc43a 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Authentication/FacebookUserDataTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Authentication/FacebookUserDataTests.cs @@ -29,11 +29,14 @@ public class FacebookUserDataTests public void FacebookUserData_Populates_Inherited_Name_Properties_When_Deserialized() { // Act - UserData sampleUser = Json.Deserialize(SampleUserJson); - - // Assert - Assert.AreEqual("Bret", sampleUser.FirstName, "Should correctly pull first name from first_name field, not by parsing name"); - Assert.AreEqual("Taylor", sampleUser.LastName, "Should correctly pull first name from first_name field, not by parsing name"); + UserData sampleUser = Json.Deserialize(SampleUserJson); + + Assert.Multiple(() => + { + // Assert + Assert.That(sampleUser.FirstName, Is.EqualTo("Bret"), "Should correctly pull first name from first_name field, not by parsing name"); + Assert.That(sampleUser.LastName, Is.EqualTo("Taylor"), "Should correctly pull first name from first_name field, not by parsing name"); + }); } [Test] @@ -43,7 +46,7 @@ public void FacebookUserData_Populates_Link_Property_When_Deserialized() var sampleUser = Json.Deserialize(SampleUserJson); // Assert - Assert.AreEqual(new Uri("https://www.facebook.com/btaylor", UriKind.Absolute), sampleUser.Link); + Assert.That(sampleUser.Link, Is.EqualTo(new Uri("https://www.facebook.com/btaylor", UriKind.Absolute))); } } } diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Authentication/GoogleUserDataTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Authentication/GoogleUserDataTests.cs index 5defa461d9e..aeef21ea3fa 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Authentication/GoogleUserDataTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Authentication/GoogleUserDataTests.cs @@ -27,11 +27,14 @@ public class GoogleUserDataTests public void GoogleUserData_Populates_Inherited_Name_Properties_When_Deserialized() { // Act - UserData dukesUser = Json.Deserialize(SampleUserJson); - - // Assert - Assert.AreEqual("Frederick", dukesUser.FirstName, "Should correctly pull first name from given_name field, not by parsing name"); - Assert.AreEqual("Franklin", dukesUser.LastName, "Should correctly pull first name from family_name field, not by parsing name"); + UserData dukesUser = Json.Deserialize(SampleUserJson); + + Assert.Multiple(() => + { + // Assert + Assert.That(dukesUser.FirstName, Is.EqualTo("Frederick"), "Should correctly pull first name from given_name field, not by parsing name"); + Assert.That(dukesUser.LastName, Is.EqualTo("Franklin"), "Should correctly pull first name from family_name field, not by parsing name"); + }); } [Test] @@ -41,7 +44,7 @@ public void GoogleUserData_Populates_Inherited_ProfileImage_Property_When_Deseri UserData dukesUser = Json.Deserialize(SampleUserJson); // Assert - Assert.AreEqual("https://lh3.googleusercontent.com/-aii-uOqdr1M/AAAAAAAAAAI/AAAAAAAAADg/dNL75Dg7lbc/photo.jpg", dukesUser.ProfileImage); + Assert.That(dukesUser.ProfileImage, Is.EqualTo("https://lh3.googleusercontent.com/-aii-uOqdr1M/AAAAAAAAAAI/AAAAAAAAADg/dNL75Dg7lbc/photo.jpg")); } } } diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Authentication/LiveUserDataTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Authentication/LiveUserDataTests.cs index 320cf4a9758..d6981fbbbfa 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Authentication/LiveUserDataTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Authentication/LiveUserDataTests.cs @@ -25,11 +25,14 @@ public class LiveUserDataTests public void LiveUserData_Populates_Inherited_Name_Properties_When_Deserialized() { // Act - UserData dukesUser = Json.Deserialize(SampleUserJson); - - // Assert - Assert.AreEqual("Frederick", dukesUser.FirstName, "Should correctly pull first name from first_name field, not by parsing name"); - Assert.AreEqual("Franklin", dukesUser.LastName, "Should correctly pull first name from last_name field, not by parsing name"); + UserData dukesUser = Json.Deserialize(SampleUserJson); + + Assert.Multiple(() => + { + // Assert + Assert.That(dukesUser.FirstName, Is.EqualTo("Frederick"), "Should correctly pull first name from first_name field, not by parsing name"); + Assert.That(dukesUser.LastName, Is.EqualTo("Franklin"), "Should correctly pull first name from last_name field, not by parsing name"); + }); } } } diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Authentication/TwitterUserDataTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Authentication/TwitterUserDataTests.cs index c025d01475a..051e9572e3d 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Authentication/TwitterUserDataTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Authentication/TwitterUserDataTests.cs @@ -78,7 +78,7 @@ public void TwitterUserData_Populates_Inherited_DisplayName_Property_When_Deseri UserData sampleUser = Json.Deserialize(SampleUserJson); // Assert - Assert.AreEqual("themattharris", sampleUser.DisplayName); + Assert.That(sampleUser.DisplayName, Is.EqualTo("themattharris")); } [Test] @@ -88,7 +88,7 @@ public void TwitterUserData_Populates_Inherited_Locale_Property_When_Deserialize UserData sampleUser = Json.Deserialize(SampleUserJson); // Assert - Assert.AreEqual("en", sampleUser.Locale); + Assert.That(sampleUser.Locale, Is.EqualTo("en")); } [Test] @@ -98,7 +98,7 @@ public void TwitterUserData_Populates_Inherited_ProfileImage_Property_When_Deser UserData sampleUser = Json.Deserialize(SampleUserJson); // Assert - Assert.AreEqual("http://a1.twimg.com/profile_images/554181350/matt_normal.jpg", sampleUser.ProfileImage); + Assert.That(sampleUser.ProfileImage, Is.EqualTo("http://a1.twimg.com/profile_images/554181350/matt_normal.jpg")); } [Test] @@ -108,7 +108,7 @@ public void TwitterUserData_Populates_Inherited_Website_Property_When_Deserializ UserData sampleUser = Json.Deserialize(SampleUserJson); // Assert - Assert.AreEqual("http://themattharris.com", sampleUser.Website); + Assert.That(sampleUser.Website, Is.EqualTo("http://themattharris.com")); } } } diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Content/AttachmentControllerTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Content/AttachmentControllerTests.cs index a7e71d34863..32264a548c2 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Content/AttachmentControllerTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Content/AttachmentControllerTests.cs @@ -73,8 +73,11 @@ public void Test_Add_File_To_Content_Item_Without_Metadata() content.Metadata.Clear(); var contentId = Util.GetContentController().AddContentItem(content); - Assert.AreEqual(contentId, Constants.CONTENT_AddContentItemId); - Assert.IsEmpty(content.Metadata); + Assert.Multiple(() => + { + Assert.That(contentId, Is.EqualTo(Constants.CONTENT_AddContentItemId)); + Assert.That(content.Metadata, Is.Empty); + }); dataService.Setup(ds => ds.GetContentItem(It.IsAny())) .Returns(y => MockHelper.CreateValidContentItemReader(content)); @@ -108,16 +111,22 @@ public void Test_Load_Attachments_From_DataService() () => MockHelper.CreateMetaDataReaderWithFiles(files, new IFileInfo[0], new IFileInfo[0])); var contentItem = Util.GetContentController().GetContentItem(Constants.CONTENT_ValidContentItemId); - Assert.IsNotNull(contentItem); + Assert.That(contentItem, Is.Not.Null); var serialized = contentItem.Metadata[FileController.FilesKey]; - Assert.IsNotEmpty(serialized); - - Assert.IsNotEmpty(contentItem.Files); - Assert.AreEqual(contentItem.Files.Count, 3); - Assert.AreEqual(contentItem.Files[0].FileId, 0); - Assert.AreEqual(contentItem.Files[1].FileId, 1); - Assert.AreEqual(contentItem.Files[2].FileId, 2); + Assert.Multiple(() => + { + Assert.That(serialized, Is.Not.Empty); + + Assert.That(contentItem.Files, Is.Not.Empty); + }); + Assert.That(contentItem.Files, Has.Count.EqualTo(3)); + Assert.Multiple(() => + { + Assert.That(contentItem.Files[0].FileId, Is.EqualTo(0)); + Assert.That(contentItem.Files[1].FileId, Is.EqualTo(1)); + Assert.That(contentItem.Files[2].FileId, Is.EqualTo(2)); + }); } [Test] @@ -148,11 +157,14 @@ public void Test_Add_Attachments_With_FileController() var contentController = Util.GetContentController(); var contentItem = contentController.GetContentItem(Constants.CONTENT_ValidContentItemId); - Assert.IsNotNull(contentItem); + Assert.That(contentItem, Is.Not.Null); var serialized = contentItem.Metadata[FileController.FilesKey]; - Assert.IsNull(serialized); - Assert.IsEmpty(contentItem.Files); + Assert.Multiple(() => + { + Assert.That(serialized, Is.Null); + Assert.That(contentItem.Files, Is.Empty); + }); var fileManager = ComponentFactory.GetComponent(); @@ -163,9 +175,12 @@ public void Test_Add_Attachments_With_FileController() contentItem = contentController.GetContentItem(Constants.CONTENT_ValidContentItemId); - Assert.AreEqual(contentItem.Files.Count, 2); - Assert.AreEqual(contentItem.Files[0].FileId, 0); - Assert.AreEqual(contentItem.Files[1].FileId, 1); + Assert.That(contentItem.Files, Has.Count.EqualTo(2)); + Assert.Multiple(() => + { + Assert.That(contentItem.Files[0].FileId, Is.EqualTo(0)); + Assert.That(contentItem.Files[1].FileId, Is.EqualTo(1)); + }); dataService.Verify( ds => ds.DeleteMetaData(It.IsAny(), FileController.FilesKey, "[0]"), Times.Once()); @@ -191,11 +206,14 @@ public void Set_MetaData_To_Empty_Value_Deletes_Row() var fileManager = ComponentFactory.GetComponent(); var contentItem = contentController.GetContentItem(Constants.CONTENT_ValidContentItemId); - Assert.IsNotNull(contentItem); + Assert.That(contentItem, Is.Not.Null); var serialized = contentItem.Metadata[FileController.FilesKey]; - Assert.IsNull(serialized); - Assert.IsEmpty(contentItem.Files); + Assert.Multiple(() => + { + Assert.That(serialized, Is.Null); + Assert.That(contentItem.Files, Is.Empty); + }); // Add some files. var fileController = ComponentFactory.GetComponent(); @@ -204,10 +222,13 @@ public void Set_MetaData_To_Empty_Value_Deletes_Row() contentItem = contentController.GetContentItem(Constants.CONTENT_ValidContentItemId); - Assert.AreEqual(contentItem.Files.Count, 2); - Assert.AreEqual(contentItem.Files[0].FileId, 0); - Assert.AreEqual(contentItem.Files[1].FileId, 1); - Assert.IsNotEmpty(contentItem.Metadata[FileController.FilesKey]); + Assert.That(contentItem.Files, Has.Count.EqualTo(2)); + Assert.Multiple(() => + { + Assert.That(contentItem.Files[0].FileId, Is.EqualTo(0)); + Assert.That(contentItem.Files[1].FileId, Is.EqualTo(1)); + }); + Assert.That(contentItem.Metadata[FileController.FilesKey], Is.Not.Empty); contentItem.Files.Clear(); @@ -219,7 +240,7 @@ public void Set_MetaData_To_Empty_Value_Deletes_Row() dataService.Verify(ds => ds.AddMetaData(It.IsAny(), FileController.FilesKey, "[0,1]"), Times.Once()); var emptyFiles = fileController.GetFilesByContent(contentItem.ContentItemId); - Assert.AreEqual(0, emptyFiles.Count); + Assert.That(emptyFiles, Is.Empty); } /// This test should be moved elsewhere (cb). diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Content/ContentControllerTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Content/ContentControllerTests.cs index e8a89315cbb..962642d2510 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Content/ContentControllerTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Content/ContentControllerTests.cs @@ -121,7 +121,7 @@ public void ContentController_AddContentItem_Returns_ValidId_On_Valid_ContentIte int contentId = controller.AddContentItem(content); // Assert - Assert.AreEqual(Constants.CONTENT_AddContentItemId, contentId); + Assert.That(contentId, Is.EqualTo(Constants.CONTENT_AddContentItemId)); } [Test] @@ -141,7 +141,7 @@ public void ContentController_AddContentItem_Sets_ContentItemId_Property_On_Vali int contentId = controller.AddContentItem(content); // Assert - Assert.AreEqual(Constants.CONTENT_AddContentItemId, content.ContentItemId); + Assert.That(content.ContentItemId, Is.EqualTo(Constants.CONTENT_AddContentItemId)); } [Test] @@ -269,7 +269,7 @@ public void ContentController_GetContentItem_Returns_Null_On_InValid_ContentItem ContentItem content = controller.GetContentItem(Constants.CONTENT_InValidContentItemId); // Assert - Assert.IsNull(content); + Assert.That(content, Is.Null); } [Test] @@ -300,10 +300,13 @@ public void ContentController_GetContentItem_Returns_ContentItem_On_Valid_Conten // Act ContentItem content = controller.GetContentItem(Constants.CONTENT_ValidContentItemId); - // Assert - Assert.AreEqual(Constants.CONTENT_ValidContentItemId, content.ContentItemId); - Assert.AreEqual(ContentTestHelper.GetContent(Constants.CONTENT_ValidContentItemId), content.Content); - Assert.AreEqual(ContentTestHelper.GetContentKey(Constants.CONTENT_ValidContentItemId), content.ContentKey); + Assert.Multiple(() => + { + // Assert + Assert.That(content.ContentItemId, Is.EqualTo(Constants.CONTENT_ValidContentItemId)); + Assert.That(content.Content, Is.EqualTo(ContentTestHelper.GetContent(Constants.CONTENT_ValidContentItemId))); + Assert.That(content.ContentKey, Is.EqualTo(ContentTestHelper.GetContentKey(Constants.CONTENT_ValidContentItemId))); + }); } [Test] @@ -347,7 +350,7 @@ public void ContentController_GetContentItemsByTerm_Returns_Empty_List_If_Term_N IQueryable contentItems = controller.GetContentItemsByTerm(Constants.TERM_UnusedName); // Assert - Assert.AreEqual(0, contentItems.Count()); + Assert.That(contentItems.Count(), Is.EqualTo(0)); } [Test] @@ -367,7 +370,7 @@ public void ContentController_GetContentItemsByTerm_Returns_List_Of_ContentItems IQueryable contentItems = controller.GetContentItemsByTerm(Constants.TERM_ValidName); // Assert - Assert.AreEqual(Constants.CONTENT_TaggedItemCount, contentItems.Count()); + Assert.That(contentItems.Count(), Is.EqualTo(Constants.CONTENT_TaggedItemCount)); } [Test] @@ -382,7 +385,7 @@ public void ContentController_GetContentItemsByContentType_Returns_Results() var items = controller.GetContentItemsByContentType(10).ToArray(); - Assert.AreEqual(items.Length, 10); + Assert.That(items, Has.Length.EqualTo(10)); } [Test] @@ -396,7 +399,7 @@ public void ContentController_GetContentItemsByContentType_Invalid_Id_Returns_No var items = controller.GetContentItemsByContentType(-1).ToArray(); - Assert.IsEmpty(items); + Assert.That(items, Is.Empty); } [Test] @@ -412,8 +415,11 @@ public void GetContentItemsByModuleId_With_Negative_ModuleId_Returns_ContentItem var negative = controller.GetContentItemsByModuleId(-1).ToArray(); var positive = controller.GetContentItemsByModuleId(0).ToArray(); - Assert.AreEqual(negative.Length, 10); - Assert.AreEqual(positive.Length, 1); + Assert.Multiple(() => + { + Assert.That(negative, Has.Length.EqualTo(10)); + Assert.That(positive, Has.Length.EqualTo(1)); + }); } [Test] @@ -446,7 +452,7 @@ public void ContentController_GetUnIndexedContentItems_Returns_EmptyList_If_No_U IQueryable contentItems = controller.GetUnIndexedContentItems(); // Assert - Assert.AreEqual(0, contentItems.Count()); + Assert.That(contentItems.Count(), Is.EqualTo(0)); } [Test] @@ -467,10 +473,10 @@ public void ContentController_GetUnIndexedContentItems_Returns_List_Of_UnIndexed IQueryable contentItems = controller.GetUnIndexedContentItems(); // Assert - Assert.AreEqual(Constants.CONTENT_IndexedFalseItemCount, contentItems.Count()); + Assert.That(contentItems.Count(), Is.EqualTo(Constants.CONTENT_IndexedFalseItemCount)); foreach (ContentItem content in contentItems) { - Assert.IsFalse(content.Indexed); + Assert.That(content.Indexed, Is.False); } } @@ -683,7 +689,7 @@ public void ContentController_GetMetaData_Returns_NameValueCollection_Of_MetaDat var metaData = controller.GetMetaData(Constants.CONTENT_ValidContentItemId); // Assert - Assert.AreEqual(Constants.CONTENT_MetaDataCount, metaData.Count); + Assert.That(metaData, Has.Count.EqualTo(Constants.CONTENT_MetaDataCount)); } [Test] diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Content/ContentTypeControllerTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Content/ContentTypeControllerTests.cs index e25014af581..aa99242757a 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Content/ContentTypeControllerTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Content/ContentTypeControllerTests.cs @@ -94,7 +94,7 @@ public void ContentTypeController_AddContentType_Returns_ValidId_On_Valid_Conten int contentTypeId = contentTypeController.AddContentType(contentType); // Assert - Assert.AreEqual(Constants.CONTENTTYPE_AddContentTypeId, contentTypeId); + Assert.That(contentTypeId, Is.EqualTo(Constants.CONTENTTYPE_AddContentTypeId)); } [Test] @@ -111,7 +111,7 @@ public void ContentTypeController_AddContentType_Sets_ValidId_On_Valid_ContentTy contentTypeController.AddContentType(contentType); // Assert - Assert.AreEqual(Constants.CONTENTTYPE_AddContentTypeId, contentType.ContentTypeId); + Assert.That(contentType.ContentTypeId, Is.EqualTo(Constants.CONTENTTYPE_AddContentTypeId)); } [Test] @@ -185,8 +185,8 @@ public void ContentTypeController_GetContentTypes_Returns_Empty_List_Of_ContentT var contentTypes = contentTypeController.GetContentTypes(); // Assert - Assert.IsNotNull(contentTypes); - Assert.AreEqual(0, contentTypes.Count()); + Assert.That(contentTypes, Is.Not.Null); + Assert.That(contentTypes.Count(), Is.EqualTo(0)); } [Test] @@ -202,7 +202,7 @@ public void ContentTypeController_GetContentTypes_Returns_List_Of_ContentTypes() var contentTypes = contentTypeController.GetContentTypes(); // Assert - Assert.AreEqual(Constants.CONTENTTYPE_ValidContentTypeCount, contentTypes.Count()); + Assert.That(contentTypes.Count(), Is.EqualTo(Constants.CONTENTTYPE_ValidContentTypeCount)); } [Test] diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Content/ScopeTypeControllerTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Content/ScopeTypeControllerTests.cs index cd4401603a4..228d547d2fd 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Content/ScopeTypeControllerTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Content/ScopeTypeControllerTests.cs @@ -93,7 +93,7 @@ public void ScopeTypeController_AddScopeType_Returns_ValidId_On_Valid_ScopeType( int scopeTypeId = scopeTypeController.AddScopeType(scopeType); // Assert - Assert.AreEqual(Constants.SCOPETYPE_AddScopeTypeId, scopeTypeId); + Assert.That(scopeTypeId, Is.EqualTo(Constants.SCOPETYPE_AddScopeTypeId)); } [Test] @@ -109,7 +109,7 @@ public void ScopeTypeController_AddScopeType_Sets_ValidId_On_Valid_ScopeType() scopeTypeController.AddScopeType(scopeType); // Assert - Assert.AreEqual(Constants.SCOPETYPE_AddScopeTypeId, scopeType.ScopeTypeId); + Assert.That(scopeType.ScopeTypeId, Is.EqualTo(Constants.SCOPETYPE_AddScopeTypeId)); } [Test] @@ -182,8 +182,8 @@ public void ScopeTypeController_GetScopeTypes_Returns_Empty_List_Of_ScopeTypes_I var scopeTypes = scopeTypeController.GetScopeTypes(); // Assert - Assert.IsNotNull(scopeTypes); - Assert.AreEqual(0, scopeTypes.Count()); + Assert.That(scopeTypes, Is.Not.Null); + Assert.That(scopeTypes.Count(), Is.EqualTo(0)); } [Test] @@ -199,7 +199,7 @@ public void ScopeTypeController_GetScopeTypes_Returns_List_Of_ScopeTypes() var scopeTypes = scopeTypeController.GetScopeTypes(); // Assert - Assert.AreEqual(Constants.SCOPETYPE_ValidScopeTypeCount, scopeTypes.Count()); + Assert.That(scopeTypes.Count(), Is.EqualTo(Constants.SCOPETYPE_ValidScopeTypeCount)); } [Test] diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Content/TermControllerTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Content/TermControllerTests.cs index 0ec7507e57b..b1237043e3a 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Content/TermControllerTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Content/TermControllerTests.cs @@ -147,7 +147,7 @@ public void TermController_AddTerm_Returns_Valid_Id_On_Valid_Term_If_Term_Is_Sim int termId = termController.AddTerm(term); // Assert - Assert.AreEqual(Constants.TERM_AddTermId, termId); + Assert.That(termId, Is.EqualTo(Constants.TERM_AddTermId)); } [Test] @@ -165,7 +165,7 @@ public void TermController_AddTerm_Sets_Valid_Id_On_Valid_Term_If_Term_Is_Simple termController.AddTerm(term); // Assert - Assert.AreEqual(Constants.TERM_AddTermId, term.TermId); + Assert.That(term.TermId, Is.EqualTo(Constants.TERM_AddTermId)); } [Test] @@ -183,7 +183,7 @@ public void TermController_AddTerm_Returns_Valid_Id_On_Valid_Term_If_Term_Is_Hei int termId = termController.AddTerm(term); // Assert - Assert.AreEqual(Constants.TERM_AddTermId, termId); + Assert.That(termId, Is.EqualTo(Constants.TERM_AddTermId)); } [Test] @@ -201,7 +201,7 @@ public void TermController_AddTerm_Sets_Valid_Id_On_Valid_Term_If_Term_Is_Heirar termController.AddTerm(term); // Assert - Assert.AreEqual(Constants.TERM_AddTermId, term.TermId); + Assert.That(term.TermId, Is.EqualTo(Constants.TERM_AddTermId)); } [Test] @@ -371,7 +371,7 @@ public void TermController_GetTerm_Returns_Null_On_InValidTermId() Term term = termController.GetTerm(Constants.TERM_InValidTermId); // Assert - Assert.IsNull(term); + Assert.That(term, Is.Null); } [Test] @@ -403,9 +403,12 @@ public void TermController_GetTerm_Returns_Term_On_Valid_TermId() // Act var term = termController.GetTerm(Constants.TERM_ValidTermId); - // Assert - Assert.AreEqual(Constants.TERM_ValidTermId, term.TermId); - Assert.AreEqual(Constants.TERM_ValidName, term.Name); + Assert.Multiple(() => + { + // Assert + Assert.That(term.TermId, Is.EqualTo(Constants.TERM_ValidTermId)); + Assert.That(term.Name, Is.EqualTo(Constants.TERM_ValidName)); + }); } [Test] @@ -456,12 +459,15 @@ public void TermController_GetTermsByContent_Returns_Terms_On_Valid_ContentItemI var terms = termController.GetTermsByContent(Constants.TERM_ValidContent1).ToList(); // Assert - Assert.AreEqual(Constants.TERM_ValidCountForContent1, terms.Count); + Assert.That(terms, Has.Count.EqualTo(Constants.TERM_ValidCountForContent1)); for (int i = 0; i < Constants.TERM_ValidCountForContent1; i++) { - Assert.AreEqual(i + Constants.TERM_ValidTermId, terms[i].TermId); - Assert.AreEqual(ContentTestHelper.GetTermName(i + Constants.TERM_ValidTermId), terms[i].Name); + Assert.Multiple(() => + { + Assert.That(terms[i].TermId, Is.EqualTo(i + Constants.TERM_ValidTermId)); + Assert.That(terms[i].Name, Is.EqualTo(ContentTestHelper.GetTermName(i + Constants.TERM_ValidTermId))); + }); } } @@ -496,12 +502,15 @@ public void TermController_GetTermsByVocabulary_Returns_Terms_On_Valid_Vocabular var terms = termController.GetTermsByVocabulary(Constants.TERM_ValidVocabulary1).ToList(); // Assert - Assert.AreEqual(Constants.TERM_ValidCountForVocabulary1, terms.Count); + Assert.That(terms, Has.Count.EqualTo(Constants.TERM_ValidCountForVocabulary1)); for (int i = 0; i < Constants.TERM_ValidCountForVocabulary1; i++) { - Assert.AreEqual(i + Constants.TERM_ValidTermId, terms[i].TermId); - Assert.AreEqual(ContentTestHelper.GetTermName(i + Constants.TERM_ValidTermId), terms[i].Name); + Assert.Multiple(() => + { + Assert.That(terms[i].TermId, Is.EqualTo(i + Constants.TERM_ValidTermId)); + Assert.That(terms[i].Name, Is.EqualTo(ContentTestHelper.GetTermName(i + Constants.TERM_ValidTermId))); + }); } } diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Content/VocabularyControllerTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Content/VocabularyControllerTests.cs index ad811249166..521a091d034 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Content/VocabularyControllerTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Content/VocabularyControllerTests.cs @@ -127,7 +127,7 @@ public void VocabularyController_AddVocabulary_Returns_ValidId_On_Valid_Vocabula int vocabularyId = vocabularyController.AddVocabulary(vocabulary); // Assert - Assert.AreEqual(Constants.VOCABULARY_AddVocabularyId, vocabularyId); + Assert.That(vocabularyId, Is.EqualTo(Constants.VOCABULARY_AddVocabularyId)); } [Test] @@ -145,7 +145,7 @@ public void VocabularyController_AddVocabulary_Sets_ValidId_On_Valid_Vocabulary( vocabularyController.AddVocabulary(vocabulary); // Assert - Assert.AreEqual(Constants.VOCABULARY_AddVocabularyId, vocabulary.VocabularyId); + Assert.That(vocabulary.VocabularyId, Is.EqualTo(Constants.VOCABULARY_AddVocabularyId)); } [Test] @@ -256,7 +256,7 @@ public void VocabularyController_GetVocabularies_Returns_List_Of_Vocabularies() IQueryable vocabularys = vocabularyController.GetVocabularies(); // Assert - Assert.AreEqual(Constants.VOCABULARY_ValidCount, vocabularys.Count()); + Assert.That(vocabularys.Count(), Is.EqualTo(Constants.VOCABULARY_ValidCount)); } [Test] diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Core/CBOTest.cs b/DNN Platform/Tests/DotNetNuke.Tests.Core/CBOTest.cs index 39f5cbd9ce3..ba367f50c6b 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Core/CBOTest.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Core/CBOTest.cs @@ -37,9 +37,9 @@ public void CBO_FillObject_int() // Assert.AreEqual(12, moq.Object["TestColumn"]); var result = CBO.FillObject(cboTable.CreateDataReader()); - Assert.IsInstanceOf(result); - Assert.IsNotNull(result); - Assert.AreEqual(colValue, result.IntProp); + Assert.That(result, Is.InstanceOf()); + Assert.That(result, Is.Not.Null); + Assert.That(result.IntProp, Is.EqualTo(colValue)); } [Test] @@ -54,9 +54,9 @@ public void CBO_FillObject_string() // Assert.AreEqual(12, moq.Object["TestColumn"]); var result = CBO.FillObject(cboTable.CreateDataReader()); - Assert.IsInstanceOf(result); - Assert.IsNotNull(result); - Assert.AreEqual(colValue, result.StringProp); + Assert.That(result, Is.InstanceOf()); + Assert.That(result, Is.Not.Null); + Assert.That(result.StringProp, Is.EqualTo(colValue)); } [Test] @@ -72,9 +72,9 @@ public void CBO_FillObject_datetime() // Assert.AreEqual(12, moq.Object["TestColumn"]); var result = CBO.FillObject(cboTable.CreateDataReader()); - Assert.IsInstanceOf(result); - Assert.IsNotNull(result); - Assert.AreEqual(colValue, result.DateTimeProp); + Assert.That(result, Is.InstanceOf()); + Assert.That(result, Is.Not.Null); + Assert.That(result.DateTimeProp, Is.EqualTo(colValue)); } [Test] @@ -90,9 +90,9 @@ public void CBO_FillObject_binary() var result = CBO.FillObject(cboTable.CreateDataReader()); - Assert.IsInstanceOf(result); - Assert.IsNotNull(result); - Assert.AreEqual(colValue, result.ByteArrayProp); + Assert.That(result, Is.InstanceOf()); + Assert.That(result, Is.Not.Null); + Assert.That(result.ByteArrayProp, Is.EqualTo(colValue)); } [Test] @@ -107,9 +107,9 @@ public void CBO_FillObject_binary_to_Array() var result = CBO.FillObject(cboTable.CreateDataReader()); - Assert.IsInstanceOf(result); - Assert.IsNotNull(result); - Assert.AreEqual(colValue, result.ArrayProp); + Assert.That(result, Is.InstanceOf()); + Assert.That(result, Is.Not.Null); + Assert.That(result.ArrayProp, Is.EqualTo(colValue)); } [Test] @@ -124,9 +124,9 @@ public void CBO_FillObject_bit() var result = CBO.FillObject(cboTable.CreateDataReader()); - Assert.IsInstanceOf(result); - Assert.IsNotNull(result); - Assert.AreEqual(colValue, result.BitProp); + Assert.That(result, Is.InstanceOf()); + Assert.That(result, Is.Not.Null); + Assert.That(result.BitProp, Is.EqualTo(colValue)); } [Test] @@ -141,9 +141,9 @@ public void CBO_FillObject_decimal() var result = CBO.FillObject(cboTable.CreateDataReader()); - Assert.IsInstanceOf(result); - Assert.IsNotNull(result); - Assert.AreEqual(colValue, result.DecimalProp); + Assert.That(result, Is.InstanceOf()); + Assert.That(result, Is.Not.Null); + Assert.That(result.DecimalProp, Is.EqualTo(colValue)); } [Test] @@ -158,9 +158,9 @@ public void CBO_FillObject_int_to_boolean_true() var result = CBO.FillObject(cboTable.CreateDataReader()); - Assert.IsInstanceOf(result); - Assert.IsNotNull(result); - Assert.AreEqual(true, result.BitProp); + Assert.That(result, Is.InstanceOf()); + Assert.That(result, Is.Not.Null); + Assert.That(result.BitProp, Is.EqualTo(true)); } [Test] @@ -175,9 +175,9 @@ public void CBO_FillObject_int_to_boolean_false() var result = CBO.FillObject(cboTable.CreateDataReader()); - Assert.IsInstanceOf(result); - Assert.IsNotNull(result); - Assert.AreEqual(false, result.BitProp); + Assert.That(result, Is.InstanceOf()); + Assert.That(result, Is.Not.Null); + Assert.That(result.BitProp, Is.EqualTo(false)); } } diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Core/Collections/CollectionExtensionTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Core/Collections/CollectionExtensionTests.cs index 943fbc9def2..691f07c926f 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Core/Collections/CollectionExtensionTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Core/Collections/CollectionExtensionTests.cs @@ -2,495 +2,495 @@ // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information -namespace DotNetNuke.Tests.Core.Collections -{ - using System; - using System.Collections; - using System.Collections.Generic; - using System.Collections.Specialized; - using System.Globalization; - using System.Web.UI; - using System.Xml; - using System.Xml.Linq; - - using DotNetNuke.Collections; - using NUnit.Framework; - - [TestFixture] - public class CollectionExtensionTests : AssertionHelper - { - [Test] - public void get_null_string_from_hashtable_for_missing_value() - { - var table = new Hashtable { { "app id", "abc123" } }; - - var value = table.GetValueOrDefault("cat id"); - - Expect(value, Is.Null); - } - - [Test] - public void can_get_string_from_hashtable() - { - var table = new Hashtable { { "app id", "abc123" } }; - - var value = table.GetValueOrDefault("app id"); - - Expect(value, Is.EqualTo("abc123")); - } - - [Test] - public void get_string_from_hashtable_when_default_is_provided() - { - var table = new Hashtable { { "app id", "abc123" } }; - - var value = table.GetValueOrDefault("app id", "abracadabra"); - - Expect(value, Is.EqualTo("abc123")); - } - - [Test] - public void can_get_default_string_from_hashtable() - { - var table = new Hashtable { { "app id", "abc123" } }; - - var value = table.GetValueOrDefault("cat id", "Frank"); - - Expect(value, Is.EqualTo("Frank")); - } - - [Test] - public void can_get_bool_from_hashtable() - { - var table = new Hashtable { { "app id", "true" } }; - - var value = table.GetValueOrDefault("app id"); - - Expect(value, Is.True); - } - - [Test] - public void get_bool_from_hashtable_when_default_is_provided() - { - var table = new Hashtable { { "app id", "true" } }; - - var value = table.GetValueOrDefault("app id", false); - - Expect(value, Is.True); - } - - [Test] - public void can_get_default_bool_from_hashtable() - { - var value = true; - var table = new Hashtable { { "app id", "abc123" } }; - - value = table.GetValueOrDefault("Allow Windows Live Writer", value); - - Expect(value, Is.True); - } - - [Test] - public void get_false_from_hashtable_for_missing_value() - { - var table = new Hashtable { { "app id", "abc123" } }; - - var value = table.GetValueOrDefault("Allow Windows Live Writer"); - - Expect(value, Is.False); - } - - [Test] - public void get_bool_with_custom_converter_from_hashtable() - { - var table = new Hashtable { { "allow", "on" } }; - - var value = table.GetValueOrDefault( - "allow", - v => - { - bool allowed; - if (!bool.TryParse(v, out allowed)) - { - allowed = v.Equals("on", StringComparison.Ordinal); - } - - return allowed; - }); - - Expect(value, Is.True); - } - - [Test] - public void get_int() - { - var collection = new Dictionary { { "appId", "123" } }; - - var value = collection.GetValueOrDefault("appId"); - - Expect(value, Is.EqualTo(123)); - } - - [Test] - public void get_decimal() - { - var collection = new Dictionary { { "appId", "1.23" } }; - - var value = collection.GetValueOrDefault("appId"); - - Expect(value, Is.EqualTo(1.23m)); - } - - [Test] - [SetCulture("nl-NL")] - public void get_decimal_from_other_culture() - { - var collection = new Dictionary { { "appId", "1.23" } }; - - var value = collection.GetValueOrDefault("appId"); - - Expect(value, Is.EqualTo(1.23m)); - } - - [Test] - public void get_datetime() - { - var collection = new Dictionary { { "startDate", "05/04/2012 00:00:00" } }; - - var value = collection.GetValueOrDefault("startDate"); - - Expect(value, Is.EqualTo(new DateTime(2012, 5, 4))); - } - - [Test] - public void get_null_string_without_default() - { - var collection = new Dictionary { { "app id", null } }; - - var value = collection.GetValue("app id"); - - Expect(value, Is.Null); - } - - [Test] - public void get_null_string_with_default() - { - var collection = new Dictionary { { "app id", null } }; - - var value = collection.GetValueOrDefault("app id", "a default value"); - - Expect(value, Is.Null); - } - - [Test] - public void get_nullable_datetime() - { - var collection = new Dictionary { { "startDate", null } }; - - var value = collection.GetValue("startDate"); - - Expect(value, Is.Null); - } - - [Test] - [SetCulture("nl-NL")] - public void get_datetime_from_other_culture() - { - var collection = new Dictionary { { "startDate", "05/04/2012 00:00:00" } }; - - var value = collection.GetValueOrDefault("startDate"); - - Expect(value, Is.EqualTo(new DateTime(2012, 5, 4))); - } - - [Test] - public void get_from_statebag() - { - var collection = new StateBag { { "appId", "123" } }; - - var value = collection.GetValueOrDefault("appId"); - - Expect(value, Is.EqualTo("123")); - } - - [Test] - public void get_from_xnode() - { - var node = new XElement( - "parent", - new XElement("id", 14)); - - var value = node.GetValueOrDefault("id"); - - Expect(value, Is.EqualTo(14)); - } - - [Test] - public void get_from_xmlnode() - { - var doc = new XmlDocument { XmlResolver = null }; - doc.LoadXml(@" - - 13 -"); - - var value = doc.DocumentElement.GetValueOrDefault("id"); - - Expect(value, Is.EqualTo(13)); - } - - [Test] - public void can_get_timespan_with_custom_converter() - { - var collection = new Hashtable { { "length", "1:10:10" } }; - - var value = collection.GetValueOrDefault("length", TimeSpan.Parse); - - Expect(value, Is.EqualTo(TimeSpan.FromSeconds(4210))); - } - - [Test] - public void can_get_empty_boolean_from_form() - { - var collection = new NameValueCollection { { "text", "blah" } }; - - var value = collection.GetValueOrDefault("radio", CollectionExtensions.GetFlexibleBooleanParsingFunction()); - - Expect(value, Is.False); - } - - [Test] - public void can_get_boolean_from_form() - { - var collection = new NameValueCollection { { "radio", "on" } }; - - var value = collection.GetValueOrDefault("radio", CollectionExtensions.GetFlexibleBooleanParsingFunction()); - - Expect(value, Is.True); - } - - [Test] - public void flexible_boolean_parsing_is_case_insensitive() - { - var collection = new NameValueCollection { { "question", "YES" } }; - - var value = collection.GetValueOrDefault("question", CollectionExtensions.GetFlexibleBooleanParsingFunction("yes")); - - Expect(value, Is.True); - } - - [Test] - public void can_convert_namevaluecollection_to_lookup() - { - var collection = new NameValueCollection { { "question", "YES" } }; - - var lookup = collection.ToLookup(); - - Expect(lookup["question"], Is.EquivalentTo(new[] { "YES" })); - } - - [Test] - public void can_convert_namevaluecollection_with_multiple_values_to_lookup() - { - var collection = new NameValueCollection { { "question", "A" }, { "question", "B" }, { "question", "C" }, }; - - var lookup = collection.ToLookup(); - - Expect(lookup["question"], Is.EquivalentTo(new[] { "A", "B", "C", })); - } - - [Test] - public void can_get_null_value_rather_than_default() - { - var dictionary = new Hashtable { { "question", null } }; - - var value = dictionary.GetValueOrDefault("question", "yes"); - - Expect(value, Is.Null); - } - - [Test] - public void can_get_empty_string_rather_than_default() - { - var dictionary = new Hashtable { { "question", string.Empty } }; - - var value = dictionary.GetValueOrDefault("question", "yes"); - - Expect(value, Is.Empty); - } - - [Test] - public void can_get_value_without_default() - { - var dictionary = new Hashtable { { "question", "what is it" } }; - - var value = dictionary.GetValue("question"); - - Expect(value, Is.EqualTo("what is it")); - } - - [Test] - public void can_get_value_without_default_with_custom_converter() - { - var dictionary = new Hashtable { { "question", "what is it" } }; - - var value = dictionary.GetValue("question", (object v) => v is string ? 10 : 20); - - Expect(value, Is.EqualTo(10)); - } - - [Test] - public void can_get_value_without_default_from_namevaluecollection() - { - var collection = new NameValueCollection { { "question", "what is it" } }; - - var value = collection.GetValue("question"); - - Expect(value, Is.EqualTo("what is it")); - } - - [Test] - public void can_get_value_containing_comma_from_namevaluecollection() - { - var collection = new NameValueCollection { { "question", "what, is it?" } }; - - var value = collection.GetValue("question"); - - Expect(value, Is.EqualTo("what, is it?")); - } - - [Test] - public void can_get_multiple_values_from_namevaluecollection() - { - var collection = new NameValueCollection { { "state", "CA" }, { "state", "BC" }, }; - - var value = collection.GetValues("state"); - - Expect(value, Is.EquivalentTo(new[] { "CA", "BC", })); - } - - [Test] - public void can_get_sequence_with_single_value_from_namevaluecollection() - { - var collection = new NameValueCollection { { "state", "CA" } }; - - var value = collection.GetValues("state"); - - Expect(value, Is.EquivalentTo(new[] { "CA" })); - } - - [Test] - public void can_get_sequence_with_no_value_from_namevaluecollection() - { - var collection = new NameValueCollection { { "state", "CA" } }; - - var value = collection.GetValues("cat"); - - Expect(value, Is.Empty); - } - - [Test] - public void can_get_multiple_values_from_namevaluecollection_with_custom_converter() - { - var collection = new NameValueCollection { { "state", "12" }, { "state", "1" } }; - - var value = collection.GetValues("state", v => int.Parse(v, CultureInfo.InvariantCulture) + 10); - - Expect(value, Is.EquivalentTo(new[] { 22, 11 })); - } - - [Test] - public void can_get_value_without_default_from_statebag() - { - var dictionary = new StateBag { { "question", "what is it" } }; - - var value = dictionary.GetValue("question"); - - Expect(value, Is.EqualTo("what is it")); - } - - [Test] - public void can_get_value_without_default_from_xnode() - { - var node = new XElement( - "parent", - new XElement("id", 21)); - - var value = node.GetValue("id"); - - Expect(value, Is.EqualTo(21)); - } - - [Test] - public void can_get_value_without_default_from_xmlnode() - { - var doc = new XmlDocument { XmlResolver = null }; - doc.LoadXml(@" - - 123 -"); - - var value = doc.DocumentElement.GetValue("id"); - - Expect(value, Is.EqualTo(123)); - } - - [Test] - public void getvalue_throws_argumentexception_when_value_is_not_present() - { - var dictionary = new Hashtable { { "question", "what is it" } }; - - Expect(() => dictionary.GetValue("answer"), Throws.ArgumentException.With.Property("ParamName").EqualTo("key")); - } - - [Test] - public void throws_invalidoperationexception_when_lookup_has_multiple_values() - { - var collection = new NameValueCollection { { "state", "CA" }, { "state", "BC" } }; - - Expect(() => collection.GetValueOrDefault("state"), Throws.InvalidOperationException); - } - - [Test] - public void throws_argumentnullexception_when_dictionary_is_null() - { - IDictionary dictionary = null; - - Expect(() => dictionary.GetValueOrDefault("value ID"), Throws.TypeOf().With.Property("ParamName").EqualTo("dictionary")); - } - - [Test] - public void throws_argumentnullexception_when_xelement_is_null() - { - XElement node = null; - - Expect(() => node.GetValueOrDefault("value ID"), Throws.TypeOf().With.Property("ParamName").EqualTo("node")); - } - - [Test] - public void throws_argumentnullexception_when_xmlnode_is_null() - { - XmlNode node = null; - - Expect(() => node.GetValueOrDefault("value ID"), Throws.TypeOf().With.Property("ParamName").EqualTo("node")); - } - - [Test] - public void does_not_throw_invalidcastexception_when_value_is_null_for_reference_type() - { - var dictionary = new Dictionary { { "length", null } }; - - var value = dictionary.GetValueOrDefault("length"); - - Expect(value, Is.Null); - } - - [Test] - public void tolookup_throws_argumentnullexception_when_namevaluecollection_is_null() - { - NameValueCollection col = null; - - Expect(() => col.ToLookup(), Throws.TypeOf().With.Property("ParamName").EqualTo("collection")); - } - } -} +namespace DotNetNuke.Tests.Core.Collections +{ + using System; + using System.Collections; + using System.Collections.Generic; + using System.Collections.Specialized; + using System.Globalization; + using System.Web.UI; + using System.Xml; + using System.Xml.Linq; + + using DotNetNuke.Collections; + using NUnit.Framework; + + [TestFixture] + public class CollectionExtensionTests + { + [Test] + public void get_null_string_from_hashtable_for_missing_value() + { + var table = new Hashtable { { "app id", "abc123" } }; + + var value = table.GetValueOrDefault("cat id"); + + Assert.That(value, Is.Null); + } + + [Test] + public void can_get_string_from_hashtable() + { + var table = new Hashtable { { "app id", "abc123" } }; + + var value = table.GetValueOrDefault("app id"); + + Assert.That(value, Is.EqualTo("abc123")); + } + + [Test] + public void get_string_from_hashtable_when_default_is_provided() + { + var table = new Hashtable { { "app id", "abc123" } }; + + var value = table.GetValueOrDefault("app id", "abracadabra"); + + Assert.That(value, Is.EqualTo("abc123")); + } + + [Test] + public void can_get_default_string_from_hashtable() + { + var table = new Hashtable { { "app id", "abc123" } }; + + var value = table.GetValueOrDefault("cat id", "Frank"); + + Assert.That(value, Is.EqualTo("Frank")); + } + + [Test] + public void can_get_bool_from_hashtable() + { + var table = new Hashtable { { "app id", "true" } }; + + var value = table.GetValueOrDefault("app id"); + + Assert.That(value, Is.True); + } + + [Test] + public void get_bool_from_hashtable_when_default_is_provided() + { + var table = new Hashtable { { "app id", "true" } }; + + var value = table.GetValueOrDefault("app id", false); + + Assert.That(value, Is.True); + } + + [Test] + public void can_get_default_bool_from_hashtable() + { + var value = true; + var table = new Hashtable { { "app id", "abc123" } }; + + value = table.GetValueOrDefault("Allow Windows Live Writer", value); + + Assert.That(value, Is.True); + } + + [Test] + public void get_false_from_hashtable_for_missing_value() + { + var table = new Hashtable { { "app id", "abc123" } }; + + var value = table.GetValueOrDefault("Allow Windows Live Writer"); + + Assert.That(value, Is.False); + } + + [Test] + public void get_bool_with_custom_converter_from_hashtable() + { + var table = new Hashtable { { "allow", "on" } }; + + var value = table.GetValueOrDefault( + "allow", + v => + { + bool allowed; + if (!bool.TryParse(v, out allowed)) + { + allowed = v.Equals("on", StringComparison.Ordinal); + } + + return allowed; + }); + + Assert.That(value, Is.True); + } + + [Test] + public void get_int() + { + var collection = new Dictionary { { "appId", "123" } }; + + var value = collection.GetValueOrDefault("appId"); + + Assert.That(value, Is.EqualTo(123)); + } + + [Test] + public void get_decimal() + { + var collection = new Dictionary { { "appId", "1.23" } }; + + var value = collection.GetValueOrDefault("appId"); + + Assert.That(value, Is.EqualTo(1.23m)); + } + + [Test] + [SetCulture("nl-NL")] + public void get_decimal_from_other_culture() + { + var collection = new Dictionary { { "appId", "1.23" } }; + + var value = collection.GetValueOrDefault("appId"); + + Assert.That(value, Is.EqualTo(1.23m)); + } + + [Test] + public void get_datetime() + { + var collection = new Dictionary { { "startDate", "05/04/2012 00:00:00" } }; + + var value = collection.GetValueOrDefault("startDate"); + + Assert.That(value, Is.EqualTo(new DateTime(2012, 5, 4))); + } + + [Test] + public void get_null_string_without_default() + { + var collection = new Dictionary { { "app id", null } }; + + var value = collection.GetValue("app id"); + + Assert.That(value, Is.Null); + } + + [Test] + public void get_null_string_with_default() + { + var collection = new Dictionary { { "app id", null } }; + + var value = collection.GetValueOrDefault("app id", "a default value"); + + Assert.That(value, Is.Null); + } + + [Test] + public void get_nullable_datetime() + { + var collection = new Dictionary { { "startDate", null } }; + + var value = collection.GetValue("startDate"); + + Assert.That(value, Is.Null); + } + + [Test] + [SetCulture("nl-NL")] + public void get_datetime_from_other_culture() + { + var collection = new Dictionary { { "startDate", "05/04/2012 00:00:00" } }; + + var value = collection.GetValueOrDefault("startDate"); + + Assert.That(value, Is.EqualTo(new DateTime(2012, 5, 4))); + } + + [Test] + public void get_from_statebag() + { + var collection = new StateBag { { "appId", "123" } }; + + var value = collection.GetValueOrDefault("appId"); + + Assert.That(value, Is.EqualTo("123")); + } + + [Test] + public void get_from_xnode() + { + var node = new XElement( + "parent", + new XElement("id", 14)); + + var value = node.GetValueOrDefault("id"); + + Assert.That(value, Is.EqualTo(14)); + } + + [Test] + public void get_from_xmlnode() + { + var doc = new XmlDocument { XmlResolver = null }; + doc.LoadXml(@" + + 13 +"); + + var value = doc.DocumentElement.GetValueOrDefault("id"); + + Assert.That(value, Is.EqualTo(13)); + } + + [Test] + public void can_get_timespan_with_custom_converter() + { + var collection = new Hashtable { { "length", "1:10:10" } }; + + var value = collection.GetValueOrDefault("length", TimeSpan.Parse); + + Assert.That(value, Is.EqualTo(TimeSpan.FromSeconds(4210))); + } + + [Test] + public void can_get_empty_boolean_from_form() + { + var collection = new NameValueCollection { { "text", "blah" } }; + + var value = collection.GetValueOrDefault("radio", CollectionExtensions.GetFlexibleBooleanParsingFunction()); + + Assert.That(value, Is.False); + } + + [Test] + public void can_get_boolean_from_form() + { + var collection = new NameValueCollection { { "radio", "on" } }; + + var value = collection.GetValueOrDefault("radio", CollectionExtensions.GetFlexibleBooleanParsingFunction()); + + Assert.That(value, Is.True); + } + + [Test] + public void flexible_boolean_parsing_is_case_insensitive() + { + var collection = new NameValueCollection { { "question", "YES" } }; + + var value = collection.GetValueOrDefault("question", CollectionExtensions.GetFlexibleBooleanParsingFunction("yes")); + + Assert.That(value, Is.True); + } + + [Test] + public void can_convert_namevaluecollection_to_lookup() + { + var collection = new NameValueCollection { { "question", "YES" } }; + + var lookup = collection.ToLookup(); + + Assert.That(lookup["question"], Is.EquivalentTo(new[] { "YES" })); + } + + [Test] + public void can_convert_namevaluecollection_with_multiple_values_to_lookup() + { + var collection = new NameValueCollection { { "question", "A" }, { "question", "B" }, { "question", "C" }, }; + + var lookup = collection.ToLookup(); + + Assert.That(lookup["question"], Is.EquivalentTo(new[] { "A", "B", "C", })); + } + + [Test] + public void can_get_null_value_rather_than_default() + { + var dictionary = new Hashtable { { "question", null } }; + + var value = dictionary.GetValueOrDefault("question", "yes"); + + Assert.That(value, Is.Null); + } + + [Test] + public void can_get_empty_string_rather_than_default() + { + var dictionary = new Hashtable { { "question", string.Empty } }; + + var value = dictionary.GetValueOrDefault("question", "yes"); + + Assert.That(value, Is.Empty); + } + + [Test] + public void can_get_value_without_default() + { + var dictionary = new Hashtable { { "question", "what is it" } }; + + var value = dictionary.GetValue("question"); + + Assert.That(value, Is.EqualTo("what is it")); + } + + [Test] + public void can_get_value_without_default_with_custom_converter() + { + var dictionary = new Hashtable { { "question", "what is it" } }; + + var value = dictionary.GetValue("question", (object v) => v is string ? 10 : 20); + + Assert.That(value, Is.EqualTo(10)); + } + + [Test] + public void can_get_value_without_default_from_namevaluecollection() + { + var collection = new NameValueCollection { { "question", "what is it" } }; + + var value = collection.GetValue("question"); + + Assert.That(value, Is.EqualTo("what is it")); + } + + [Test] + public void can_get_value_containing_comma_from_namevaluecollection() + { + var collection = new NameValueCollection { { "question", "what, is it?" } }; + + var value = collection.GetValue("question"); + + Assert.That(value, Is.EqualTo("what, is it?")); + } + + [Test] + public void can_get_multiple_values_from_namevaluecollection() + { + var collection = new NameValueCollection { { "state", "CA" }, { "state", "BC" }, }; + + var value = collection.GetValues("state"); + + Assert.That(value, Is.EquivalentTo(new[] { "CA", "BC", })); + } + + [Test] + public void can_get_sequence_with_single_value_from_namevaluecollection() + { + var collection = new NameValueCollection { { "state", "CA" } }; + + var value = collection.GetValues("state"); + + Assert.That(value, Is.EquivalentTo(new[] { "CA" })); + } + + [Test] + public void can_get_sequence_with_no_value_from_namevaluecollection() + { + var collection = new NameValueCollection { { "state", "CA" } }; + + var value = collection.GetValues("cat"); + + Assert.That(value, Is.Empty); + } + + [Test] + public void can_get_multiple_values_from_namevaluecollection_with_custom_converter() + { + var collection = new NameValueCollection { { "state", "12" }, { "state", "1" } }; + + var value = collection.GetValues("state", v => int.Parse(v, CultureInfo.InvariantCulture) + 10); + + Assert.That(value, Is.EquivalentTo(new[] { 22, 11 })); + } + + [Test] + public void can_get_value_without_default_from_statebag() + { + var dictionary = new StateBag { { "question", "what is it" } }; + + var value = dictionary.GetValue("question"); + + Assert.That(value, Is.EqualTo("what is it")); + } + + [Test] + public void can_get_value_without_default_from_xnode() + { + var node = new XElement( + "parent", + new XElement("id", 21)); + + var value = node.GetValue("id"); + + Assert.That(value, Is.EqualTo(21)); + } + + [Test] + public void can_get_value_without_default_from_xmlnode() + { + var doc = new XmlDocument { XmlResolver = null }; + doc.LoadXml(@" + + 123 +"); + + var value = doc.DocumentElement.GetValue("id"); + + Assert.That(value, Is.EqualTo(123)); + } + + [Test] + public void getvalue_throws_argumentexception_when_value_is_not_present() + { + var dictionary = new Hashtable { { "question", "what is it" } }; + + Assert.That(() => dictionary.GetValue("answer"), Throws.ArgumentException.With.Property("ParamName").EqualTo("key")); + } + + [Test] + public void throws_invalidoperationexception_when_lookup_has_multiple_values() + { + var collection = new NameValueCollection { { "state", "CA" }, { "state", "BC" } }; + + Assert.That(() => collection.GetValueOrDefault("state"), Throws.InvalidOperationException); + } + + [Test] + public void throws_argumentnullexception_when_dictionary_is_null() + { + IDictionary dictionary = null; + + Assert.That(() => dictionary.GetValueOrDefault("value ID"), Throws.TypeOf().With.Property("ParamName").EqualTo("dictionary")); + } + + [Test] + public void throws_argumentnullexception_when_xelement_is_null() + { + XElement node = null; + + Assert.That(() => node.GetValueOrDefault("value ID"), Throws.TypeOf().With.Property("ParamName").EqualTo("node")); + } + + [Test] + public void throws_argumentnullexception_when_xmlnode_is_null() + { + XmlNode node = null; + + Assert.That(() => node.GetValueOrDefault("value ID"), Throws.TypeOf().With.Property("ParamName").EqualTo("node")); + } + + [Test] + public void does_not_throw_invalidcastexception_when_value_is_null_for_reference_type() + { + var dictionary = new Dictionary { { "length", null } }; + + var value = dictionary.GetValueOrDefault("length"); + + Assert.That(value, Is.Null); + } + + [Test] + public void tolookup_throws_argumentnullexception_when_namevaluecollection_is_null() + { + NameValueCollection col = null; + + Assert.That(() => col.ToLookup(), Throws.TypeOf().With.Property("ParamName").EqualTo("collection")); + } + } +} diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Core/Collections/LockStrategyTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Core/Collections/LockStrategyTests.cs index c4d041abff8..5412cddc91f 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Core/Collections/LockStrategyTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Core/Collections/LockStrategyTests.cs @@ -2,277 +2,277 @@ // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information -namespace DotNetNuke.Tests.Core.Collections -{ - using System; - using System.Collections.Generic; - using System.Threading; - - using DotNetNuke.Collections.Internal; - using NUnit.Framework; - - public abstract class LockStrategyTests - { - [Test] - public void DoubleDisposeAllowed() - { - var strategy = this.GetLockStrategy(); - - strategy.Dispose(); - strategy.Dispose(); - - // no exception on 2nd dispose - } - - protected void DoubleReadLock() - { - using (var strategy = this.GetLockStrategy()) - { - using (var readLock1 = strategy.GetReadLock()) - { - using (var readLock2 = strategy.GetReadLock()) - { - // do nothing - } - } - } - } - - [Test] - public virtual void DoubleReadLockThrows() - { - Assert.Throws(this.DoubleReadLock); - } - - [Test] - public void ReadAndWriteLockOnSameThreadThrows() - { - using (var strategy = this.GetLockStrategy()) - { - using (var readLock1 = strategy.GetReadLock()) - { - Assert.Throws( - () => - { - using (var readLock2 = strategy.GetWriteLock()) - { - // do nothing - } - }); - } - } - } - - [Test] - public void WriteAndReadLockOnSameThreadThrows() - { - using (var strategy = this.GetLockStrategy()) - { - using (var readLock1 = strategy.GetWriteLock()) - { - Assert.Throws( - () => - { - using (var readLock2 = strategy.GetReadLock()) - { - // do nothing - } - }); - } - } - } - - [Test] - public void DoubleReadLockOnDifferentThreads() - { - using (var strategy = this.GetLockStrategy()) - { - if (strategy.SupportsConcurrentReads) - { - using (var readLock1 = strategy.GetReadLock()) - { - var t = new Thread(GetReadLock); - t.Start(strategy); - - // sleep and let new thread run - t.Join(TimeSpan.FromMilliseconds(100)); - - // assert that read thread has terminated - Console.WriteLine(t.ThreadState.ToString()); - Assert.IsTrue(t.ThreadState == ThreadState.Stopped); - } - } - } - } - - [Test] - public void DoubleWriteLockOnDifferentThreadsWaits() - { - using (ILockStrategy strategy = this.GetLockStrategy()) - { - Thread t; - using (var writeLock1 = strategy.GetWriteLock()) - { - t = new Thread(GetWriteLock); - t.Start(strategy); - - // sleep and let new thread run and block - Thread.Sleep(50); - - // assert that write thread has not terminated - Assert.IsTrue(t.IsAlive); - } // release write lock - - Thread.Sleep(50); - - // assert that getwritelock did complete once first writelock was released it's call - Assert.IsFalse(t.IsAlive); - } - } - - [Test] - public virtual void DoubleWriteLockThrows() - { - Assert.Throws(this.DoubleWriteLock); +namespace DotNetNuke.Tests.Core.Collections +{ + using System; + using System.Collections.Generic; + using System.Threading; + + using DotNetNuke.Collections.Internal; + using NUnit.Framework; + + public abstract class LockStrategyTests + { + [Test] + public void DoubleDisposeAllowed() + { + var strategy = this.GetLockStrategy(); + + strategy.Dispose(); + strategy.Dispose(); + + // no exception on 2nd dispose + } + + protected void DoubleReadLock() + { + using (var strategy = this.GetLockStrategy()) + { + using (var readLock1 = strategy.GetReadLock()) + { + using (var readLock2 = strategy.GetReadLock()) + { + // do nothing + } + } + } + } + + [Test] + public virtual void DoubleReadLockThrows() + { + Assert.Throws(this.DoubleReadLock); + } + + [Test] + public void ReadAndWriteLockOnSameThreadThrows() + { + using (var strategy = this.GetLockStrategy()) + { + using (var readLock1 = strategy.GetReadLock()) + { + Assert.Throws( + () => + { + using (var readLock2 = strategy.GetWriteLock()) + { + // do nothing + } + }); + } + } + } + + [Test] + public void WriteAndReadLockOnSameThreadThrows() + { + using (var strategy = this.GetLockStrategy()) + { + using (var readLock1 = strategy.GetWriteLock()) + { + Assert.Throws( + () => + { + using (var readLock2 = strategy.GetReadLock()) + { + // do nothing + } + }); + } + } + } + + [Test] + public void DoubleReadLockOnDifferentThreads() + { + using (var strategy = this.GetLockStrategy()) + { + if (strategy.SupportsConcurrentReads) + { + using (var readLock1 = strategy.GetReadLock()) + { + var t = new Thread(GetReadLock); + t.Start(strategy); + + // sleep and let new thread run + t.Join(TimeSpan.FromMilliseconds(100)); + + // assert that read thread has terminated + Console.WriteLine(t.ThreadState.ToString()); + Assert.That(t.ThreadState == ThreadState.Stopped, Is.True); + } + } + } + } + + [Test] + public void DoubleWriteLockOnDifferentThreadsWaits() + { + using (ILockStrategy strategy = this.GetLockStrategy()) + { + Thread t; + using (var writeLock1 = strategy.GetWriteLock()) + { + t = new Thread(GetWriteLock); + t.Start(strategy); + + // sleep and let new thread run and block + Thread.Sleep(50); + + // assert that write thread has not terminated + Assert.That(t.IsAlive, Is.True); + } // release write lock + + Thread.Sleep(50); + + // assert that getwritelock did complete once first writelock was released it's call + Assert.That(t.IsAlive, Is.False); + } + } + + [Test] + public virtual void DoubleWriteLockThrows() + { + Assert.Throws(this.DoubleWriteLock); + } + + protected void DoubleWriteLock() + { + using (ILockStrategy strategy = this.GetLockStrategy()) + { + using (var writeLock1 = strategy.GetWriteLock()) + { + using (var writeLock2 = strategy.GetWriteLock()) + { + // do nothing + } + } + } + } + + [Test] + [TestCaseSource(nameof(GetObjectDisposedExceptionMethods))] + public virtual void MethodsThrowAfterDisposed(Action methodCall) + { + var strategy = this.GetLockStrategy(); + + strategy.Dispose(); + Assert.Throws(() => methodCall.Invoke(strategy)); + } + + [Test] + public void ReadLockPreventsWriteLock() + { + Thread t = null; + + using (var strategy = this.GetLockStrategy()) + { + using (var readLock = strategy.GetReadLock()) + { + t = new Thread(GetWriteLock); + t.Start(strategy); + + // sleep and let new thread run + Thread.Sleep(100); + + // assert that write thread is still waiting + Assert.That(t.IsAlive, Is.True); + } + + // release read lock + + // sleep and let write thread finish up + Thread.Sleep(100); + Assert.That(t.IsAlive, Is.False); + } + + // release controller + } + + [Test] + public void OnlyOneWriteLockAllowed() + { + Thread t = null; + + using (var strategy = this.GetLockStrategy()) + { + using (var writeLock = strategy.GetWriteLock()) + { + t = new Thread(GetWriteLock); + t.Start(strategy); + + // sleep and let new thread run + Thread.Sleep(100); + + // assert that write thread is still waiting + Assert.That(t.IsAlive, Is.True); + } + + // release write lock + // sleep and let write thread finish up + Thread.Sleep(100); + Assert.That(t.IsAlive, Is.False); + } + } + + [Test] + public void MultipleReadLocksAllowed() + { + Thread t = null; + + using (var strategy = this.GetLockStrategy()) + { + if (strategy.SupportsConcurrentReads) + { + using (var readLock = strategy.GetReadLock()) + { + t = new Thread(GetReadLock); + t.Start(strategy); + + // sleep and let new thread run + Thread.Sleep(100); + + // assert that read thread has terminated + Assert.That(t.IsAlive, Is.False); + } + } + else + { + Assert.Pass(); + } + } + } + + internal abstract ILockStrategy GetLockStrategy(); + + protected static IEnumerable> GetObjectDisposedExceptionMethods() + { + var l = new List>(); + + l.Add((ILockStrategy strategy) => strategy.GetReadLock()); + l.Add((ILockStrategy strategy) => strategy.GetWriteLock()); + l.Add((ILockStrategy strategy) => Console.WriteLine(strategy.ThreadCanRead)); + l.Add((ILockStrategy strategy) => Console.WriteLine(strategy.ThreadCanWrite)); + + return l; + } + + private static void GetReadLock(object obj) + { + var strategy = (ILockStrategy)obj; + using (var readLock = strategy.GetReadLock()) + { + // do nothing + } + } + + private static void GetWriteLock(object obj) + { + var strategy = (ILockStrategy)obj; + using (var writeLock = strategy.GetWriteLock()) + { + // do nothing + } } - - protected void DoubleWriteLock() - { - using (ILockStrategy strategy = this.GetLockStrategy()) - { - using (var writeLock1 = strategy.GetWriteLock()) - { - using (var writeLock2 = strategy.GetWriteLock()) - { - // do nothing - } - } - } - } - - [Test] - [TestCaseSource(nameof(GetObjectDisposedExceptionMethods))] - public virtual void MethodsThrowAfterDisposed(Action methodCall) - { - var strategy = this.GetLockStrategy(); - - strategy.Dispose(); - Assert.Throws(() => methodCall.Invoke(strategy)); - } - - [Test] - public void ReadLockPreventsWriteLock() - { - Thread t = null; - - using (var strategy = this.GetLockStrategy()) - { - using (var readLock = strategy.GetReadLock()) - { - t = new Thread(GetWriteLock); - t.Start(strategy); - - // sleep and let new thread run - Thread.Sleep(100); - - // assert that write thread is still waiting - Assert.IsTrue(t.IsAlive); - } - - // release read lock - - // sleep and let write thread finish up - Thread.Sleep(100); - Assert.IsFalse(t.IsAlive); - } - - // release controller - } - - [Test] - public void OnlyOneWriteLockAllowed() - { - Thread t = null; - - using (var strategy = this.GetLockStrategy()) - { - using (var writeLock = strategy.GetWriteLock()) - { - t = new Thread(GetWriteLock); - t.Start(strategy); - - // sleep and let new thread run - Thread.Sleep(100); - - // assert that write thread is still waiting - Assert.IsTrue(t.IsAlive); - } - - // release write lock - // sleep and let write thread finish up - Thread.Sleep(100); - Assert.IsFalse(t.IsAlive); - } - } - - [Test] - public void MultipleReadLocksAllowed() - { - Thread t = null; - - using (var strategy = this.GetLockStrategy()) - { - if (strategy.SupportsConcurrentReads) - { - using (var readLock = strategy.GetReadLock()) - { - t = new Thread(GetReadLock); - t.Start(strategy); - - // sleep and let new thread run - Thread.Sleep(100); - - // assert that read thread has terminated - Assert.IsFalse(t.IsAlive); - } - } - else - { - Assert.IsTrue(true); - } - } - } - - internal abstract ILockStrategy GetLockStrategy(); - - protected static IEnumerable> GetObjectDisposedExceptionMethods() - { - var l = new List>(); - - l.Add((ILockStrategy strategy) => strategy.GetReadLock()); - l.Add((ILockStrategy strategy) => strategy.GetWriteLock()); - l.Add((ILockStrategy strategy) => Console.WriteLine(strategy.ThreadCanRead)); - l.Add((ILockStrategy strategy) => Console.WriteLine(strategy.ThreadCanWrite)); - - return l; - } - - private static void GetReadLock(object obj) - { - var strategy = (ILockStrategy)obj; - using (var readLock = strategy.GetReadLock()) - { - // do nothing - } - } - - private static void GetWriteLock(object obj) - { - var strategy = (ILockStrategy)obj; - using (var writeLock = strategy.GetWriteLock()) - { - // do nothing - } - } - } -} + } +} diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Core/Collections/NaiveLockingListTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Core/Collections/NaiveLockingListTests.cs index 6d33a3fa27d..e84042bf493 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Core/Collections/NaiveLockingListTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Core/Collections/NaiveLockingListTests.cs @@ -27,7 +27,7 @@ public void Add() list.Add("sumthin"); - CollectionAssert.AreEqual(new[] { "sumthin" }, list); + Assert.That(list, Is.EqualTo(new[] { "sumthin" }).AsCollection); } [Test] @@ -36,16 +36,19 @@ public void Clear() var list = new NaiveLockingList { 0, 1, 2, 3 }; list.Clear(); - CollectionAssert.AreEqual(new int[] { }, list); + Assert.That(list, Is.EqualTo(new int[] { }).AsCollection); } [Test] public void Contains() { - var list = new NaiveLockingList { 0, 1, 2, 3 }; - - Assert.IsTrue(list.Contains(2)); - Assert.IsFalse(list.Contains(9999)); + var list = new NaiveLockingList { 0, 1, 2, 3 }; + + Assert.Multiple(() => + { + Assert.That(list.Contains(2), Is.True); + Assert.That(list.Contains(9999), Is.False); + }); } [Test] @@ -56,7 +59,7 @@ public void CopyTo() var dest = new int[4]; list.CopyTo(dest, 0); - CollectionAssert.AreEqual(list, dest); + Assert.That(dest, Is.EqualTo(list).AsCollection); } [Test] @@ -66,7 +69,7 @@ public void Remove() list.Remove(2); - CollectionAssert.AreEqual(new[] { 0, 1, 3 }, list); + Assert.That(list, Is.EqualTo(new[] { 0, 1, 3 }).AsCollection); } [Test] @@ -74,7 +77,7 @@ public void Count() { var list = new NaiveLockingList { 0, 1, 2, 3 }; - Assert.AreEqual(4, list.Count); + Assert.That(list, Has.Count.EqualTo(4)); } [Test] @@ -82,7 +85,7 @@ public void IndexOf() { var list = new NaiveLockingList { 0, 1, 2, 3 }; - Assert.AreEqual(2, list.IndexOf(2)); + Assert.That(list.IndexOf(2), Is.EqualTo(2)); } [Test] @@ -92,7 +95,7 @@ public void Insert() list.Insert(2, 999); - CollectionAssert.AreEqual(new[] { 0, 1, 999, 2, 3 }, list); + Assert.That(list, Is.EqualTo(new[] { 0, 1, 999, 2, 3 }).AsCollection); } [Test] @@ -102,7 +105,7 @@ public void RemoveAt() list.RemoveAt(2); - CollectionAssert.AreEqual(new[] { 0, 1, 2, 3 }, list); + Assert.That(list, Is.EqualTo(new[] { 0, 1, 2, 3 }).AsCollection); } [Test] @@ -112,7 +115,7 @@ public void IndexOperator() list[2] = 999; - Assert.AreEqual(999, list[2]); + Assert.That(list[2], Is.EqualTo(999)); } [Test] diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Core/Collections/PageSelectorTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Core/Collections/PageSelectorTests.cs index 25d34c8b821..d3d94c2cdda 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Core/Collections/PageSelectorTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Core/Collections/PageSelectorTests.cs @@ -34,7 +34,7 @@ public void PageSelector_Returns_CorrectPage_When_Given_Valid_Index(int index) IPagedList pagedList = selector.GetPage(index); // Assert - Assert.AreEqual(index, pagedList.PageIndex); + Assert.That(pagedList.PageIndex, Is.EqualTo(index)); } [Test] @@ -49,7 +49,7 @@ public void PageSelector_Returns_Correct_RecordCount_When_Given_Valid_Index(int IPagedList pagedList = selector.GetPage(Constants.PAGE_First); // Assert - Assert.AreEqual(pageSize, pagedList.PageSize); + Assert.That(pagedList.PageSize, Is.EqualTo(pageSize)); } [Test] @@ -68,7 +68,7 @@ public void PageSelector_Returns_Correct_Values_When_Given_Valid_Index_And_PageS // Assert for (int i = 0; i < pageSize; i++) { - Assert.AreEqual((index * pageSize) + i, pagedList[i]); + Assert.That(pagedList[i], Is.EqualTo((index * pageSize) + i)); } } diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Core/Collections/PagedListTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Core/Collections/PagedListTests.cs index 3ca2279a0b7..89ac8f539df 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Core/Collections/PagedListTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Core/Collections/PagedListTests.cs @@ -129,7 +129,7 @@ public void PagedList_HasNextPage_Has_Correct_Value_When_Given_Valid_Index(int i var pagedList = new PagedList(list, index, Constants.PAGE_RecordCount); // Assert - Assert.AreEqual(hasNext, pagedList.HasNextPage); + Assert.That(pagedList.HasNextPage, Is.EqualTo(hasNext)); } [Test] @@ -145,7 +145,7 @@ public void PagedList_HasPreviousPage_Has_Correct_Value_When_Given_Valid_Index(i var pagedList = new PagedList(list, index, Constants.PAGE_RecordCount); // Assert - Assert.AreEqual(hasPrevious, pagedList.HasPreviousPage); + Assert.That(pagedList.HasPreviousPage, Is.EqualTo(hasPrevious)); } [Test] @@ -161,7 +161,7 @@ public void PagedList_IsFirstPage_Has_Correct_Value_When_Given_Valid_Index(int i var pagedList = new PagedList(list, index, Constants.PAGE_RecordCount); // Assert - Assert.AreEqual(isFirst, pagedList.IsFirstPage); + Assert.That(pagedList.IsFirstPage, Is.EqualTo(isFirst)); } [Test] @@ -177,7 +177,7 @@ public void PagedList_IsLastPage_Has_Correct_Value_When_Given_Valid_Index(int in var pagedList = new PagedList(list, index, Constants.PAGE_RecordCount); // Assert - Assert.AreEqual(isLast, pagedList.IsLastPage); + Assert.That(pagedList.IsLastPage, Is.EqualTo(isLast)); } [Test] @@ -193,7 +193,7 @@ public void PagedList_Returns_Correct_Page_When_Given_Valid_Index(int index) var pagedList = new PagedList(list, index, Constants.PAGE_RecordCount); // Assert - Assert.AreEqual(index, pagedList.PageIndex); + Assert.That(pagedList.PageIndex, Is.EqualTo(index)); } [Test] @@ -208,7 +208,7 @@ public void PagedList_Returns_Correct_RecordCount_When_Given_Valid_Index(int pag var pagedList = new PagedList(list, Constants.PAGE_First, pageSize); // Assert - Assert.AreEqual(pageSize, pagedList.PageSize); + Assert.That(pagedList.PageSize, Is.EqualTo(pageSize)); } [Test] @@ -227,7 +227,7 @@ public void PagedList_Returns_Correct_Values_When_Given_Valid_Index_And_PageSize // Assert for (int i = 0; i < pageSize; i++) { - Assert.AreEqual((index * pageSize) + i, pagedList[i]); + Assert.That(pagedList[i], Is.EqualTo((index * pageSize) + i)); } } @@ -245,7 +245,7 @@ public void PagedList_Sets_Correct_PageCount(int index, int pageSize, int pageCo var pagedList = new PagedList(list, index, pageSize); // Assert - Assert.AreEqual(pageCount, pagedList.PageCount); + Assert.That(pagedList.PageCount, Is.EqualTo(pageCount)); } [Test] @@ -262,7 +262,7 @@ public void PagedList_Sets_TotalCount_To_Total_Number_Of_Items(int index, int pa var pagedList = new PagedList(list, index, pageSize); // Assert - Assert.AreEqual(Constants.PAGE_TotalCount, pagedList.TotalCount); + Assert.That(pagedList.TotalCount, Is.EqualTo(Constants.PAGE_TotalCount)); } } } diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Core/Collections/PagingExtensionsTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Core/Collections/PagingExtensionsTests.cs index ef5e466317b..6cf5cf70fb6 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Core/Collections/PagingExtensionsTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Core/Collections/PagingExtensionsTests.cs @@ -23,7 +23,7 @@ public void PagingExtensions_InPagesOf_Returns_PageSelector() PageSelector pageSelector = queryable.InPagesOf(Constants.PAGE_RecordCount); // Assert - Assert.IsInstanceOf>(pageSelector); + Assert.That(pageSelector, Is.InstanceOf>()); } [Test] @@ -40,7 +40,7 @@ public void PagingExtensions_ToPagedList_Returns_PagedList_From_Enumerable(int i IPagedList pagedList = enumerable.ToPagedList(index, pageSize); // Assert - Assert.IsInstanceOf>(pagedList); + Assert.That(pagedList, Is.InstanceOf>()); } [Test] @@ -55,11 +55,14 @@ public void PagingExtensions_ToPagedList_Returns_PagedList_From_Enumerable_With_ List enumerable = Util.CreateIntegerList(Constants.PAGE_TotalCount); // Act - IPagedList pagedList = enumerable.ToPagedList(index, pageSize); - - // Assert - Assert.AreEqual(index, pagedList.PageIndex); - Assert.AreEqual(pageSize, pagedList.PageSize); + IPagedList pagedList = enumerable.ToPagedList(index, pageSize); + + Assert.Multiple(() => + { + // Assert + Assert.That(pagedList.PageIndex, Is.EqualTo(index)); + Assert.That(pagedList.PageSize, Is.EqualTo(pageSize)); + }); } [Test] @@ -76,7 +79,7 @@ public void PagingExtensions_ToPagedList_Returns_PagedList_From_Queryable(int in IPagedList pagedList = queryable.ToPagedList(index, pageSize); // Assert - Assert.IsInstanceOf>(pagedList); + Assert.That(pagedList, Is.InstanceOf>()); } [Test] @@ -91,11 +94,14 @@ public void PagingExtensions_ToPagedList_Returns_PagedList_From_Queryable_With_C IQueryable queryable = Util.CreateIntegerList(Constants.PAGE_TotalCount).AsQueryable(); // Act - IPagedList pagedList = queryable.ToPagedList(index, pageSize); - - // Assert - Assert.AreEqual(index, pagedList.PageIndex); - Assert.AreEqual(pageSize, pagedList.PageSize); + IPagedList pagedList = queryable.ToPagedList(index, pageSize); + + Assert.Multiple(() => + { + // Assert + Assert.That(pagedList.PageIndex, Is.EqualTo(index)); + Assert.That(pagedList.PageSize, Is.EqualTo(pageSize)); + }); } } } diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Core/Collections/SharedDictionaryTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Core/Collections/SharedDictionaryTests.cs index c83b256de6f..91573aa3b64 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Core/Collections/SharedDictionaryTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Core/Collections/SharedDictionaryTests.cs @@ -43,7 +43,7 @@ public void TryAdd() } } - CollectionAssert.AreEqual(new Dictionary { { KEY, VALUE } }, sharedDictionary.BackingDictionary); + Assert.That(sharedDictionary.BackingDictionary, Is.EqualTo(new Dictionary { { KEY, VALUE } }).AsCollection); } [Test] @@ -104,7 +104,7 @@ public void WriteLockEnablesRead() actualValue = d["key"]; } - Assert.AreEqual("value", actualValue); + Assert.That(actualValue, Is.EqualTo("value")); } [Test] @@ -157,7 +157,7 @@ public void TwoDictsShareALockWriteTest() } catch (Exception exception) { - Assert.Fail("Expected LockRecursionException, got {0}", exception); + Assert.Fail($"Expected LockRecursionException, got {exception}"); } finally { diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Core/Collections/SharedListTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Core/Collections/SharedListTests.cs index 971219c00b9..34a6d203dab 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Core/Collections/SharedListTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Core/Collections/SharedListTests.cs @@ -42,7 +42,7 @@ public void TryAdd() } } - CollectionAssert.AreEqual(new List { value }, sharedList.BackingList); + Assert.That(sharedList.BackingList, Is.EqualTo(new List { value }).AsCollection); } [Test] @@ -103,7 +103,7 @@ public void WriteLockEnablesRead() actualValue = sharedList[0]; } - Assert.AreEqual("value", actualValue); + Assert.That(actualValue, Is.EqualTo("value")); } [Test] diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Core/Common/NavigationManagerTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Core/Common/NavigationManagerTests.cs index 0267a9ed44e..9c09664479f 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Core/Common/NavigationManagerTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Core/Common/NavigationManagerTests.cs @@ -122,8 +122,8 @@ public void NavigateUrlTest() var expected = string.Format(DefaultURLPattern, TabID); var actual = this.navigationManager.NavigateURL(); - Assert.IsNotNull(actual); - Assert.AreEqual(expected, actual); + Assert.That(actual, Is.Not.Null); + Assert.That(actual, Is.EqualTo(expected)); } [TestCase(1)] @@ -142,8 +142,8 @@ public void NavigateUrl_CustomTabID(int tabId) var expected = string.Format(DefaultURLPattern, tabId); var actual = this.navigationManager.NavigateURL(tabId); - Assert.IsNotNull(actual); - Assert.AreEqual(expected, actual); + Assert.That(actual, Is.Not.Null); + Assert.That(actual, Is.EqualTo(expected)); } [Test] @@ -153,8 +153,8 @@ public void NavigateUrl_CustomTab_NotSuperTab() var expected = string.Format(DefaultURLPattern, customTabId); var actual = this.navigationManager.NavigateURL(customTabId, false); - Assert.IsNotNull(actual); - Assert.AreEqual(expected, actual); + Assert.That(actual, Is.Not.Null); + Assert.That(actual, Is.EqualTo(expected)); } [TestCase(1)] @@ -173,8 +173,8 @@ public void NavigateUrl_CustomTab_IsSuperTab(int tabId) var expected = string.Format(DefaultURLPattern, tabId) + string.Format(DefaultSuperTabPattern, PortalID); var actual = this.navigationManager.NavigateURL(tabId, true); - Assert.IsNotNull(actual); - Assert.AreEqual(expected, actual); + Assert.That(actual, Is.Not.Null); + Assert.That(actual, Is.EqualTo(expected)); } [Test] @@ -193,8 +193,8 @@ public void NavigateUrl_ControlKey() var expected = string.Format(DefaultURLPattern, TabID) + string.Format(ControlKeyPattern, controlKey); var actual = this.navigationManager.NavigateURL(controlKey); - Assert.IsNotNull(actual); - Assert.AreEqual(expected, actual); + Assert.That(actual, Is.Not.Null); + Assert.That(actual, Is.EqualTo(expected)); } [Test] @@ -204,8 +204,8 @@ public void NavigateUrl_ControlKey_EmptyAdditionalParameter() var expected = string.Format(DefaultURLPattern, TabID) + string.Format(ControlKeyPattern, controlKey); var actual = this.navigationManager.NavigateURL(controlKey, new string[0]); - Assert.IsNotNull(actual); - Assert.AreEqual(expected, actual); + Assert.That(actual, Is.Not.Null); + Assert.That(actual, Is.EqualTo(expected)); } [Test] @@ -218,8 +218,8 @@ public void NavigateUrl_ControlKey_SingleAdditionalParameter() $"&{parameters[0]}"; var actual = this.navigationManager.NavigateURL(controlKey, parameters); - Assert.IsNotNull(actual); - Assert.AreEqual(expected, actual); + Assert.That(actual, Is.Not.Null); + Assert.That(actual, Is.EqualTo(expected)); } [TestCase(2)] @@ -245,8 +245,8 @@ public void NavigateUrl_ControlKey_MultipleAdditionalParameter(int count) parameters.Select(s => $"&{s}").Aggregate((x, y) => $"{x}{y}"); var actual = this.navigationManager.NavigateURL(controlKey, parameters); - Assert.IsNotNull(actual); - Assert.AreEqual(expected, actual); + Assert.That(actual, Is.Not.Null); + Assert.That(actual, Is.EqualTo(expected)); } [TestCase(1)] @@ -266,8 +266,8 @@ public void NavigateUrl_TabID_ControlKey(int tabId) var expected = string.Format(DefaultURLPattern, tabId) + string.Format(ControlKeyPattern, controlKey); var actual = this.navigationManager.NavigateURL(tabId, controlKey); - Assert.IsNotNull(actual); - Assert.AreEqual(expected, actual); + Assert.That(actual, Is.Not.Null); + Assert.That(actual, Is.EqualTo(expected)); } [TestCase(1)] @@ -286,8 +286,8 @@ public void NavigateUrl_TabID_EmptyControlKey(int tabId) var expected = string.Format(DefaultURLPattern, tabId); var actual = this.navigationManager.NavigateURL(tabId, string.Empty); - Assert.IsNotNull(actual); - Assert.AreEqual(expected, actual); + Assert.That(actual, Is.Not.Null); + Assert.That(actual, Is.EqualTo(expected)); } [TestCase(1)] @@ -306,8 +306,8 @@ public void NavigateUrl_TabID_NullControlKey(int tabId) var expected = string.Format(DefaultURLPattern, tabId); var actual = this.navigationManager.NavigateURL(tabId, string.Empty); - Assert.IsNotNull(actual); - Assert.AreEqual(expected, actual); + Assert.That(actual, Is.Not.Null); + Assert.That(actual, Is.EqualTo(expected)); } [TestCase(0, "My-Control-Key-0")] @@ -340,8 +340,8 @@ public void NavigateUrl_TabID_ControlKey_Parameter(int count, string controlKey) var actual = this.navigationManager.NavigateURL(customTabId, controlKey, parameters); - Assert.IsNotNull(actual); - Assert.AreEqual(expected, actual); + Assert.That(actual, Is.Not.Null); + Assert.That(actual, Is.EqualTo(expected)); } [TestCase(0, "My-Control-Key-0")] @@ -362,8 +362,8 @@ public void NavigateUrl_TabID_ControlKey_NullParameter(int tabId, string control var actual = this.navigationManager.NavigateURL(tabId, controlKey, null); - Assert.IsNotNull(actual); - Assert.AreEqual(expected, actual); + Assert.That(actual, Is.Not.Null); + Assert.That(actual, Is.EqualTo(expected)); } [TestCase(0, "My-Control-Key-0")] @@ -384,8 +384,8 @@ public void NavigateUrl_TabId_NullSettings_ControlKey(int tabId, string controlK var actual = this.navigationManager.NavigateURL(tabId, default(IPortalSettings), controlKey, null); - Assert.IsNotNull(actual); - Assert.AreEqual(expected, actual); + Assert.That(actual, Is.Not.Null); + Assert.That(actual, Is.EqualTo(expected)); } [TestCase(0, "My-Control-Key-0")] @@ -412,8 +412,8 @@ public void NavigateUrl_TabId_Settings_ControlKey(int tabId, string controlKey) var actual = this.navigationManager.NavigateURL(tabId, mockSettings.Object, controlKey, null); - Assert.IsNotNull(actual); - Assert.AreEqual(expected, actual); + Assert.That(actual, Is.Not.Null); + Assert.That(actual, Is.EqualTo(expected)); } } } diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Core/Common/UrlUtilsTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Core/Common/UrlUtilsTests.cs index fde0822bcdc..5dcfc714fc7 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Core/Common/UrlUtilsTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Core/Common/UrlUtilsTests.cs @@ -46,21 +46,21 @@ public static void OneTimeSetUp() public void CombineEmptyBase() { var result = UrlUtils.Combine(string.Empty, "a/b/c"); - Assert.AreEqual("a/b/c", result); + Assert.That(result, Is.EqualTo("a/b/c")); } [Test] public void CombineEmptyRelative() { var result = UrlUtils.Combine("/a/b/c", string.Empty); - Assert.AreEqual("/a/b/c", result); + Assert.That(result, Is.EqualTo("/a/b/c")); } [Test] public void CombineRelativeWithBaseTrimsSlashes() { var result = UrlUtils.Combine("/a/b/c/", "/d/e/f/"); - Assert.AreEqual("/a/b/c/d/e/f/", result); + Assert.That(result, Is.EqualTo("/a/b/c/d/e/f/")); } [Test] @@ -69,14 +69,14 @@ public void DecodeParameterHandlesRoundTrip() const string input = "DNN Platform!"; var encodedValue = UrlUtils.EncodeParameter(input); var result = UrlUtils.DecodeParameter(encodedValue); - Assert.AreEqual(input, result); + Assert.That(result, Is.EqualTo(input)); } [Test] public void DecodeParameterHandlesSpecialCharacters() { var result = UrlUtils.DecodeParameter("RE5_O1-$"); - Assert.AreEqual("DN;_", result); + Assert.That(result, Is.EqualTo("DN;_")); } [Test] @@ -86,87 +86,87 @@ public void DecryptParameterHandlesRoundTrip() var key = Guid.NewGuid().ToString(); var encodedValue = UrlUtils.EncryptParameter(input, key); var result = UrlUtils.DecryptParameter(encodedValue, key); - Assert.AreEqual(input, result); + Assert.That(result, Is.EqualTo(input)); } [Test] public void EncodeParameterReplacesPaddingSymbols() { var result = UrlUtils.EncodeParameter("D"); - Assert.AreEqual("RA$$", result); + Assert.That(result, Is.EqualTo("RA$$")); } [Test] public void EncryptParameterReplacesPaddingSymbols() { var result = UrlUtils.EncryptParameter("D", "key"); - Assert.IsTrue(result.EndsWith("%3d")); + Assert.That(result.EndsWith("%3d"), Is.True); } [Test] public void GetParameterNameReturnsName() { var result = UrlUtils.GetParameterName("key=value"); - Assert.AreEqual("key", result); + Assert.That(result, Is.EqualTo("key")); } [Test] public void GetParameterNameReturnsEntireStringIfNoEqualsSign() { var result = UrlUtils.GetParameterName("just-a-key"); - Assert.AreEqual("just-a-key", result); + Assert.That(result, Is.EqualTo("just-a-key")); } [Test] public void GetParameterNameReturnsEmptyIfStartsWithEqualsSign() { var result = UrlUtils.GetParameterName("=just-a-value"); - Assert.AreEqual(string.Empty, result); + Assert.That(result, Is.EqualTo(string.Empty)); } [Test] public void GetParameterValueReturnsName() { var result = UrlUtils.GetParameterValue("key=value"); - Assert.AreEqual("value", result); + Assert.That(result, Is.EqualTo("value")); } [Test] public void GetParameterValueReturnsEmptyStringIfNoEqualsSign() { var result = UrlUtils.GetParameterValue("just-a-key"); - Assert.AreEqual(string.Empty, result); + Assert.That(result, Is.EqualTo(string.Empty)); } [Test] public void GetParameterValueReturnsEntireStringIfStartsWithEqualsSign() { var result = UrlUtils.GetParameterValue("=just-a-value"); - Assert.AreEqual("just-a-value", result); + Assert.That(result, Is.EqualTo("just-a-value")); } [Test] public void ClosePopUpGeneratesAJavaScriptUrlWithValues() { var result = UrlUtils.ClosePopUp(false, "/hello", false); - Assert.AreEqual("""javascript:dnnModal.closePopUp(false, "/hello")""", result); + Assert.That(result, Is.EqualTo("""javascript:dnnModal.closePopUp(false, "/hello")""")); result = UrlUtils.ClosePopUp(true, "blah", false); - Assert.AreEqual("""javascript:dnnModal.closePopUp(true, "blah")""", result); + Assert.That(result, Is.EqualTo("""javascript:dnnModal.closePopUp(true, "blah")""")); } [Test] public void ClosePopUpGeneratesAScriptWhenOnClickEventIsTrue() { var result = UrlUtils.ClosePopUp(false, "/somewhere", true); - Assert.AreEqual("""dnnModal.closePopUp(false, "/somewhere")""", result); + Assert.That(result, Is.EqualTo("""dnnModal.closePopUp(false, "/somewhere")""")); } [Test] public void ClosePopUpEncodesUrlParameter() { var result = UrlUtils.ClosePopUp(false, "/somewhere?value=%20hi&two='hey'", true); - Assert.AreEqual("""dnnModal.closePopUp(false, "/somewhere?value=%20hi\u0026two=\u0027hey\u0027")""", result); + Assert.That(result, Is.EqualTo("""dnnModal.closePopUp(false, "/somewhere?value=%20hi\u0026two=\u0027hey\u0027")""")); } [Test] @@ -175,7 +175,7 @@ public void ReplaceQSParamReplacesUnfriendlyParam() HostSettings["UseFriendlyUrls"] = new ConfigurationSetting { Key = "UseFriendlyUrls", Value = "false", }; var result = UrlUtils.ReplaceQSParam("/somewhere?value=hi&two=hey", "two", "what"); - Assert.AreEqual("/somewhere?value=hi&two=what", result); + Assert.That(result, Is.EqualTo("/somewhere?value=hi&two=what")); } [Test] @@ -184,7 +184,7 @@ public void ReplaceQSParamReplacesFriendlyParam() HostSettings["UseFriendlyUrls"] = new ConfigurationSetting { Key = "UseFriendlyUrls", Value = "true", }; var result = UrlUtils.ReplaceQSParam("/somewhere/value/hi/two/hey/", "two", "what"); - Assert.AreEqual("/somewhere/value/hi/two/what/", result); + Assert.That(result, Is.EqualTo("/somewhere/value/hi/two/what/")); } [Test] @@ -193,7 +193,7 @@ public void ReplaceQSParamHandlesSpecialCharacters() HostSettings["UseFriendlyUrls"] = new ConfigurationSetting { Key = "UseFriendlyUrls", Value = "false", }; var result = UrlUtils.ReplaceQSParam("/somewhere?one.two=three$four&one_two=123", "one.two", "four$3"); - Assert.AreEqual("/somewhere?one.two=four$3&one_two=123", result); + Assert.That(result, Is.EqualTo("/somewhere?one.two=four$3&one_two=123")); } [Test] @@ -202,7 +202,7 @@ public void StripQSParamRemovesUnfriendlyParam() HostSettings["UseFriendlyUrls"] = new ConfigurationSetting { Key = "UseFriendlyUrls", Value = "false", }; var result = UrlUtils.StripQSParam("/somewhere?value=hi&two=hey&three=x", "two"); - Assert.AreEqual("/somewhere?value=hi&three=x", result); + Assert.That(result, Is.EqualTo("/somewhere?value=hi&three=x")); } [Test] @@ -211,7 +211,7 @@ public void StripQSParamRemovesFriendlyParam() HostSettings["UseFriendlyUrls"] = new ConfigurationSetting { Key = "UseFriendlyUrls", Value = "true", }; var result = UrlUtils.StripQSParam("/somewhere/value/hi/two/hey/", "two"); - Assert.AreEqual("/somewhere/value/hi/", result); + Assert.That(result, Is.EqualTo("/somewhere/value/hi/")); } [Test] @@ -220,35 +220,35 @@ public void StripQSParamHandlesSpecialCharacters() HostSettings["UseFriendlyUrls"] = new ConfigurationSetting { Key = "UseFriendlyUrls", Value = "false", }; var result = UrlUtils.StripQSParam("/somewhere?one.two=three$four&one_two=123", "one.two"); - Assert.AreEqual("/somewhere?one_two=123", result); + Assert.That(result, Is.EqualTo("/somewhere?one_two=123")); } [Test] public void ValidateReturnUrlReturnsNullWhenInputIsNull() { var result = UrlUtils.ValidReturnUrl(null); - Assert.IsNull(result); + Assert.That(result, Is.Null); } [Test] public void ValidateReturnUrlReturnsEmptyWhenInputIsEmpty() { var result = UrlUtils.ValidReturnUrl(string.Empty); - Assert.IsEmpty(result); + Assert.That(result, Is.Empty); } [Test] public void ValidateReturnUrlDoesNotAcceptDataUrl() { var result = UrlUtils.ValidReturnUrl("data:text/plain,I am text file"); - Assert.IsEmpty(result); + Assert.That(result, Is.Empty); } [Test] public void ValidateReturnUrlDoesNotAcceptXssAttack() { var result = UrlUtils.ValidReturnUrl("/return?onclick=alert()"); - Assert.IsEmpty(result); + Assert.That(result, Is.Empty); } [Test] @@ -263,7 +263,7 @@ public void ValidateReturnUrlDoesNotAcceptAbsoluteUrlWithoutMatchingDomain() PortalController.SetTestableInstance(portalControllerMock.Object); var result = UrlUtils.ValidReturnUrl("https://another.evil/return"); - Assert.IsEmpty(result); + Assert.That(result, Is.Empty); } [Test] @@ -278,7 +278,7 @@ public void ValidateReturnUrlDoesAcceptAbsoluteUrlWithMatchingDomain() PortalController.SetTestableInstance(portalControllerMock.Object); var result = UrlUtils.ValidReturnUrl("https://dnncommunity.org/return"); - Assert.AreEqual("https://dnncommunity.org/return", result); + Assert.That(result, Is.EqualTo("https://dnncommunity.org/return")); } [Test] @@ -293,7 +293,7 @@ public void ValidateReturnUrlDoesNotAcceptAbsoluteUrlWithoutProtocolWhenDomainDo PortalController.SetTestableInstance(portalControllerMock.Object); var result = UrlUtils.ValidReturnUrl("/////dnncommunity.net/return"); - Assert.IsEmpty(result); + Assert.That(result, Is.Empty); } [Test] @@ -308,20 +308,20 @@ public void ValidateReturnUrlAcceptsAbsoluteUrlWithoutProtocolWhenDomainDoesMatc PortalController.SetTestableInstance(portalControllerMock.Object); var result = UrlUtils.ValidReturnUrl("/////dnncommunity.org/return"); - Assert.AreEqual("//dnncommunity.org/return", result); + Assert.That(result, Is.EqualTo("//dnncommunity.org/return")); } [Test] public void IsPopUpIsTrueWhenPopUpParameterIsOnUrl() { var result = UrlUtils.IsPopUp("/page?popUp=true"); - Assert.IsTrue(result); + Assert.That(result, Is.True); } [Test] public void IsPopUpIsFalseWhenPopUpParameterIsNotOnUrl() { var result = UrlUtils.IsPopUp("/page"); - Assert.IsFalse(result); + Assert.That(result, Is.False); } } diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Core/ComponentModel/ComponentFactoryTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Core/ComponentModel/ComponentFactoryTests.cs index 12db2feaaf5..fc85d7c2111 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Core/ComponentModel/ComponentFactoryTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Core/ComponentModel/ComponentFactoryTests.cs @@ -73,7 +73,7 @@ public void DNNPRO_13443_ComponentFactory_DuplicatedInsert() // Assert var retreivedComponent = ComponentFactory.GetComponent(); - Assert.AreEqual(testComp1, retreivedComponent); + Assert.That(retreivedComponent, Is.EqualTo(testComp1)); } } } diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Core/ComponentModel/SimpleContainerTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Core/ComponentModel/SimpleContainerTests.cs index a1744b1bf84..329b7f14257 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Core/ComponentModel/SimpleContainerTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Core/ComponentModel/SimpleContainerTests.cs @@ -23,7 +23,7 @@ public void GetComponenetListSupportsInterfaces() var retrieved = container.GetComponentList(typeof(IList)); - CollectionAssert.AreEqual(new List { "payload" }, retrieved); + Assert.That(retrieved, Is.EqualTo(new List { "payload" }).AsCollection); } [Test] @@ -34,7 +34,7 @@ public void RegisterComponentInstance_Must_Register_In_ComponentsList() container.RegisterComponentInstance("test", typeof(IList), new List()); - Assert.Contains("test", ComponentFactory.GetComponents>().Keys); + Assert.That(ComponentFactory.GetComponents>().Keys, Does.Contain("test")); } } } diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Core/Controllers/Host/HostControllerTest.cs b/DNN Platform/Tests/DotNetNuke.Tests.Core/Controllers/Host/HostControllerTest.cs index b0fb3663874..a14eca1ddf7 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Core/Controllers/Host/HostControllerTest.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Core/Controllers/Host/HostControllerTest.cs @@ -103,9 +103,12 @@ public void HostController_GetSettings_GetList() // Assert foreach (var currentConfig in settingsDic) { - Assert.AreEqual(currentConfig.Key, currentConfig.Value.Key); - Assert.AreEqual(expectedDic[currentConfig.Key].Value, currentConfig.Value.Value); - Assert.AreEqual(expectedDic[currentConfig.Key].IsSecure, currentConfig.Value.IsSecure); + Assert.Multiple(() => + { + Assert.That(currentConfig.Value.Key, Is.EqualTo(currentConfig.Key)); + Assert.That(currentConfig.Value.Value, Is.EqualTo(expectedDic[currentConfig.Key].Value)); + Assert.That(currentConfig.Value.IsSecure, Is.EqualTo(expectedDic[currentConfig.Key].IsSecure)); + }); } } @@ -121,7 +124,7 @@ public void HostController_GetSettingsDictionary_GetList() var settingsDic = HostController.Instance.GetSettingsDictionary(); // Assert - CollectionAssert.AreEquivalent(expectedDic.Values, settingsDic.Values); + Assert.That(settingsDic.Values, Is.EquivalentTo(expectedDic.Values)); } [Test] @@ -288,8 +291,8 @@ public void HostController_Update_NewValue_Dont_Reset_Cache() public void HostController_GetString_If_Key_Exists(string key) { - Assert.AreEqual(HostController.Instance.GetString(key), this.GetValue(key)); - Assert.AreEqual(HostController.Instance.GetString(key, "Hello Default"), this.GetValue(key)); + Assert.That(this.GetValue(key), Is.EqualTo(HostController.Instance.GetString(key))); + Assert.That(this.GetValue(key), Is.EqualTo(HostController.Instance.GetString(key, "Hello Default"))); } [Test] @@ -298,7 +301,7 @@ public void HostController_GetString_If_Key_Exists(string key) public void HostController_GetString_InvalidKey_Returns_Null_Value(string key) { - Assert.AreEqual(HostController.Instance.GetString(key), Null.NullString); + Assert.That(Null.NullString, Is.EqualTo(HostController.Instance.GetString(key))); } [Test] @@ -307,7 +310,7 @@ public void HostController_GetString_InvalidKey_Returns_Null_Value(string key) public void HostController_GetString_InvalidKey_Returns_Default_Value(string key) { - Assert.AreEqual(HostController.Instance.GetString(key, "Hello Default"), "Hello Default"); + Assert.That(HostController.Instance.GetString(key, "Hello Default"), Is.EqualTo("Hello Default")); } [Test] @@ -326,8 +329,8 @@ public void HostController_GetString_NullEmpty(string key) public void HostController_GetInteger_If_Key_Exists(string key) { int s = HostController.Instance.GetInteger(key); - Assert.AreEqual(s.ToString(), this.GetValue(key)); - Assert.AreEqual(HostController.Instance.GetInteger(key, 12).ToString(), this.GetValue(key)); + Assert.That(this.GetValue(key), Is.EqualTo(s.ToString())); + Assert.That(this.GetValue(key), Is.EqualTo(HostController.Instance.GetInteger(key, 12).ToString())); } [Test] @@ -336,7 +339,7 @@ public void HostController_GetInteger_If_Key_Exists(string key) public void HostController_GetInteger_InvalidKey_Returns_Null_Value(string key) { - Assert.AreEqual(HostController.Instance.GetInteger(key), Null.NullInteger); + Assert.That(Null.NullInteger, Is.EqualTo(HostController.Instance.GetInteger(key))); } [Test] @@ -345,7 +348,7 @@ public void HostController_GetInteger_InvalidKey_Returns_Null_Value(string key) public void HostController_GetInteger_InvalidKey_Returns_Default_Value(string key) { - Assert.AreEqual(HostController.Instance.GetInteger(key, 6969), 6969); + Assert.That(HostController.Instance.GetInteger(key, 6969), Is.EqualTo(6969)); } [Test] @@ -363,9 +366,9 @@ public void HostController_GetInteger_NullEmpty(string key) public void HostController_GetBoolean_If_Key_Exists(string key) { - Assert.AreEqual(HostController.Instance.GetBoolean(key).ToString(), this.GetValue(key)); - Assert.AreEqual(HostController.Instance.GetBoolean(key, false).ToString(), this.GetValue(key)); - Assert.AreEqual(HostController.Instance.GetBoolean(key, true).ToString(), this.GetValue(key)); + Assert.That(this.GetValue(key), Is.EqualTo(HostController.Instance.GetBoolean(key).ToString())); + Assert.That(this.GetValue(key), Is.EqualTo(HostController.Instance.GetBoolean(key, false).ToString())); + Assert.That(this.GetValue(key), Is.EqualTo(HostController.Instance.GetBoolean(key, true).ToString())); } [Test] @@ -374,7 +377,7 @@ public void HostController_GetBoolean_If_Key_Exists(string key) public void HostController_GetBoolean_InvalidKey_Returns_Null_Value(string key) { - Assert.AreEqual(HostController.Instance.GetBoolean(key), Null.NullBoolean); + Assert.That(Null.NullBoolean, Is.EqualTo(HostController.Instance.GetBoolean(key))); } [Test] @@ -383,8 +386,11 @@ public void HostController_GetBoolean_InvalidKey_Returns_Null_Value(string key) public void HostController_GetBoolean_InvalidKey_Returns_Default_Value(string key) { - Assert.AreEqual(HostController.Instance.GetBoolean(key, true), true); - Assert.AreEqual(HostController.Instance.GetBoolean(key, false), false); + Assert.Multiple(() => + { + Assert.That(HostController.Instance.GetBoolean(key, true), Is.EqualTo(true)); + Assert.That(HostController.Instance.GetBoolean(key, false), Is.EqualTo(false)); + }); } [Test] @@ -403,8 +409,8 @@ public void HostController_GetBoolean_NullEmpty(string key) public void HostController_GetDouble_If_Key_Exists(string key) { double s = HostController.Instance.GetDouble(key); - Assert.AreEqual(s.ToString(), this.GetValue(key)); - Assert.AreEqual(HostController.Instance.GetDouble(key, 54.54).ToString(), this.GetValue(key)); + Assert.That(this.GetValue(key), Is.EqualTo(s.ToString())); + Assert.That(this.GetValue(key), Is.EqualTo(HostController.Instance.GetDouble(key, 54.54).ToString())); } [Test] @@ -413,7 +419,7 @@ public void HostController_GetDouble_If_Key_Exists(string key) public void HostController_GetDouble_InvalidKey_Returns_Null_Value(string key) { - Assert.AreEqual(HostController.Instance.GetDouble(key), Null.NullDouble); + Assert.That(Null.NullDouble, Is.EqualTo(HostController.Instance.GetDouble(key))); } [Test] @@ -422,7 +428,7 @@ public void HostController_GetDouble_InvalidKey_Returns_Null_Value(string key) public void HostController_GetDouble_InvalidKey_Returns_Default_Value(string key) { - Assert.AreEqual(HostController.Instance.GetDouble(key, 21.58), 21.58); + Assert.That(HostController.Instance.GetDouble(key, 21.58), Is.EqualTo(21.58)); } [Test] diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Core/Controllers/Messaging/MessagingControllerTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Core/Controllers/Messaging/MessagingControllerTests.cs index ecd41705e57..4e14a828276 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Core/Controllers/Messaging/MessagingControllerTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Core/Controllers/Messaging/MessagingControllerTests.cs @@ -140,7 +140,7 @@ public void AttachmentsAllowed_Returns_True_When_MessagingAllowAttachments_Setti { this._mockMessagingController.Setup(mc => mc.GetPortalSetting("MessagingAllowAttachments", Constants.CONTENT_ValidPortalId, "YES")).Returns("YES"); var result = this._mockInternalMessagingController.Object.AttachmentsAllowed(Constants.CONTENT_ValidPortalId); - Assert.IsTrue(result); + Assert.That(result, Is.True); } [Test] @@ -148,7 +148,7 @@ public void IncludeAttachments_Returns_True_When_MessagingIncludeAttachments_Set { this._mockMessagingController.Setup(mc => mc.GetPortalSetting("MessagingAllowAttachments", Constants.CONTENT_ValidPortalId, "YES")).Returns("YES"); var result = this._mockInternalMessagingController.Object.IncludeAttachments(Constants.CONTENT_ValidPortalId); - Assert.IsTrue(result); + Assert.That(result, Is.True); } [Test] @@ -156,7 +156,7 @@ public void AttachmentsAllowed_Returns_False_When_MessagingAllowAttachments_Sett { this._mockInternalMessagingController.Setup(mc => mc.GetPortalSetting("MessagingAllowAttachments", Constants.CONTENT_ValidPortalId, "YES")).Returns("NO"); var result = this._mockInternalMessagingController.Object.AttachmentsAllowed(Constants.CONTENT_ValidPortalId); - Assert.IsFalse(result); + Assert.That(result, Is.False); } [Test] @@ -344,7 +344,7 @@ public void RecipientLimit_Returns_MessagingRecipientLimit_Setting() var actual = this._mockInternalMessagingController.Object.RecipientLimit(Constants.CONTENT_ValidPortalId); - Assert.AreEqual(expected, actual); + Assert.That(actual, Is.EqualTo(expected)); } [Test] @@ -564,11 +564,14 @@ public void MessagingController_Filters_Input_When_ProfanityFilter_Is_Enabled() this._mockInternalMessagingController.Setup(ims => ims.GetMessageRecipient(It.IsAny(), It.IsAny())).Returns((MessageRecipient)null); // Act - this._mockMessagingController.Object.SendMessage(message, new List { role }, new List { user }, null, this._adminUserInfo); - - // Assert - Assert.AreEqual("subject_filtered", message.Subject); - Assert.AreEqual("body_filtered", message.Body); + this._mockMessagingController.Object.SendMessage(message, new List { role }, new List { user }, null, this._adminUserInfo); + + Assert.Multiple(() => + { + // Assert + Assert.That(message.Subject, Is.EqualTo("subject_filtered")); + Assert.That(message.Body, Is.EqualTo("body_filtered")); + }); } [Test] @@ -634,7 +637,7 @@ public void MessagingController_CreateMessage_Trims_Comma_For_One_User() messagingController.SendMessage(message, new List(), new List { user }, null, sender); // Assert - Assert.AreEqual(message.To, Constants.USER_TenName); + Assert.That(message.To, Is.EqualTo(Constants.USER_TenName)); } [Test] @@ -666,7 +669,7 @@ public void MessagingController_CreateMessage_Trims_Comma_For_Two_Users() messagingController.SendMessage(message, new List(), new List { user10, user11 }, null, sender); // Assert - Assert.AreEqual(message.To, Constants.USER_TenName + "," + Constants.USER_ElevenName); + Assert.That(message.To, Is.EqualTo(Constants.USER_TenName + "," + Constants.USER_ElevenName)); } [Test] @@ -686,7 +689,7 @@ public void MessagingController_CreateMessage_Trims_Comma_For_One_Role() this._mockMessagingController.Object.SendMessage(message, new List { role }, new List(), null, this._adminUserInfo); // Assert - Assert.AreEqual(message.To, Constants.RoleName_Administrators); + Assert.That(message.To, Is.EqualTo(Constants.RoleName_Administrators)); } [Test] @@ -707,7 +710,7 @@ public void MessagingController_CreateMessage_Trims_Comma_For_Two_Roles() this._mockMessagingController.Object.SendMessage(message, new List { role1, role2 }, new List(), null, this._adminUserInfo); // Assert - Assert.AreEqual(message.To, Constants.RoleName_Administrators + "," + Constants.RoleName_Subscribers); + Assert.That(message.To, Is.EqualTo(Constants.RoleName_Administrators + "," + Constants.RoleName_Subscribers)); } [Test] @@ -909,7 +912,7 @@ public void MessagingController_CreateMessage_Sets_ReplyAll_To_False_On_Passing_ this._mockMessagingController.Object.SendMessage(message, new List { role }, new List { user }, new List { Constants.FOLDER_ValidFileId }, this._adminUserInfo); // Assert - Assert.AreEqual(message.ReplyAllAllowed, false); + Assert.That(message.ReplyAllAllowed, Is.EqualTo(false)); } [Test] @@ -937,7 +940,7 @@ public void MessagingController_CreateMessage_Sets_ReplyAll_To_True_On_Passing_U messagingController.SendMessage(message, new List(), new List { user }, new List { Constants.FOLDER_ValidFileId }, this._adminUserInfo); // Assert - Assert.AreEqual(message.ReplyAllAllowed, true); + Assert.That(message.ReplyAllAllowed, Is.EqualTo(true)); } [Test] @@ -1265,7 +1268,7 @@ public void WaitTimeForNextMessage_Returns_Zero_When_MessagingThrottlingInterval var result = this._mockInternalMessagingController.Object.WaitTimeForNextMessage(this._user12UserInfo); - Assert.AreEqual(0, result); + Assert.That(result, Is.EqualTo(0)); } [Test] @@ -1279,7 +1282,7 @@ public void WaitTimeForNextMessage_Returns_Zero_When_Sender_Is_Admin_Or_Host() var result = this._mockInternalMessagingController.Object.WaitTimeForNextMessage(this._adminUserInfo); - Assert.AreEqual(0, result); + Assert.That(result, Is.EqualTo(0)); } [Test] @@ -1295,7 +1298,7 @@ public void WaitTimeForNextMessage_Returns_Zero_When_The_User_Has_No_Previous_Co var result = this._mockInternalMessagingController.Object.WaitTimeForNextMessage(this._user12UserInfo); - Assert.AreEqual(0, result); + Assert.That(result, Is.EqualTo(0)); } [Test] @@ -1319,7 +1322,7 @@ public void WaitTimeForNextMessage_Returns_The_Number_Of_Seconds_Since_Last_Mess this._mockInternalMessagingController.Setup(mc => mc.GetDateTimeNow()).Returns(actualDate); var result = this._mockInternalMessagingController.Object.WaitTimeForNextMessage(this._user12UserInfo); - Assert.AreEqual(expected, result); + Assert.That(result, Is.EqualTo(expected)); } [Test] diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Core/Controllers/Messaging/NotificationsControllerTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Core/Controllers/Messaging/NotificationsControllerTests.cs index fe1a2f70ee3..6c208c5921b 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Core/Controllers/Messaging/NotificationsControllerTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Core/Controllers/Messaging/NotificationsControllerTests.cs @@ -145,7 +145,7 @@ public void CreateNotificationType_Returns_Object_With_Valid_TimeToLive(int actu notificationType.TimeToLive = actualTimeToLive; this._notificationsController.CreateNotificationType(notificationType); - Assert.AreEqual(expectedTimeToLiveTotalMinutes, (int)notificationType.TimeToLive.TotalMinutes); + Assert.That((int)notificationType.TimeToLive.TotalMinutes, Is.EqualTo(expectedTimeToLiveTotalMinutes)); } [Test] @@ -167,7 +167,7 @@ public void CreateNotificationType_Makes_Valid_Object() var actualNotificationType = CreateNewNotificationType(); this._mockNotificationsController.Object.CreateNotificationType(actualNotificationType); - Assert.IsTrue(new NotificationTypeComparer().Equals(expectedNotificationType, actualNotificationType)); + Assert.That(new NotificationTypeComparer().Equals(expectedNotificationType, actualNotificationType), Is.True); } [Test] @@ -239,7 +239,7 @@ public void GetNotificationType_By_Id_Returns_Valid_Object() var actualNotificationType = this._notificationsController.GetNotificationType(Constants.Messaging_NotificationTypeId); - Assert.IsTrue(new NotificationTypeComparer().Equals(expectedNotificationType, actualNotificationType)); + Assert.That(new NotificationTypeComparer().Equals(expectedNotificationType, actualNotificationType), Is.True); } [Test] @@ -300,7 +300,7 @@ public void GetNotificationType_By_Name_Returns_Valid_Object() var actualNotificationType = this._notificationsController.GetNotificationType(Constants.Messaging_NotificationTypeName); - Assert.IsTrue(new NotificationTypeComparer().Equals(expectedNotificationType, actualNotificationType)); + Assert.That(new NotificationTypeComparer().Equals(expectedNotificationType, actualNotificationType), Is.True); } [Test] @@ -391,7 +391,7 @@ public void SetNotificationTypeActions_Sets_NotificationTypeActionId_And_Notific var action = CreateNewNotificationTypeAction(); this._mockNotificationsController.Object.SetNotificationTypeActions(new[] { action }, expectedNotificationTypeAction.NotificationTypeId); - Assert.IsTrue(new NotificationTypeActionComparer().Equals(expectedNotificationTypeAction, action)); + Assert.That(new NotificationTypeActionComparer().Equals(expectedNotificationTypeAction, action), Is.True); } [Test] @@ -463,7 +463,7 @@ public void GetNotificationTypeAction_By_Id_Returns_Valid_Object() var actualNotificationTypeAction = this._notificationsController.GetNotificationTypeAction(Constants.Messaging_NotificationTypeActionId); - Assert.IsTrue(new NotificationTypeActionComparer().Equals(expectedNotificationTypeAction, actualNotificationTypeAction)); + Assert.That(new NotificationTypeActionComparer().Equals(expectedNotificationTypeAction, actualNotificationTypeAction), Is.True); } [Test] @@ -530,7 +530,7 @@ public void GetNotificationTypeAction_By_Name_Returns_Valid_Object() var actualNotificationTypeAction = this._notificationsController.GetNotificationTypeAction(Constants.Messaging_NotificationTypeId, Constants.Messaging_NotificationTypeActionNameResourceKey); - Assert.IsTrue(new NotificationTypeActionComparer().Equals(expectedNotificationTypeAction, actualNotificationTypeAction)); + Assert.That(new NotificationTypeActionComparer().Equals(expectedNotificationTypeAction, actualNotificationTypeAction), Is.True); } [Test] @@ -568,8 +568,11 @@ public void GetNotificationTypeActions_Returns_Valid_Object() var actualNotificationTypeActions = this._notificationsController.GetNotificationTypeActions(Constants.Messaging_NotificationTypeId); - Assert.AreEqual(1, actualNotificationTypeActions.Count); - Assert.IsTrue(new NotificationTypeActionComparer().Equals(expectedNotificationTypeAction, actualNotificationTypeActions[0])); + Assert.Multiple(() => + { + Assert.That(actualNotificationTypeActions, Has.Count.EqualTo(1)); + Assert.That(new NotificationTypeActionComparer().Equals(expectedNotificationTypeAction, actualNotificationTypeActions[0]), Is.True); + }); } [Test] @@ -600,7 +603,7 @@ public void SendNotification_Sets_Empty_SenderUserId_With_Admin() new List(), new List()); - Assert.AreEqual(adminUser.UserID, notification.SenderUserID); + Assert.That(notification.SenderUserID, Is.EqualTo(adminUser.UserID)); } [Test] @@ -957,7 +960,7 @@ public void SendNotification_Returns_Valid_Object() roles, users); - Assert.IsTrue(new NotificationComparer().Equals(expectedNotification, notification)); + Assert.That(new NotificationComparer().Equals(expectedNotification, notification), Is.True); } [Test] diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Core/Controllers/Messaging/SubscriptionControllerTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Core/Controllers/Messaging/SubscriptionControllerTests.cs index 20c7a6a35aa..793d155ad16 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Core/Controllers/Messaging/SubscriptionControllerTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Core/Controllers/Messaging/SubscriptionControllerTests.cs @@ -68,7 +68,7 @@ public void IsSubscribed_ShouldReturnFalse_IfUserIsNotSubscribed() var isSubscribed = this.subscriptionController.IsSubscribed(subscription); // Assert - Assert.AreEqual(false, isSubscribed); + Assert.That(isSubscribed, Is.EqualTo(false)); } [Test] @@ -96,7 +96,7 @@ public void IsSubscribed_ShouldReturnFalse_WhenUserDoesNotHavePermissionOnTheSub var isSubscribed = this.subscriptionController.IsSubscribed(subscription); // Assert - Assert.AreEqual(false, isSubscribed); + Assert.That(isSubscribed, Is.EqualTo(false)); } [Test] @@ -124,7 +124,7 @@ public void IsSubscribed_ShouldReturnTrue_WhenUserHasPermissionOnTheSubscription var isSubscribed = this.subscriptionController.IsSubscribed(subscription); // Assert - Assert.AreEqual(true, isSubscribed); + Assert.That(isSubscribed, Is.EqualTo(true)); } [Test] @@ -256,7 +256,7 @@ public void AddSubscription_ShouldFilledUpTheSubscriptionIdPropertyOfTheInputSub this.subscriptionController.AddSubscription(subscription); // Assert - Assert.AreEqual(expectedSubscriptionId, subscription.SubscriptionId); + Assert.That(subscription.SubscriptionId, Is.EqualTo(expectedSubscriptionId)); } [Test] diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Core/Controllers/Messaging/SubscriptionTypeControllerTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Core/Controllers/Messaging/SubscriptionTypeControllerTests.cs index 536c5161fad..3a30650021b 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Core/Controllers/Messaging/SubscriptionTypeControllerTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Core/Controllers/Messaging/SubscriptionTypeControllerTests.cs @@ -117,7 +117,7 @@ public void AddSubscriptionType_ShouldFilledUpTheSubscriptionTypeIdPropertyOfThe this.subscriptionTypeController.AddSubscriptionType(subscriptionType); // Assert - Assert.AreEqual(expectedSubscriptionTypeId, subscriptionType.SubscriptionTypeId); + Assert.That(subscriptionType.SubscriptionTypeId, Is.EqualTo(expectedSubscriptionTypeId)); } [Test] diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Core/Controllers/Messaging/UserPreferencesControllerTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Core/Controllers/Messaging/UserPreferencesControllerTests.cs index 288148c5076..a4327d56f29 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Core/Controllers/Messaging/UserPreferencesControllerTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Core/Controllers/Messaging/UserPreferencesControllerTests.cs @@ -95,7 +95,7 @@ public void GetUserPreference_ShouldReturnNullObject_WhenUserDoesNotHavePreferen var userPreference = this.userPrefencesController.GetUserPreference(user); // Assert - Assert.IsNull(userPreference); + Assert.That(userPreference, Is.Null); } [Test] @@ -116,11 +116,14 @@ public void GetUserPreference_ShouldReturnUserPreference_WhenUserHasPreference() var userPreference = this.userPrefencesController.GetUserPreference(user); // Assert - Assert.IsNotNull(userPreference); - Assert.AreEqual(expectedUserPreference.MessagesEmailFrequency, userPreference.MessagesEmailFrequency); - Assert.AreEqual(expectedUserPreference.NotificationsEmailFrequency, userPreference.NotificationsEmailFrequency); - Assert.AreEqual(user.PortalID, userPreference.PortalId); - Assert.AreEqual(user.UserID, userPreference.UserId); + Assert.That(userPreference, Is.Not.Null); + Assert.Multiple(() => + { + Assert.That(userPreference.MessagesEmailFrequency, Is.EqualTo(expectedUserPreference.MessagesEmailFrequency)); + Assert.That(userPreference.NotificationsEmailFrequency, Is.EqualTo(expectedUserPreference.NotificationsEmailFrequency)); + Assert.That(userPreference.PortalId, Is.EqualTo(user.PortalID)); + Assert.That(userPreference.UserId, Is.EqualTo(user.UserID)); + }); } private static UserInfo GetValidUser() diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Core/Controllers/Portal/PortalControllerTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Core/Controllers/Portal/PortalControllerTests.cs index 3481f3d8ef1..52d7ce864f6 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Core/Controllers/Portal/PortalControllerTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Core/Controllers/Portal/PortalControllerTests.cs @@ -108,7 +108,7 @@ public void NoTemplatesReturnsEmptyList() var templates = PortalTemplateController.Instance.GetPortalTemplates(); // Assert - Assert.AreEqual(0, templates.Count); + Assert.That(templates, Is.Empty); } [Test] @@ -121,7 +121,7 @@ public void LanguageFileWithoutATemplateIsIgnored() var templates = PortalTemplateController.Instance.GetPortalTemplates(); // Assert - Assert.AreEqual(0, templates.Count); + Assert.That(templates, Is.Empty); } [Test] @@ -135,7 +135,7 @@ public void TemplatesWithNoLanguageFilesAreLoaded() var templates = PortalTemplateController.Instance.GetPortalTemplates(); // Assert - Assert.AreEqual(1, templates.Count); + Assert.That(templates, Has.Count.EqualTo(1)); AssertTemplateInfo(StaticExpectations, templates[0]); } @@ -154,7 +154,7 @@ public void TemplateWith2Languages() var templates = PortalTemplateController.Instance.GetPortalTemplates(); // Assert - Assert.AreEqual(2, templates.Count); + Assert.That(templates, Has.Count.EqualTo(2)); AssertTemplateInfo(DefaultExpectationsDe, templates[0]); AssertTemplateInfo(DefaultExpectationsUs, templates[1]); } @@ -176,7 +176,7 @@ public void TwoTemplatesAssortedLanguages() var templates = PortalTemplateController.Instance.GetPortalTemplates(); // Assert - Assert.AreEqual(3, templates.Count); + Assert.That(templates, Has.Count.EqualTo(3)); AssertTemplateInfo(DefaultExpectationsDe, templates[0]); AssertTemplateInfo(DefaultExpectationsUs, templates[1]); AssertTemplateInfo(AlternateExpectationsDe, templates[2]); @@ -193,7 +193,7 @@ public void ResourceFileIsLocatedWhenPresent() var templates = PortalTemplateController.Instance.GetPortalTemplates(); // Assert - Assert.AreEqual(1, templates.Count); + Assert.That(templates, Has.Count.EqualTo(1)); AssertTemplateInfo(ResourceExpectations, templates[0]); } @@ -210,7 +210,7 @@ public void SingleTemplateAndLanguage() var templates = PortalTemplateController.Instance.GetPortalTemplates(); // Assert - Assert.AreEqual(1, templates.Count); + Assert.That(templates, Has.Count.EqualTo(1)); AssertTemplateInfo(DefaultExpectationsDe, templates[0]); } @@ -243,7 +243,7 @@ public void GetPortalTemplateReturnsNullIfCultureDoesNotMatch() var template = PortalTemplateController.Instance.GetPortalTemplate(DefaultPath, "de"); // Assert - Assert.IsNull(template); + Assert.That(template, Is.Null); } [Test] @@ -280,7 +280,7 @@ private static void AssertTemplateField(Dictionary expectations, } else { - Assert.AreEqual(expected, value, string.Format("Checking value of " + key)); + Assert.That(value, Is.EqualTo(expected), string.Format("Checking value of " + key)); } } diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Core/Controllers/Portal/PortalGroupControllerTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Core/Controllers/Portal/PortalGroupControllerTests.cs index c9bd1a3d112..34b6bfe0a87 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Core/Controllers/Portal/PortalGroupControllerTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Core/Controllers/Portal/PortalGroupControllerTests.cs @@ -222,7 +222,7 @@ public void PortalGroupController_AddPortalGroup_Returns_ValidId_On_Valid_Portal int portalGroupId = controller.AddPortalGroup(portalGroup); // Assert - Assert.AreEqual(Constants.PORTALGROUP_AddPortalGroupId, portalGroupId); + Assert.That(portalGroupId, Is.EqualTo(Constants.PORTALGROUP_AddPortalGroupId)); } [Test] @@ -243,7 +243,7 @@ public void PortalGroupController_AddPortalGroup_Sets_PortalGroupId_Property_On_ controller.AddPortalGroup(portalGroup); // Assert - Assert.AreEqual(Constants.PORTALGROUP_AddPortalGroupId, portalGroup.PortalGroupId); + Assert.That(portalGroup.PortalGroupId, Is.EqualTo(Constants.PORTALGROUP_AddPortalGroupId)); } [Test] @@ -334,7 +334,7 @@ public void PortalGroupController_GetPortalGroups_Returns_EmptyList_If_No_Items( IEnumerable portalGroups = controller.GetPortalGroups(); // Assert - Assert.AreEqual(0, portalGroups.Count()); + Assert.That(portalGroups.Count(), Is.EqualTo(0)); } [Test] @@ -357,7 +357,7 @@ public void PortalGroupController_GetPortalGroups_Returns_List_Of_PortalGroups() IEnumerable portalGroups = controller.GetPortalGroups(); // Assert - Assert.AreEqual(Constants.PORTALGROUP_ValidPortalGroupCount, portalGroups.Count()); + Assert.That(portalGroups.Count(), Is.EqualTo(Constants.PORTALGROUP_ValidPortalGroupCount)); } [Test] diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Core/Controllers/Search/InternalSearchControllerTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Core/Controllers/Search/InternalSearchControllerTests.cs index e543bce4b8e..61440d03489 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Core/Controllers/Search/InternalSearchControllerTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Core/Controllers/Search/InternalSearchControllerTests.cs @@ -245,7 +245,7 @@ public void SearchController_Add_Then_Delete_ModuleDefinition_WorksAsExpected() // Assert var stats = this.GetSearchStatistics(); - Assert.AreEqual(totalDocs, stats.TotalActiveDocuments); + Assert.That(stats.TotalActiveDocuments, Is.EqualTo(totalDocs)); // Act - delete last item var searchDoc = new SearchDocument { ModuleDefId = totalDocs }; @@ -253,8 +253,11 @@ public void SearchController_Add_Then_Delete_ModuleDefinition_WorksAsExpected() // Assert stats = this.GetSearchStatistics(); - Assert.AreEqual(totalDocs - 1, stats.TotalActiveDocuments); - Assert.AreEqual(1, stats.TotalDeletedDocuments); + Assert.Multiple(() => + { + Assert.That(stats.TotalActiveDocuments, Is.EqualTo(totalDocs - 1)); + Assert.That(stats.TotalDeletedDocuments, Is.EqualTo(1)); + }); // Act - delete first item searchDoc = new SearchDocument { ModuleDefId = 1 }; @@ -262,8 +265,11 @@ public void SearchController_Add_Then_Delete_ModuleDefinition_WorksAsExpected() // Assert stats = this.GetSearchStatistics(); - Assert.AreEqual(totalDocs - 2, stats.TotalActiveDocuments); - Assert.AreEqual(2, stats.TotalDeletedDocuments); + Assert.Multiple(() => + { + Assert.That(stats.TotalActiveDocuments, Is.EqualTo(totalDocs - 2)); + Assert.That(stats.TotalDeletedDocuments, Is.EqualTo(2)); + }); } [Test] @@ -291,7 +297,7 @@ public void SearchController_Add_Then_Delete_Module_WorksAsExpected() // Assert var stats = this.GetSearchStatistics(); - Assert.AreEqual(totalDocs, stats.TotalActiveDocuments); + Assert.That(stats.TotalActiveDocuments, Is.EqualTo(totalDocs)); // Act - delete last item var searchDoc = new SearchDocument { ModuleId = totalDocs }; @@ -299,8 +305,11 @@ public void SearchController_Add_Then_Delete_Module_WorksAsExpected() // Assert stats = this.GetSearchStatistics(); - Assert.AreEqual(totalDocs - 1, stats.TotalActiveDocuments); - Assert.AreEqual(1, stats.TotalDeletedDocuments); + Assert.Multiple(() => + { + Assert.That(stats.TotalActiveDocuments, Is.EqualTo(totalDocs - 1)); + Assert.That(stats.TotalDeletedDocuments, Is.EqualTo(1)); + }); // Act - delete first item searchDoc = new SearchDocument { ModuleId = 1 }; @@ -308,8 +317,11 @@ public void SearchController_Add_Then_Delete_Module_WorksAsExpected() // Assert stats = this.GetSearchStatistics(); - Assert.AreEqual(totalDocs - 2, stats.TotalActiveDocuments); - Assert.AreEqual(2, stats.TotalDeletedDocuments); + Assert.Multiple(() => + { + Assert.That(stats.TotalActiveDocuments, Is.EqualTo(totalDocs - 2)); + Assert.That(stats.TotalDeletedDocuments, Is.EqualTo(2)); + }); } [Test] @@ -337,7 +349,7 @@ public void SearchController_Add_Then_Delete_Portals_WorksAsExpected() // Assert var stats = this.GetSearchStatistics(); - Assert.AreEqual(totalDocs, stats.TotalActiveDocuments); + Assert.That(stats.TotalActiveDocuments, Is.EqualTo(totalDocs)); // Act - delete all portal 1 items var searchDoc = new SearchDocument { PortalId = PortalId1 }; @@ -345,8 +357,11 @@ public void SearchController_Add_Then_Delete_Portals_WorksAsExpected() // Assert - delete all portal 1 stats = this.GetSearchStatistics(); - Assert.AreEqual(totalDocs / 2, stats.TotalActiveDocuments); - Assert.AreEqual(totalDocs / 2, stats.TotalDeletedDocuments); + Assert.Multiple(() => + { + Assert.That(stats.TotalActiveDocuments, Is.EqualTo(totalDocs / 2)); + Assert.That(stats.TotalDeletedDocuments, Is.EqualTo(totalDocs / 2)); + }); } [Test] @@ -375,7 +390,7 @@ public void SearchController_Add_Then_Delete_Roles_WorksAsExpected() // Assert var stats = this.GetSearchStatistics(); - Assert.AreEqual(totalDocs, stats.TotalActiveDocuments); + Assert.That(stats.TotalActiveDocuments, Is.EqualTo(totalDocs)); // Act - delete last item var searchDoc = new SearchDocument { RoleId = totalDocs }; @@ -383,8 +398,11 @@ public void SearchController_Add_Then_Delete_Roles_WorksAsExpected() // Assert stats = this.GetSearchStatistics(); - Assert.AreEqual(totalDocs - 1, stats.TotalActiveDocuments); - Assert.AreEqual(1, stats.TotalDeletedDocuments); + Assert.Multiple(() => + { + Assert.That(stats.TotalActiveDocuments, Is.EqualTo(totalDocs - 1)); + Assert.That(stats.TotalDeletedDocuments, Is.EqualTo(1)); + }); // Act - delete first item searchDoc = new SearchDocument { RoleId = 1 }; @@ -392,8 +410,11 @@ public void SearchController_Add_Then_Delete_Roles_WorksAsExpected() // Assert stats = this.GetSearchStatistics(); - Assert.AreEqual(totalDocs - 2, stats.TotalActiveDocuments); - Assert.AreEqual(2, stats.TotalDeletedDocuments); + Assert.Multiple(() => + { + Assert.That(stats.TotalActiveDocuments, Is.EqualTo(totalDocs - 2)); + Assert.That(stats.TotalDeletedDocuments, Is.EqualTo(2)); + }); } [Test] @@ -420,7 +441,7 @@ public void SearchController_Add_Then_Delete_Tabs_WorksAsExpected() // Assert var stats = this.GetSearchStatistics(); - Assert.AreEqual(totalDocs, stats.TotalActiveDocuments); + Assert.That(stats.TotalActiveDocuments, Is.EqualTo(totalDocs)); // Act - delete last item var searchDoc = new SearchDocument { TabId = totalDocs }; @@ -428,8 +449,11 @@ public void SearchController_Add_Then_Delete_Tabs_WorksAsExpected() // Assert stats = this.GetSearchStatistics(); - Assert.AreEqual(totalDocs - 1, stats.TotalActiveDocuments); - Assert.AreEqual(1, stats.TotalDeletedDocuments); + Assert.Multiple(() => + { + Assert.That(stats.TotalActiveDocuments, Is.EqualTo(totalDocs - 1)); + Assert.That(stats.TotalDeletedDocuments, Is.EqualTo(1)); + }); // Act - delete first item searchDoc = new SearchDocument { TabId = 1 }; @@ -437,8 +461,11 @@ public void SearchController_Add_Then_Delete_Tabs_WorksAsExpected() // Assert stats = this.GetSearchStatistics(); - Assert.AreEqual(totalDocs - 2, stats.TotalActiveDocuments); - Assert.AreEqual(2, stats.TotalDeletedDocuments); + Assert.Multiple(() => + { + Assert.That(stats.TotalActiveDocuments, Is.EqualTo(totalDocs - 2)); + Assert.That(stats.TotalDeletedDocuments, Is.EqualTo(2)); + }); } [Test] @@ -467,7 +494,7 @@ public void SearchController_Add_Then_Delete_Users_WorksAsExpected() // Assert var stats = this.GetSearchStatistics(); - Assert.AreEqual(totalDocs, stats.TotalActiveDocuments); + Assert.That(stats.TotalActiveDocuments, Is.EqualTo(totalDocs)); // Act - delete last item var searchDoc = new SearchDocument { AuthorUserId = totalDocs }; @@ -475,8 +502,11 @@ public void SearchController_Add_Then_Delete_Users_WorksAsExpected() // Assert stats = this.GetSearchStatistics(); - Assert.AreEqual(totalDocs - 1, stats.TotalActiveDocuments); - Assert.AreEqual(1, stats.TotalDeletedDocuments); + Assert.Multiple(() => + { + Assert.That(stats.TotalActiveDocuments, Is.EqualTo(totalDocs - 1)); + Assert.That(stats.TotalDeletedDocuments, Is.EqualTo(1)); + }); // Act - delete first item searchDoc = new SearchDocument { AuthorUserId = 1 }; @@ -484,8 +514,11 @@ public void SearchController_Add_Then_Delete_Users_WorksAsExpected() // Assert stats = this.GetSearchStatistics(); - Assert.AreEqual(totalDocs - 2, stats.TotalActiveDocuments); - Assert.AreEqual(2, stats.TotalDeletedDocuments); + Assert.Multiple(() => + { + Assert.That(stats.TotalActiveDocuments, Is.EqualTo(totalDocs - 2)); + Assert.That(stats.TotalDeletedDocuments, Is.EqualTo(2)); + }); } private void CreateNewLuceneControllerInstance() diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Core/Controllers/Search/LuceneControllerTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Core/Controllers/Search/LuceneControllerTests.cs index cc38a058ad2..a0eaa9811bd 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Core/Controllers/Search/LuceneControllerTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Core/Controllers/Search/LuceneControllerTests.cs @@ -127,7 +127,7 @@ public void LuceneController_SearchFolderIsAsExpected() var searchIndexFolder = this.mockHostController.Object.GetString(Constants.SearchIndexFolderKey, this.SearchIndexFolder); var inf1 = new DirectoryInfo(searchIndexFolder); var inf2 = new DirectoryInfo(this.luceneController.IndexFolder); - Assert.AreEqual(inf1.Name, inf2.Name); + Assert.That(inf2.Name, Is.EqualTo(inf1.Name)); } [Test] @@ -161,7 +161,7 @@ public void LuceneController_Add_Empty_FiledsCollection_DoesNot_Create_Index() var numFiles = 0; this.DeleteIndexFolder(); - Assert.AreEqual(0, numFiles); + Assert.That(numFiles, Is.EqualTo(0)); } [Test] @@ -182,9 +182,12 @@ public void LuceneController_GetsHighlightedDesc() var hits = this.luceneController.Search(this.CreateSearchContext(new LuceneQuery { Query = new TermQuery(new Term(fieldName, "fox")) })); - // Assert - Assert.AreEqual(1, hits.Results.Count()); - Assert.AreEqual("brown fox jumps over the lazy dog", hits.Results.ElementAt(0).ContentSnippet); + Assert.Multiple(() => + { + // Assert + Assert.That(hits.Results.Count(), Is.EqualTo(1)); + Assert.That(hits.Results.ElementAt(0).ContentSnippet, Is.EqualTo("brown fox jumps over the lazy dog")); + }); } [Test] @@ -208,9 +211,12 @@ public void LuceneController_HighlightedDescHtmlEncodesOutput() var hits = this.luceneController.Search(this.CreateSearchContext(new LuceneQuery { Query = new TermQuery(new Term(fieldName, "fox")) })); - // Assert - Assert.AreEqual(1, hits.Results.Count()); - Assert.AreEqual(expectedResult, hits.Results.ElementAt(0).ContentSnippet); + Assert.Multiple(() => + { + // Assert + Assert.That(hits.Results.Count(), Is.EqualTo(1)); + Assert.That(hits.Results.ElementAt(0).ContentSnippet, Is.EqualTo(expectedResult)); + }); } [Test] @@ -232,7 +238,7 @@ public void LuceneController_FindsResultsUsingNearRealtimeSearchWithoutCommit() var hits = this.luceneController.Search(this.CreateSearchContext(new LuceneQuery { Query = new TermQuery(new Term(fieldName, "fox")) })); // Assert - Assert.AreEqual(1, hits.Results.Count()); + Assert.That(hits.Results.Count(), Is.EqualTo(1)); } [Test] @@ -244,9 +250,12 @@ public void LuceneController_Search_Returns_Correct_Total_Hits() var hits = this.luceneController.Search(this.CreateSearchContext(new LuceneQuery { Query = new TermQuery(new Term(Constants.ContentTag, "fox")) })); - // Assert - Assert.AreEqual(4, hits.TotalHits); - Assert.AreEqual(4, hits.Results.Count()); + Assert.Multiple(() => + { + // Assert + Assert.That(hits.TotalHits, Is.EqualTo(4)); + Assert.That(hits.Results.Count(), Is.EqualTo(4)); + }); } [Test] @@ -258,9 +267,12 @@ public void LuceneController_Search_Request_For_1_Result_Returns_1_Record_But_Mo var hits = this.luceneController.Search(this.CreateSearchContext(new LuceneQuery { Query = new TermQuery(new Term(Constants.ContentTag, "fox")), PageIndex = 1, PageSize = 1 })); - // Assert - Assert.AreEqual(4, hits.TotalHits); - Assert.AreEqual(1, hits.Results.Count()); + Assert.Multiple(() => + { + // Assert + Assert.That(hits.TotalHits, Is.EqualTo(4)); + Assert.That(hits.Results.Count(), Is.EqualTo(1)); + }); } [Test] @@ -272,9 +284,12 @@ public void LuceneController_Search_Request_For_4_Records_Returns_4_Records_With var hits = this.luceneController.Search(this.CreateSearchContext(new LuceneQuery { Query = new TermQuery(new Term(Constants.ContentTag, "fox")), PageIndex = 1, PageSize = 4 })); - // Assert - Assert.AreEqual(4, hits.TotalHits); - Assert.AreEqual(4, hits.Results.Count()); + Assert.Multiple(() => + { + // Assert + Assert.That(hits.TotalHits, Is.EqualTo(4)); + Assert.That(hits.Results.Count(), Is.EqualTo(4)); + }); } [Test] @@ -286,9 +301,12 @@ public void LuceneController_Search_Request_For_4_Records_Returns_4_Records_With var hits = this.luceneController.Search(this.CreateSearchContext(new LuceneQuery { Query = new TermQuery(new Term(Constants.ContentTag, "fox")), PageIndex = 1, PageSize = 4 })); - // Assert - Assert.AreEqual(4, hits.TotalHits); - Assert.AreEqual(4, hits.Results.Count()); + Assert.Multiple(() => + { + // Assert + Assert.That(hits.TotalHits, Is.EqualTo(4)); + Assert.That(hits.Results.Count(), Is.EqualTo(4)); + }); } [Test] @@ -306,9 +324,12 @@ public void LuceneController_Search_Request_For_NonExisting_PageNumbers_Returns_ PageSize = 10, })); - // Assert - Assert.AreEqual(4, hits.TotalHits); - Assert.AreEqual(0, hits.Results.Count()); + Assert.Multiple(() => + { + // Assert + Assert.That(hits.TotalHits, Is.EqualTo(4)); + Assert.That(hits.Results.Count(), Is.EqualTo(0)); + }); } [Test] @@ -327,13 +348,16 @@ public void LuceneController_Search_Request_For_PagIndex2_PageSize1_Returns_2nd_ var hits = this.luceneController.Search(this.CreateSearchContext(query)); - // Assert - Assert.AreEqual(3, hits.TotalHits); - Assert.AreEqual(1, hits.Results.Count()); + Assert.Multiple(() => + { + // Assert + Assert.That(hits.TotalHits, Is.EqualTo(3)); + Assert.That(hits.Results.Count(), Is.EqualTo(1)); - // for some reason, this search's docs have scoring as - // Line1=0.3125, Line1=0.3125, Line2=0.3125, Line2=0.3750 - Assert.AreEqual(Line1, hits.Results.ElementAt(0).Document.GetField(Constants.ContentTag).StringValue); + // for some reason, this search's docs have scoring as + // Line1=0.3125, Line1=0.3125, Line2=0.3125, Line2=0.3750 + Assert.That(hits.Results.ElementAt(0).Document.GetField(Constants.ContentTag).StringValue, Is.EqualTo(Line1)); + }); } [Test] @@ -369,7 +393,7 @@ public void LuceneController_NumericRangeCheck() var query = NumericRangeQuery.NewIntRange(fieldName, 2, 3, true, true); var hits = this.luceneController.Search(this.CreateSearchContext(new LuceneQuery { Query = query })); - Assert.AreEqual(2, hits.Results.Count()); + Assert.That(hits.Results.Count(), Is.EqualTo(2)); } [Test] @@ -394,15 +418,15 @@ public void LuceneController_DateRangeCheck() var query = NumericRangeQuery.NewLongRange(fieldName, long.Parse(futureTime), long.Parse(futureTime), true, true); var hits = this.luceneController.Search(this.CreateSearchContext(new LuceneQuery { Query = query })); - Assert.AreEqual(0, hits.Results.Count()); + Assert.That(hits.Results.Count(), Is.EqualTo(0)); query = NumericRangeQuery.NewLongRange(fieldName, long.Parse(DateTime.Now.AddDays(-1).ToString(Constants.DateTimeFormat)), long.Parse(DateTime.Now.ToString(Constants.DateTimeFormat)), true, true); hits = this.luceneController.Search(this.CreateSearchContext(new LuceneQuery { Query = query })); - Assert.AreEqual(1, hits.Results.Count()); + Assert.That(hits.Results.Count(), Is.EqualTo(1)); query = NumericRangeQuery.NewLongRange(fieldName, long.Parse(DateTime.Now.AddDays(-368).ToString(Constants.DateTimeFormat)), long.Parse(DateTime.Now.ToString(Constants.DateTimeFormat)), true, true); hits = this.luceneController.Search(this.CreateSearchContext(new LuceneQuery { Query = query })); - Assert.AreEqual(2, hits.Results.Count()); + Assert.That(hits.Results.Count(), Is.EqualTo(2)); } [Test] @@ -461,12 +485,15 @@ public void LuceneController_Search_With_Chinese_Chars_And_Custom_Analyzer(strin // Assert if (customAlalyzer == ValidCustomAnalyzer) { - Assert.AreEqual(1, hits.Results.Count()); - Assert.AreEqual(Line_Chinese.Replace(SearchKeyword_Chinese, string.Format("{0}", SearchKeyword_Chinese)), hits.Results.ElementAt(0).ContentSnippet); + Assert.Multiple(() => + { + Assert.That(hits.Results.Count(), Is.EqualTo(1)); + Assert.That(hits.Results.ElementAt(0).ContentSnippet, Is.EqualTo(Line_Chinese.Replace(SearchKeyword_Chinese, string.Format("{0}", SearchKeyword_Chinese)))); + }); } else { - Assert.AreEqual(0, hits.Results.Count()); + Assert.That(hits.Results.Count(), Is.EqualTo(0)); } } @@ -499,9 +526,12 @@ public void LuceneController_Search_With_English_Chars_And_Custom_Analyzer(strin var hits = this.luceneController.Search(this.CreateSearchContext(new LuceneQuery { Query = keywordQuery })); - // Assert - Assert.AreEqual(1, hits.Results.Count()); - Assert.AreEqual("brown fox jumps over the lazy dog", hits.Results.ElementAt(0).ContentSnippet); + Assert.Multiple(() => + { + // Assert + Assert.That(hits.Results.Count(), Is.EqualTo(1)); + Assert.That(hits.Results.ElementAt(0).ContentSnippet, Is.EqualTo("brown fox jumps over the lazy dog")); + }); } [Test] @@ -523,7 +553,7 @@ public void LuceneController_Search_Single_FuzzyQuery() var previews = this.luceneController.Search(this.CreateSearchContext(luceneQuery)); // Assert - Assert.AreEqual(2, previews.Results.Count()); + Assert.That(previews.Results.Count(), Is.EqualTo(2)); } [Test] @@ -558,7 +588,7 @@ public void LuceneController_Search_Double_FuzzyQuery() var previews = this.luceneController.Search(this.CreateSearchContext(luceneQuery)); // Assert - Assert.AreEqual(3, previews.Results.Count()); + Assert.That(previews.Results.Count(), Is.EqualTo(3)); } [Test] @@ -585,7 +615,7 @@ public void LuceneController_ReaderNotChangedBeforeTimeSpanElapsed() var reader = this.luceneController.GetSearcher(); Thread.Sleep(TimeSpan.FromSeconds(this.readerStaleTimeSpan / 2)); - Assert.AreSame(reader, this.luceneController.GetSearcher()); + Assert.That(this.luceneController.GetSearcher(), Is.SameAs(reader)); } [Test] @@ -606,7 +636,7 @@ public void LuceneController_ReaderNotChangedIfNoIndexUpdated() var reader = this.luceneController.GetSearcher(); Thread.Sleep(TimeSpan.FromSeconds(this.readerStaleTimeSpan * 1.1)); - Assert.AreSame(reader, this.luceneController.GetSearcher()); + Assert.That(this.luceneController.GetSearcher(), Is.SameAs(reader)); } [Test] @@ -634,7 +664,7 @@ public void LuceneController_ReaderIsChangedWhenIndexIsUpdatedAndTimeIsElapsed() // var lastAcccess = Directory.GetLastWriteTime(_luceneController.IndexFolder); // Directory.SetLastWriteTime(_luceneController.IndexFolder, lastAcccess + TimeSpan.FromSeconds(1)); - Assert.AreNotSame(reader, this.luceneController.GetSearcher()); + Assert.That(this.luceneController.GetSearcher(), Is.Not.SameAs(reader)); } [Test] @@ -660,7 +690,7 @@ public void LuceneController_LockFileWhenExistsDoesNotCauseProblemForFirstIContr doc1.Add(new NumericField(fieldName, Field.Store.YES, true).SetIntValue(1)); // Assert - Assert.True(File.Exists(lockFile)); + Assert.That(File.Exists(lockFile), Is.True); Assert.DoesNotThrow(() => this.luceneController.Add(doc1)); } @@ -681,7 +711,7 @@ public void LuceneController_LockFileCanBeObtainedByOnlySingleController() var secondController = new LuceneControllerImpl(); // Assert - Assert.True(File.Exists(lockFile)); + Assert.That(File.Exists(lockFile), Is.True); Assert.Throws(() => secondController.Add(doc1)); } @@ -691,8 +721,11 @@ public void LuceneController_DocumentMaxAndCountAreCorrect() { this.AddTestDocs(); - Assert.AreEqual(TotalTestDocs2Create, this.luceneController.MaxDocsCount()); - Assert.AreEqual(TotalTestDocs2Create, this.luceneController.SearchbleDocsCount()); + Assert.Multiple(() => + { + Assert.That(this.luceneController.MaxDocsCount(), Is.EqualTo(TotalTestDocs2Create)); + Assert.That(this.luceneController.SearchbleDocsCount(), Is.EqualTo(TotalTestDocs2Create)); + }); } [Test] @@ -703,9 +736,12 @@ public void LuceneController_TestDeleteBeforeOptimize() this.AddTestDocs(); var delCount = this.DeleteTestDocs(); - Assert.IsTrue(this.luceneController.HasDeletions()); - Assert.AreEqual(TotalTestDocs2Create, this.luceneController.MaxDocsCount()); - Assert.AreEqual(TotalTestDocs2Create - delCount, this.luceneController.SearchbleDocsCount()); + Assert.Multiple(() => + { + Assert.That(this.luceneController.HasDeletions(), Is.True); + Assert.That(this.luceneController.MaxDocsCount(), Is.EqualTo(TotalTestDocs2Create)); + Assert.That(this.luceneController.SearchbleDocsCount(), Is.EqualTo(TotalTestDocs2Create - delCount)); + }); } [Test] @@ -718,8 +754,11 @@ public void LuceneController_TestDeleteAfterOptimize() this.luceneController.OptimizeSearchIndex(true); - Assert.AreEqual(TotalTestDocs2Create, this.luceneController.MaxDocsCount()); - Assert.AreEqual(TotalTestDocs2Create - delCount, this.luceneController.SearchbleDocsCount()); + Assert.Multiple(() => + { + Assert.That(this.luceneController.MaxDocsCount(), Is.EqualTo(TotalTestDocs2Create)); + Assert.That(this.luceneController.SearchbleDocsCount(), Is.EqualTo(TotalTestDocs2Create - delCount)); + }); } [Test] @@ -731,9 +770,12 @@ public void LuceneController_TestGetSearchStatistics() var delCount = this.DeleteTestDocs(); var statistics = this.luceneController.GetSearchStatistics(); - Assert.IsNotNull(statistics); - Assert.AreEqual(statistics.TotalDeletedDocuments, delCount); - Assert.AreEqual(statistics.TotalActiveDocuments, addedCount - delCount); + Assert.Multiple(() => + { + Assert.That(statistics, Is.Not.Null); + Assert.That(delCount, Is.EqualTo(statistics.TotalDeletedDocuments)); + Assert.That(addedCount - delCount, Is.EqualTo(statistics.TotalActiveDocuments)); + }); } [Test] @@ -745,7 +787,7 @@ public void SearchController_LuceneControllerReaderIsNotNullWhenWriterIsNull() this.CreateNewLuceneControllerInstance(); // to force a new reader for the next assertion // Assert - Assert.IsNotNull(this.luceneController.GetSearcher()); + Assert.That(this.luceneController.GetSearcher(), Is.Not.Null); } private void CreateNewLuceneControllerInstance() diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Core/Controllers/Search/SearchControllerTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Core/Controllers/Search/SearchControllerTests.cs index cb222c71dd4..e4196c099a6 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Core/Controllers/Search/SearchControllerTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Core/Controllers/Search/SearchControllerTests.cs @@ -239,10 +239,13 @@ public void SearchController_Added_Item_IsRetrieved() var result = this.SearchForKeyword("hello"); - // Assert - Assert.AreEqual(1, result.Results.Count); - Assert.AreEqual(result.Results[0].UniqueKey, doc.UniqueKey); - Assert.AreEqual(result.Results[0].Title, doc.Title); + Assert.Multiple(() => + { + // Assert + Assert.That(result.Results, Has.Count.EqualTo(1)); + Assert.That(doc.UniqueKey, Is.EqualTo(result.Results[0].UniqueKey)); + Assert.That(doc.Title, Is.EqualTo(result.Results[0].Title)); + }); } [Test] @@ -267,7 +270,7 @@ public void SearchController_EnsureIndexIsAppended_When_Index_Is_NotDeleted_InBe var search1 = this.searchController.SiteSearch(query1); // Assert - Assert.AreEqual(1, search1.Results.Count); + Assert.That(search1.Results, Has.Count.EqualTo(1)); // Add second document var doc2 = new SearchDocument { Title = docs[1], UniqueKey = Guid.NewGuid().ToString(), SearchTypeId = OtherSearchTypeId, ModifiedTimeUtc = DateTime.UtcNow }; @@ -279,7 +282,7 @@ public void SearchController_EnsureIndexIsAppended_When_Index_Is_NotDeleted_InBe var search2 = this.searchController.SiteSearch(query2); // Assert - Assert.AreEqual(2, search2.Results.Count); + Assert.That(search2.Results, Has.Count.EqualTo(2)); } [Test] @@ -302,7 +305,7 @@ public void SearchController_Getsearch_TwoTermsSearch() var search = this.SearchForKeyword("fox jumps"); // Assert - Assert.AreEqual(docs.Length, search.Results.Count); + Assert.That(search.Results, Has.Count.EqualTo(docs.Length)); // Assert.AreEqual("brown fox jumps over the lazy dog ", search.Results[0].Snippet); // Assert.AreEqual("quick fox jumps over the black dog ", search.Results[1].Snippet); @@ -328,7 +331,7 @@ public void SearchController_GetResult_TwoTermsSearch() var search = this.SearchForKeyword("fox jumps"); // Assert - Assert.AreEqual(docs.Length, search.Results.Count); + Assert.That(search.Results, Has.Count.EqualTo(docs.Length)); // Assert.AreEqual("brown fox jumps over the lazy dog ", search.Results[0].Snippet); // Assert.AreEqual("quick fox jumps over the black dog ", search.Results[1].Snippet); @@ -346,7 +349,7 @@ public void SearchController_GetResult_PortalIdSearch() var search = this.searchController.SiteSearch(query); // Assert - Assert.AreEqual(added, search.Results.Count); + Assert.That(search.Results, Has.Count.EqualTo(added)); } [Test] @@ -361,7 +364,7 @@ public void SearchController_GetResult_SearchTypeIdSearch() var search = this.searchController.SiteSearch(query); // Assert - Assert.AreEqual(added, search.Results.Count); + Assert.That(search.Results, Has.Count.EqualTo(added)); } [Test] @@ -388,9 +391,12 @@ public void SearchController_SearchFindsAnalyzedVeryLongWords() var query = new SearchQuery { KeyWords = veryLongWord, SearchTypeIds = new List { ModuleSearchTypeId } }; var search = this.searchController.SiteSearch(query); - // Assert - Assert.AreEqual(1, search.Results.Count); - Assert.AreEqual("" + veryLongWord + "", this.StipEllipses(search.Results[0].Snippet).Trim()); + Assert.Multiple(() => + { + // Assert + Assert.That(search.Results, Has.Count.EqualTo(1)); + Assert.That(this.StipEllipses(search.Results[0].Snippet).Trim(), Is.EqualTo("" + veryLongWord + "")); + }); } [Test] @@ -405,7 +411,7 @@ public void SearchController_SecurityTrimmedTest_ReturnsNoResultsWhenHavingNoPer // Assert // by default AuthorUserId = 0 which have no permission, so this passes - Assert.AreEqual(0, result.Results.Count); + Assert.That(result.Results, Is.Empty); } [Test] @@ -429,10 +435,13 @@ public void SearchController_SecurityTrimmedTest_ReturnsExpectedResultsForPage1A var result = this.searchController.SiteSearch(query); var ids = result.Results.Select(doc => doc.AuthorUserId).ToArray(); - // Assert - Assert.AreEqual(maxDocs - 18, result.TotalHits); - Assert.AreEqual(query.PageSize, result.Results.Count); - Assert.AreEqual(new[] { 6, 7, 8, 9 }, ids); + Assert.Multiple(() => + { + // Assert + Assert.That(result.TotalHits, Is.EqualTo(maxDocs - 18)); + Assert.That(result.Results, Has.Count.EqualTo(query.PageSize)); + Assert.That(ids, Is.EqualTo(new[] { 6, 7, 8, 9 })); + }); } [Test] @@ -456,10 +465,13 @@ public void SearchController_SecurityTrimmedTest_ReturnsExpectedResultsForPage1B var result = this.searchController.SiteSearch(query); var ids = result.Results.Select(doc => doc.AuthorUserId).ToArray(); - // Assert - Assert.AreEqual(maxDocs - 18, result.TotalHits); - Assert.AreEqual(query.PageSize, result.Results.Count); - Assert.AreEqual(new[] { 6, 7, 8, 9, 16, 17 }, ids); + Assert.Multiple(() => + { + // Assert + Assert.That(result.TotalHits, Is.EqualTo(maxDocs - 18)); + Assert.That(result.Results, Has.Count.EqualTo(query.PageSize)); + Assert.That(ids, Is.EqualTo(new[] { 6, 7, 8, 9, 16, 17 })); + }); } [Test] @@ -483,10 +495,13 @@ public void SearchController_SecurityTrimmedTest_ReturnsExpectedResultsForPage1C var result = this.searchController.SiteSearch(query); var ids = result.Results.Select(doc => doc.AuthorUserId).ToArray(); - // Assert - Assert.AreEqual(maxDocs - 18, result.TotalHits); - Assert.AreEqual(query.PageSize, result.Results.Count); - Assert.AreEqual(new[] { 6, 7, 8, 9, 16, 17, 18, 19 }, ids); + Assert.Multiple(() => + { + // Assert + Assert.That(result.TotalHits, Is.EqualTo(maxDocs - 18)); + Assert.That(result.Results, Has.Count.EqualTo(query.PageSize)); + Assert.That(ids, Is.EqualTo(new[] { 6, 7, 8, 9, 16, 17, 18, 19 })); + }); } [Test] @@ -510,10 +525,13 @@ public void SearchController_SecurityTrimmedTest_ReturnsExpectedResultsForPage1D var result = this.searchController.SiteSearch(query); var ids = result.Results.Select(doc => doc.AuthorUserId).ToArray(); - // Assert - Assert.AreEqual(4 * 3, result.TotalHits); - Assert.AreEqual(4 * 3, result.Results.Count); - Assert.AreEqual(new[] { 6, 7, 8, 9, 16, 17, 18, 19, 26, 27, 28, 29 }, ids); + Assert.Multiple(() => + { + // Assert + Assert.That(result.TotalHits, Is.EqualTo(4 * 3)); + Assert.That(result.Results, Has.Count.EqualTo(4 * 3)); + Assert.That(ids, Is.EqualTo(new[] { 6, 7, 8, 9, 16, 17, 18, 19, 26, 27, 28, 29 })); + }); } [Test] @@ -537,10 +555,13 @@ public void SearchController_SecurityTrimmedTest_ReturnsExpectedResultsForPage1E var result = this.searchController.SiteSearch(query); var ids = result.Results.Select(doc => doc.AuthorUserId).Skip(1).ToArray(); - // Assert - Assert.AreEqual(maxDocs, result.TotalHits); - Assert.AreEqual(query.PageSize, result.Results.Count); - Assert.AreEqual(Enumerable.Range(1, 9).ToArray(), ids); + Assert.Multiple(() => + { + // Assert + Assert.That(result.TotalHits, Is.EqualTo(maxDocs)); + Assert.That(result.Results, Has.Count.EqualTo(query.PageSize)); + Assert.That(ids, Is.EqualTo(Enumerable.Range(1, 9).ToArray())); + }); } [Test] @@ -564,10 +585,13 @@ public void SearchController_SecurityTrimmedTest_ReturnsExpectedResultsForPage1F var result = this.searchController.SiteSearch(query); var ids = result.Results.Select(doc => doc.AuthorUserId).ToArray(); - // Assert - Assert.AreEqual(maxDocs, result.TotalHits); - Assert.AreEqual(query.PageSize, result.Results.Count); - Assert.AreEqual(Enumerable.Range(90, 10).ToArray(), ids); + Assert.Multiple(() => + { + // Assert + Assert.That(result.TotalHits, Is.EqualTo(maxDocs)); + Assert.That(result.Results, Has.Count.EqualTo(query.PageSize)); + Assert.That(ids, Is.EqualTo(Enumerable.Range(90, 10).ToArray())); + }); } [Test] @@ -591,10 +615,13 @@ public void SearchController_SecurityTrimmedTest_ReturnsExpectedResultsForPage2A var result = this.searchController.SiteSearch(query); var ids = result.Results.Select(doc => doc.AuthorUserId).ToArray(); - // Assert - Assert.AreEqual(maxDocs - 18, result.TotalHits); - Assert.AreEqual(5, result.Results.Count); - Assert.AreEqual(new[] { 17, 18, 19, 26, 27 }, ids); + Assert.Multiple(() => + { + // Assert + Assert.That(result.TotalHits, Is.EqualTo(maxDocs - 18)); + Assert.That(result.Results, Has.Count.EqualTo(5)); + Assert.That(ids, Is.EqualTo(new[] { 17, 18, 19, 26, 27 })); + }); } [Test] @@ -618,10 +645,13 @@ public void SearchController_SecurityTrimmedTest_ReturnsExpectedResultsForPage2B var result = this.searchController.SiteSearch(query); var ids = result.Results.Select(doc => doc.AuthorUserId).ToArray(); - // Assert - Assert.AreEqual(maxDocs - 18, result.TotalHits); - Assert.AreEqual(6, result.Results.Count); - Assert.AreEqual(new[] { 18, 19, 26, 27, 28, 29 }, ids); + Assert.Multiple(() => + { + // Assert + Assert.That(result.TotalHits, Is.EqualTo(maxDocs - 18)); + Assert.That(result.Results, Has.Count.EqualTo(6)); + Assert.That(ids, Is.EqualTo(new[] { 18, 19, 26, 27, 28, 29 })); + }); } [Test] @@ -645,10 +675,13 @@ public void SearchController_SecurityTrimmedTest_ReturnsExpectedResultsForPage2C var result = this.searchController.SiteSearch(query); var ids = result.Results.Select(doc => doc.AuthorUserId).ToArray(); - // Assert - Assert.AreEqual(maxDocs - 18, result.TotalHits); - Assert.AreEqual(4, result.Results.Count); - Assert.AreEqual(new[] { 26, 27, 28, 29 }, ids); + Assert.Multiple(() => + { + // Assert + Assert.That(result.TotalHits, Is.EqualTo(maxDocs - 18)); + Assert.That(result.Results, Has.Count.EqualTo(4)); + Assert.That(ids, Is.EqualTo(new[] { 26, 27, 28, 29 })); + }); } [Test] @@ -672,10 +705,13 @@ public void SearchController_SecurityTrimmedTest_ReturnsExpectedResultsForPage3A var result = this.searchController.SiteSearch(queryPg3); var ids = result.Results.Select(doc => doc.AuthorUserId).ToArray(); - // Assert - Assert.AreEqual(maxDocs - 18, result.TotalHits); - Assert.AreEqual(queryPg3.PageSize, result.Results.Count); - Assert.AreEqual(new[] { 26, 27, 28, 29 }, ids); + Assert.Multiple(() => + { + // Assert + Assert.That(result.TotalHits, Is.EqualTo(maxDocs - 18)); + Assert.That(result.Results, Has.Count.EqualTo(queryPg3.PageSize)); + Assert.That(ids, Is.EqualTo(new[] { 26, 27, 28, 29 })); + }); } [Test] @@ -699,10 +735,13 @@ public void SearchController_SecurityTrimmedTest_ReturnsExpectedResultsForPage3B var result = this.searchController.SiteSearch(queryPg3); var ids = result.Results.Select(doc => doc.AuthorUserId).ToArray(); - // Assert - Assert.AreEqual(maxDocs - 18, result.TotalHits); - Assert.AreEqual(2, result.Results.Count); - Assert.AreEqual(new[] { 28, 29 }, ids); + Assert.Multiple(() => + { + // Assert + Assert.That(result.TotalHits, Is.EqualTo(maxDocs - 18)); + Assert.That(result.Results, Has.Count.EqualTo(2)); + Assert.That(ids, Is.EqualTo(new[] { 28, 29 })); + }); } [Test] @@ -726,10 +765,13 @@ public void SearchController_SecurityTrimmedTest_ReturnsExpectedResultsForPage3C var result = this.searchController.SiteSearch(queryPg3); var ids = result.Results.Select(doc => doc.AuthorUserId).ToArray(); - // Assert - Assert.AreEqual(maxDocs - 18, result.TotalHits); - Assert.AreEqual(0, result.Results.Count); - Assert.AreEqual(new int[] { }, ids); + Assert.Multiple(() => + { + // Assert + Assert.That(result.TotalHits, Is.EqualTo(maxDocs - 18)); + Assert.That(result.Results, Is.Empty); + Assert.That(ids, Is.EqualTo(new int[] { })); + }); } [Test] @@ -753,10 +795,13 @@ public void SearchController_SecurityTrimmedTest_ReturnsExpectedResultsForPage5( var result = this.searchController.SiteSearch(queryPg3); var ids = result.Results.Select(doc => doc.AuthorUserId).ToArray(); - // Assert - Assert.AreEqual(maxDocs - (10 * 6), result.TotalHits); - Assert.AreEqual(queryPg3.PageSize, result.Results.Count); - Assert.AreEqual(new int[] { 86, 87, 88, 89, 96, 97, 98, 99 }, ids); + Assert.Multiple(() => + { + // Assert + Assert.That(result.TotalHits, Is.EqualTo(maxDocs - (10 * 6))); + Assert.That(result.Results, Has.Count.EqualTo(queryPg3.PageSize)); + Assert.That(ids, Is.EqualTo(new int[] { 86, 87, 88, 89, 96, 97, 98, 99 })); + }); } [Test] @@ -794,29 +839,38 @@ public void SearchController_GetResult_Returns_Correct_SuppliedData_When_Optiona var search = this.SearchForKeywordInModule("Title"); // Assert - Assert.AreEqual(1, search.Results.Count); - Assert.AreEqual(PortalId12, search.Results[0].PortalId); - Assert.AreEqual(StandardTabId, search.Results[0].TabId); - Assert.AreEqual(HtmlModuleDefId, search.Results[0].ModuleDefId); - Assert.AreEqual(HtmlModuleId, search.Results[0].ModuleId); - Assert.AreEqual(ModuleSearchTypeId, search.Results[0].SearchTypeId); - Assert.AreEqual("Description", search.Results[0].Description); - Assert.AreEqual("Body", search.Results[0].Body); - Assert.AreEqual(StandardAuthorId, search.Results[0].AuthorUserId); - Assert.AreEqual(StandardRoleId, search.Results[0].RoleId); - Assert.AreEqual(modifiedDateTime.ToString(Constants.DateTimeFormat), search.Results[0].ModifiedTimeUtc.ToString(Constants.DateTimeFormat)); - Assert.AreEqual(StandardPermission, search.Results[0].Permissions); - Assert.AreEqual(StandardQueryString, search.Results[0].QueryString); - Assert.AreEqual(StandardAuthorDisplayName, search.Results[0].AuthorName); - Assert.AreEqual(tags.Count, search.Results[0].Tags.Count()); - Assert.AreEqual(tags[0], search.Results[0].Tags.ElementAt(0)); - Assert.AreEqual(tags[1], search.Results[0].Tags.ElementAt(1)); - Assert.AreEqual(numericKeys.Count, search.Results[0].NumericKeys.Count); - Assert.AreEqual(numericKeys[NumericKey1], search.Results[0].NumericKeys[NumericKey1]); - Assert.AreEqual(numericKeys[NumericKey2], search.Results[0].NumericKeys[NumericKey2]); - Assert.AreEqual(keywords.Count, search.Results[0].Keywords.Count); - Assert.AreEqual(keywords[KeyWord1Name], search.Results[0].Keywords[KeyWord1Name]); - Assert.AreEqual(keywords[KeyWord2Name], search.Results[0].Keywords[KeyWord2Name]); + Assert.That(search.Results, Has.Count.EqualTo(1)); + Assert.Multiple(() => + { + Assert.That(search.Results[0].PortalId, Is.EqualTo(PortalId12)); + Assert.That(search.Results[0].TabId, Is.EqualTo(StandardTabId)); + Assert.That(search.Results[0].ModuleDefId, Is.EqualTo(HtmlModuleDefId)); + Assert.That(search.Results[0].ModuleId, Is.EqualTo(HtmlModuleId)); + Assert.That(search.Results[0].SearchTypeId, Is.EqualTo(ModuleSearchTypeId)); + Assert.That(search.Results[0].Description, Is.EqualTo("Description")); + Assert.That(search.Results[0].Body, Is.EqualTo("Body")); + Assert.That(search.Results[0].AuthorUserId, Is.EqualTo(StandardAuthorId)); + Assert.That(search.Results[0].RoleId, Is.EqualTo(StandardRoleId)); + Assert.That(search.Results[0].ModifiedTimeUtc.ToString(Constants.DateTimeFormat), Is.EqualTo(modifiedDateTime.ToString(Constants.DateTimeFormat))); + Assert.That(search.Results[0].Permissions, Is.EqualTo(StandardPermission)); + Assert.That(search.Results[0].QueryString, Is.EqualTo(StandardQueryString)); + Assert.That(search.Results[0].AuthorName, Is.EqualTo(StandardAuthorDisplayName)); + Assert.That(search.Results[0].Tags.Count(), Is.EqualTo(tags.Count)); + Assert.That(search.Results[0].Tags.ElementAt(0), Is.EqualTo(tags[0])); + Assert.That(search.Results[0].Tags.ElementAt(1), Is.EqualTo(tags[1])); + Assert.That(search.Results[0].NumericKeys, Has.Count.EqualTo(numericKeys.Count)); + }); + Assert.Multiple(() => + { + Assert.That(search.Results[0].NumericKeys[NumericKey1], Is.EqualTo(numericKeys[NumericKey1])); + Assert.That(search.Results[0].NumericKeys[NumericKey2], Is.EqualTo(numericKeys[NumericKey2])); + Assert.That(search.Results[0].Keywords, Has.Count.EqualTo(keywords.Count)); + }); + Assert.Multiple(() => + { + Assert.That(search.Results[0].Keywords[KeyWord1Name], Is.EqualTo(keywords[KeyWord1Name])); + Assert.That(search.Results[0].Keywords[KeyWord2Name], Is.EqualTo(keywords[KeyWord2Name])); + }); } [Test] @@ -838,23 +892,26 @@ public void SearchController_GetResult_Returns_EmptyData_When_Optionals_Are_Not_ var search = this.SearchForKeyword("Title"); // Assert - - Assert.AreEqual(1, search.Results.Count); - Assert.AreEqual(PortalId0, search.Results[0].PortalId); - Assert.AreEqual(0, search.Results[0].TabId); - Assert.AreEqual(0, search.Results[0].ModuleDefId); - Assert.AreEqual(0, search.Results[0].ModuleId); - Assert.AreEqual(OtherSearchTypeId, search.Results[0].SearchTypeId); - Assert.AreEqual(null, search.Results[0].Description); - Assert.AreEqual(null, search.Results[0].Body); - Assert.AreEqual(0, search.Results[0].AuthorUserId); - Assert.AreEqual(-1, search.Results[0].RoleId); - Assert.AreEqual(modifiedDateTime.ToString(Constants.DateTimeFormat), search.Results[0].ModifiedTimeUtc.ToString(Constants.DateTimeFormat)); - Assert.AreEqual(null, search.Results[0].Permissions); - Assert.AreEqual(null, search.Results[0].QueryString); - Assert.AreEqual(null, search.Results[0].AuthorName); - Assert.AreEqual(0, search.Results[0].Tags.Count()); - Assert.AreEqual(0, search.Results[0].NumericKeys.Count); - Assert.AreEqual(0, search.Results[0].Keywords.Count); + Assert.That(search.Results, Has.Count.EqualTo(1)); + Assert.Multiple(() => + { + Assert.That(search.Results[0].PortalId, Is.EqualTo(PortalId0)); + Assert.That(search.Results[0].TabId, Is.EqualTo(0)); + Assert.That(search.Results[0].ModuleDefId, Is.EqualTo(0)); + Assert.That(search.Results[0].ModuleId, Is.EqualTo(0)); + Assert.That(search.Results[0].SearchTypeId, Is.EqualTo(OtherSearchTypeId)); + Assert.That(search.Results[0].Description, Is.EqualTo(null)); + Assert.That(search.Results[0].Body, Is.EqualTo(null)); + Assert.That(search.Results[0].AuthorUserId, Is.EqualTo(0)); + Assert.That(search.Results[0].RoleId, Is.EqualTo(-1)); + Assert.That(search.Results[0].ModifiedTimeUtc.ToString(Constants.DateTimeFormat), Is.EqualTo(modifiedDateTime.ToString(Constants.DateTimeFormat))); + Assert.That(search.Results[0].Permissions, Is.EqualTo(null)); + Assert.That(search.Results[0].QueryString, Is.EqualTo(null)); + Assert.That(search.Results[0].AuthorName, Is.EqualTo(null)); + Assert.That(search.Results[0].Tags.Count(), Is.EqualTo(0)); + Assert.That(search.Results[0].NumericKeys, Is.Empty); + Assert.That(search.Results[0].Keywords, Is.Empty); + }); } [Test] @@ -875,18 +932,22 @@ public void SearchController_GetsHighlightedDesc() // Act var search = this.SearchForKeyword("fox"); - // Assert - Assert.AreEqual(docs.Length, search.Results.Count); - Assert.IsTrue( - new[] - { + Assert.Multiple(() => + { + // Assert + Assert.That(search.Results, Has.Count.EqualTo(docs.Length)); + Assert.That( + new[] + { "brown fox jumps over the lazy dog", "quick fox jumps over the black dog - Italian", "gold fox jumped over the lazy black dog", "e red fox jumped over the lazy dark gray dog", "quick fox jumps over the white dog - los de el Espana", - }.SequenceEqual(search.Results.Select(r => this.StipEllipses(r.Snippet))), - "Found: " + string.Join(Environment.NewLine, search.Results.Select(r => r.Snippet))); + }.SequenceEqual(search.Results.Select(r => this.StipEllipses(r.Snippet))), + Is.True, + "Found: " + string.Join(Environment.NewLine, search.Results.Select(r => r.Snippet))); + }); } [Test] @@ -925,9 +986,12 @@ public void SearchController_CorrectDocumentCultureIsUsedAtIndexing() var searches = this.SearchForKeyword(searchWord); - // Assert - Assert.AreEqual(1, searches.TotalHits); - Assert.AreEqual(cultureCode, searches.Results[0].CultureCode); + Assert.Multiple(() => + { + // Assert + Assert.That(searches.TotalHits, Is.EqualTo(1)); + Assert.That(searches.Results[0].CultureCode, Is.EqualTo(cultureCode)); + }); } [Test] @@ -942,7 +1006,7 @@ public void SearchController_GetResult_TimeRangeSearch_Ignores_When_Only_BeginDa var search = this.searchController.SiteSearch(query); // Assert - Assert.AreEqual(added, search.Results.Count); + Assert.That(search.Results, Has.Count.EqualTo(added)); } [Test] @@ -962,7 +1026,7 @@ public void SearchController_GetResult_TimeRangeSearch_Resturns_Scoped_Results_W var search = this.searchController.SiteSearch(query); // Assert - Assert.AreEqual(added, search.Results.Count); + Assert.That(search.Results, Has.Count.EqualTo(added)); } [Test] @@ -978,43 +1042,52 @@ public void SearchController_GetResult_TimeRangeSearch_Resturns_Scoped_Results_W // Act and Assert - just a bit later var query = new SearchQuery { SearchTypeIds = stypeIds, SortField = sfield, BeginModifiedTimeUtc = utcNow.AddSeconds(1), EndModifiedTimeUtc = utcNow.AddDays(1) }; var search = this.searchController.SiteSearch(query); - Assert.AreEqual(0, search.Results.Count); + Assert.That(search.Results, Is.Empty); // Act and Assert - 10 day query = new SearchQuery { SearchTypeIds = stypeIds, SortField = sfield, BeginModifiedTimeUtc = utcNow.AddDays(-10), EndModifiedTimeUtc = utcNow.AddDays(1) }; search = this.searchController.SiteSearch(query); - Assert.AreEqual(1, search.Results.Count); - Assert.AreEqual(Line5, search.Results[0].Title); + Assert.That(search.Results, Has.Count.EqualTo(1)); + Assert.That(search.Results[0].Title, Is.EqualTo(Line5)); // Act and Assert - 1 year or so query = new SearchQuery { SearchTypeIds = stypeIds, SortField = sfield, BeginModifiedTimeUtc = utcNow.AddDays(-368), EndModifiedTimeUtc = utcNow.AddDays(1) }; search = this.searchController.SiteSearch(query); - Assert.AreEqual(2, search.Results.Count); - Assert.AreEqual(Line5, search.Results[0].Title); - Assert.AreEqual(Line4, search.Results[1].Title); + Assert.That(search.Results, Has.Count.EqualTo(2)); + Assert.Multiple(() => + { + Assert.That(search.Results[0].Title, Is.EqualTo(Line5)); + Assert.That(search.Results[1].Title, Is.EqualTo(Line4)); + }); // Act and Assert - 2 years or so query = new SearchQuery { SearchTypeIds = stypeIds, SortField = sfield, BeginModifiedTimeUtc = utcNow.AddDays(-800), EndModifiedTimeUtc = utcNow.AddDays(1) }; search = this.searchController.SiteSearch(query); - Assert.AreEqual(3, search.Results.Count); - Assert.AreEqual(Line5, search.Results[0].Title); - Assert.AreEqual(Line4, search.Results[1].Title); - Assert.AreEqual(Line3, search.Results[2].Title); + Assert.That(search.Results, Has.Count.EqualTo(3)); + Assert.Multiple(() => + { + Assert.That(search.Results[0].Title, Is.EqualTo(Line5)); + Assert.That(search.Results[1].Title, Is.EqualTo(Line4)); + Assert.That(search.Results[2].Title, Is.EqualTo(Line3)); + }); // Act and Assert - 3 years or so query = new SearchQuery { SearchTypeIds = stypeIds, SortField = sfield, BeginModifiedTimeUtc = utcNow.AddDays(-1200), EndModifiedTimeUtc = utcNow.AddDays(1) }; search = this.searchController.SiteSearch(query); - Assert.AreEqual(4, search.Results.Count); - Assert.AreEqual(Line5, search.Results[0].Title); - Assert.AreEqual(Line4, search.Results[1].Title); - Assert.AreEqual(Line3, search.Results[2].Title); - Assert.AreEqual(Line2, search.Results[3].Title); + Assert.That(search.Results, Has.Count.EqualTo(4)); + Assert.Multiple(() => + { + Assert.That(search.Results[0].Title, Is.EqualTo(Line5)); + Assert.That(search.Results[1].Title, Is.EqualTo(Line4)); + Assert.That(search.Results[2].Title, Is.EqualTo(Line3)); + Assert.That(search.Results[3].Title, Is.EqualTo(Line2)); + }); // Act and Assert - 2 to 3 years or so query = new SearchQuery { SearchTypeIds = stypeIds, SortField = sfield, BeginModifiedTimeUtc = utcNow.AddDays(-1200), EndModifiedTimeUtc = utcNow.AddDays(-800) }; search = this.searchController.SiteSearch(query); - Assert.AreEqual(1, search.Results.Count); - Assert.AreEqual(Line2, search.Results[0].Title); + Assert.That(search.Results, Has.Count.EqualTo(1)); + Assert.That(search.Results[0].Title, Is.EqualTo(Line2)); } [Test] @@ -1029,7 +1102,7 @@ public void SearchController_GetResult_TagSearch_Single_Tag_Returns_Single_Resul var search = this.searchController.SiteSearch(query); // Assert - Assert.AreEqual(1, search.Results.Count); + Assert.That(search.Results, Has.Count.EqualTo(1)); } [Test] @@ -1044,7 +1117,7 @@ public void SearchController_GetResult_TagSearch_Single_Tag_With_Space_Returns_S var search = this.searchController.SiteSearch(query); // Assert - Assert.AreEqual(1, search.Results.Count); + Assert.That(search.Results, Has.Count.EqualTo(1)); } [Test] @@ -1059,7 +1132,7 @@ public void SearchController_GetResult_TagSearch_Lowercase_Search_Returns_Proper var search = this.searchController.SiteSearch(query); // Assert - Assert.AreEqual(1, search.Results.Count); + Assert.That(search.Results, Has.Count.EqualTo(1)); } [Test] @@ -1074,11 +1147,14 @@ public void SearchController_GetResult_TagSearch_Single_Tag_Returns_Two_Results( var search = this.searchController.SiteSearch(query); // Assert - Assert.AreEqual(2, search.Results.Count); - Assert.AreEqual(Tag0, search.Results[0].Tags.ElementAt(0)); - Assert.AreEqual(Tag1, search.Results[0].Tags.ElementAt(1)); - Assert.AreEqual(Tag1, search.Results[1].Tags.ElementAt(0)); - Assert.AreEqual(Tag2, search.Results[1].Tags.ElementAt(1)); + Assert.That(search.Results, Has.Count.EqualTo(2)); + Assert.Multiple(() => + { + Assert.That(search.Results[0].Tags.ElementAt(0), Is.EqualTo(Tag0)); + Assert.That(search.Results[0].Tags.ElementAt(1), Is.EqualTo(Tag1)); + Assert.That(search.Results[1].Tags.ElementAt(0), Is.EqualTo(Tag1)); + Assert.That(search.Results[1].Tags.ElementAt(1), Is.EqualTo(Tag2)); + }); } [Test] @@ -1093,7 +1169,7 @@ public void SearchController_GetResult_TagSearch_Two_Tags_Returns_Nothing() var search = this.searchController.SiteSearch(query); // Assert - Assert.AreEqual(0, search.Results.Count); + Assert.That(search.Results, Is.Empty); } [Test] @@ -1108,9 +1184,12 @@ public void SearchController_GetResult_TagSearch_Two_Tags_Returns_Single_Results var search = this.searchController.SiteSearch(query); // Assert - Assert.AreEqual(1, search.Results.Count); - Assert.AreEqual(Tag1, search.Results[0].Tags.ElementAt(0)); - Assert.AreEqual(Tag2, search.Results[0].Tags.ElementAt(1)); + Assert.That(search.Results, Has.Count.EqualTo(1)); + Assert.Multiple(() => + { + Assert.That(search.Results[0].Tags.ElementAt(0), Is.EqualTo(Tag1)); + Assert.That(search.Results[0].Tags.ElementAt(1), Is.EqualTo(Tag2)); + }); } [Test] @@ -1127,7 +1206,7 @@ public void SearchController_GetResult_TagSearch_With_Vowel_Tags_Returns_Data() var search = this.searchController.SiteSearch(query); // Assert - Assert.AreEqual(1, search.Results.Count); + Assert.That(search.Results, Has.Count.EqualTo(1)); } [Test] @@ -1202,15 +1281,18 @@ public void SearchController_GetResult_Sorty_By_Date_Returns_Latest_Docs_First() var search = this.searchController.SiteSearch(query); // Assert - Assert.AreEqual(added, search.Results.Count, "Found: " + string.Join(Environment.NewLine, search.Results.Select(r => r.Title))); + Assert.That(search.Results, Has.Count.EqualTo(added), "Found: " + string.Join(Environment.NewLine, search.Results.Select(r => r.Title))); - Assert.AreEqual(Tag3, search.Results[1].Tags.ElementAt(0)); - Assert.AreEqual(Tag4, search.Results[1].Tags.ElementAt(1)); - Assert.AreEqual(TagLatest, search.Results[1].Tags.ElementAt(2)); + Assert.Multiple(() => + { + Assert.That(search.Results[1].Tags.ElementAt(0), Is.EqualTo(Tag3)); + Assert.That(search.Results[1].Tags.ElementAt(1), Is.EqualTo(Tag4)); + Assert.That(search.Results[1].Tags.ElementAt(2), Is.EqualTo(TagLatest)); - Assert.AreEqual(Tag2, search.Results[0].Tags.ElementAt(0)); - Assert.AreEqual(Tag3, search.Results[0].Tags.ElementAt(1)); - Assert.AreEqual(TagIt.ToLowerInvariant(), search.Results[0].Tags.ElementAt(2)); + Assert.That(search.Results[0].Tags.ElementAt(0), Is.EqualTo(Tag2)); + Assert.That(search.Results[0].Tags.ElementAt(1), Is.EqualTo(Tag3)); + Assert.That(search.Results[0].Tags.ElementAt(2), Is.EqualTo(TagIt.ToLowerInvariant())); + }); } [Test] @@ -1230,14 +1312,20 @@ public void SearchController_GetResult_Sorty_By_Date_Ascending_Returns_Earliest_ var search = this.searchController.SiteSearch(query); // Assert - Assert.AreEqual(added, search.Results.Count); - Assert.Greater(search.Results[1].DisplayModifiedTime, search.Results[0].DisplayModifiedTime); - Assert.Greater(search.Results[2].DisplayModifiedTime, search.Results[1].DisplayModifiedTime); - Assert.Greater(search.Results[3].DisplayModifiedTime, search.Results[2].DisplayModifiedTime); + Assert.That(search.Results, Has.Count.EqualTo(added)); + Assert.Multiple(() => + { + Assert.That(search.Results[1].DisplayModifiedTime, Is.GreaterThan(search.Results[0].DisplayModifiedTime)); + Assert.That(search.Results[2].DisplayModifiedTime, Is.GreaterThan(search.Results[1].DisplayModifiedTime)); + Assert.That(search.Results[3].DisplayModifiedTime, Is.GreaterThan(search.Results[2].DisplayModifiedTime)); + }); - Assert.AreEqual(Tag0, search.Results[0].Tags.ElementAt(0)); - Assert.AreEqual(Tag1, search.Results[0].Tags.ElementAt(1)); - Assert.AreEqual(TagOldest, search.Results[0].Tags.ElementAt(2)); + Assert.Multiple(() => + { + Assert.That(search.Results[0].Tags.ElementAt(0), Is.EqualTo(Tag0)); + Assert.That(search.Results[0].Tags.ElementAt(1), Is.EqualTo(Tag1)); + Assert.That(search.Results[0].Tags.ElementAt(2), Is.EqualTo(TagOldest)); + }); } [Test] @@ -1258,9 +1346,12 @@ public void SearchController_GetResult_Sorty_By_NumericKeys_Ascending_Returns_Sm var search = this.searchController.SiteSearch(query); // Assert - Assert.AreEqual(added, search.Results.Count); - Assert.Greater(search.Results[1].NumericKeys[NumericKey1], search.Results[0].NumericKeys[NumericKey1]); - Assert.Greater(search.Results[2].NumericKeys[NumericKey1], search.Results[1].NumericKeys[NumericKey1]); + Assert.That(search.Results, Has.Count.EqualTo(added)); + Assert.Multiple(() => + { + Assert.That(search.Results[1].NumericKeys[NumericKey1], Is.GreaterThan(search.Results[0].NumericKeys[NumericKey1])); + Assert.That(search.Results[2].NumericKeys[NumericKey1], Is.GreaterThan(search.Results[1].NumericKeys[NumericKey1])); + }); } [Test] @@ -1281,9 +1372,12 @@ public void SearchController_GetResult_Sorty_By_NumericKeys_Descending_Returns_B var search = this.searchController.SiteSearch(query); // Assert - Assert.AreEqual(added, search.Results.Count); - Assert.Greater(search.Results[0].NumericKeys[NumericKey1], search.Results[1].NumericKeys[NumericKey1]); - Assert.Greater(search.Results[1].NumericKeys[NumericKey1], search.Results[2].NumericKeys[NumericKey1]); + Assert.That(search.Results, Has.Count.EqualTo(added)); + Assert.Multiple(() => + { + Assert.That(search.Results[0].NumericKeys[NumericKey1], Is.GreaterThan(search.Results[1].NumericKeys[NumericKey1])); + Assert.That(search.Results[1].NumericKeys[NumericKey1], Is.GreaterThan(search.Results[2].NumericKeys[NumericKey1])); + }); } [Test] @@ -1305,12 +1399,12 @@ public void SearchController_GetResult_Sorty_By_Title_Ascending_Returns_Alphabet var search = this.searchController.SiteSearch(query); // Assert - Assert.AreEqual(added, search.Results.Count); + Assert.That(search.Results, Has.Count.EqualTo(added)); var count = 0; foreach (var title in titles.OrderBy(s => s)) { - Assert.AreEqual(title, search.Results[count++].Title); + Assert.That(search.Results[count++].Title, Is.EqualTo(title)); } } @@ -1333,12 +1427,12 @@ public void SearchController_GetResult_Sorty_By_Title_Descending_Returns_Alphabe var search = this.searchController.SiteSearch(query); // Assert - Assert.AreEqual(added, search.Results.Count); + Assert.That(search.Results, Has.Count.EqualTo(added)); var count = 0; foreach (var title in titles.OrderByDescending(s => s)) { - Assert.AreEqual(title, search.Results[count++].Title); + Assert.That(search.Results[count++].Title, Is.EqualTo(title)); } } @@ -1362,12 +1456,12 @@ public void SearchController_GetResult_Sorty_By_Keyword_Ascending_Returns_Alphab var search = this.searchController.SiteSearch(query); // Assert - Assert.AreEqual(added, search.Results.Count); + Assert.That(search.Results, Has.Count.EqualTo(added)); var count = 0; foreach (var title in titles.OrderBy(s => s)) { - Assert.AreEqual(title, search.Results[count++].Keywords[KeyWord1Name]); + Assert.That(search.Results[count++].Keywords[KeyWord1Name], Is.EqualTo(title)); } } @@ -1391,12 +1485,12 @@ public void SearchController_GetResult_Sorty_By_Keyword_Descending_Returns_Alpha var search = this.searchController.SiteSearch(query); // Assert - Assert.AreEqual(added, search.Results.Count); + Assert.That(search.Results, Has.Count.EqualTo(added)); var count = 0; foreach (var title in titles.OrderByDescending(s => s)) { - Assert.AreEqual(title, search.Results[count++].Keywords[KeyWord1Name]); + Assert.That(search.Results[count++].Keywords[KeyWord1Name], Is.EqualTo(title)); } } @@ -1489,8 +1583,8 @@ public void SearchController_GetResult_Sorty_By_Relevance_Returns_TopHit_Docs_Fi var search = this.searchController.SiteSearch(query); // Assert - Assert.AreEqual(added, search.Results.Count); - Assert.AreEqual(true, search.Results[0].Snippet.Contains("brown") && search.Results[0].Snippet.Contains("dog")); + Assert.That(search.Results, Has.Count.EqualTo(added)); + Assert.That(search.Results[0].Snippet.Contains("brown") && search.Results[0].Snippet.Contains("dog"), Is.EqualTo(true)); } [Test] @@ -1513,8 +1607,8 @@ public void SearchController_GetResult_Sorty_By_RelevanceAndTitleKeyword_Returns var search = this.searchController.SiteSearch(query); // Assert - Assert.AreEqual(added, search.Results.Count); - Assert.AreEqual(true, search.Results[0].Body.Contains("Hello1")); + Assert.That(search.Results, Has.Count.EqualTo(added)); + Assert.That(search.Results[0].Body.Contains("Hello1"), Is.EqualTo(true)); } [Test] @@ -1537,8 +1631,8 @@ public void SearchController_GetResult_Sorty_By_RelevanceAndSubjectKeyword_Retur var search = this.searchController.SiteSearch(query); // Assert - Assert.AreEqual(added, search.Results.Count); - Assert.AreEqual(true, search.Results[0].Body.Contains("Hello2")); + Assert.That(search.Results, Has.Count.EqualTo(added)); + Assert.That(search.Results[0].Body.Contains("Hello2"), Is.EqualTo(true)); } [Test] @@ -1561,8 +1655,8 @@ public void SearchController_GetResult_Sorty_By_RelevanceAndCommentKeyword_Retur var search = this.searchController.SiteSearch(query); // Assert - Assert.AreEqual(added, search.Results.Count); - Assert.AreEqual(true, search.Results[0].Body.Contains("Hello3")); + Assert.That(search.Results, Has.Count.EqualTo(added)); + Assert.That(search.Results[0].Body.Contains("Hello3"), Is.EqualTo(true)); } [Test] @@ -1585,8 +1679,8 @@ public void SearchController_GetResult_Sorty_By_RelevanceAndAuthorKeyword_Return var search = this.searchController.SiteSearch(query); // Assert - Assert.AreEqual(added, search.Results.Count); - Assert.AreEqual(true, search.Results[0].Body.Contains("Hello4")); + Assert.That(search.Results, Has.Count.EqualTo(added)); + Assert.That(search.Results[0].Body.Contains("Hello4"), Is.EqualTo(true)); } [Test] @@ -1607,8 +1701,8 @@ public void SearchController_GetResult_Sorty_By_Relevance_Ascending_Does_Not_Cha var search = this.searchController.SiteSearch(query); // Assert - Assert.AreEqual(added, search.Results.Count); - Assert.AreEqual(true, search.Results[0].Snippet.Contains("brown") && search.Results[0].Snippet.Contains("dog")); + Assert.That(search.Results, Has.Count.EqualTo(added)); + Assert.That(search.Results[0].Snippet.Contains("brown") && search.Results[0].Snippet.Contains("dog"), Is.EqualTo(true)); } [Test] @@ -1628,9 +1722,12 @@ public void SearchController_GetResult_By_Locale_Returns_Specific_And_Neutral_Lo var search = this.searchController.SiteSearch(query); // Assert - Assert.AreEqual(2, search.Results.Count, "Found: " + string.Join(Environment.NewLine, search.Results.Select(r => r.Title))); - Assert.AreEqual(Line3, search.Results[0].Title); - Assert.AreEqual(Line1, search.Results[1].Title); + Assert.That(search.Results, Has.Count.EqualTo(2), "Found: " + string.Join(Environment.NewLine, search.Results.Select(r => r.Title))); + Assert.Multiple(() => + { + Assert.That(search.Results[0].Title, Is.EqualTo(Line3)); + Assert.That(search.Results[1].Title, Is.EqualTo(Line1)); + }); } [Test] @@ -1659,8 +1756,8 @@ public void SearchController_EnsureOldDocument_Deleted_Upon_Second_Index_Content var search = this.SearchForKeyword("fox"); // Assert - there should just be one entry - first one must have been removed. - Assert.AreEqual(1, search.Results.Count); - Assert.AreEqual(docs[1], search.Results[0].Title); + Assert.That(search.Results, Has.Count.EqualTo(1)); + Assert.That(search.Results[0].Title, Is.EqualTo(docs[1])); } [Test] @@ -1717,7 +1814,7 @@ public void SearchController_EnsureOldDocument_Deleted_Upon_Second_Index_When_Is var search = this.SearchForKeyword("fox"); // Assert - there should not be any record. - Assert.AreEqual(0, search.Results.Count); + Assert.That(search.Results, Is.Empty); } // Note: these tests needs to pass through the analyzer which is utilized @@ -1740,14 +1837,17 @@ public void SearchController_SearchFindsAccentedAndNonAccentedWords() var searches1 = this.SearchForKeyword("zèbre"); var searches2 = this.SearchForKeyword("zebre"); - // Assert - Assert.AreEqual(2, searches1.TotalHits); - Assert.AreEqual("zèbre or panthère", this.StipEllipses(searches1.Results[0].Snippet).Trim()); - Assert.AreEqual("zebre without accent", this.StipEllipses(searches1.Results[1].Snippet).Trim()); + Assert.Multiple(() => + { + // Assert + Assert.That(searches1.TotalHits, Is.EqualTo(2)); + Assert.That(this.StipEllipses(searches1.Results[0].Snippet).Trim(), Is.EqualTo("zèbre or panthère")); + Assert.That(this.StipEllipses(searches1.Results[1].Snippet).Trim(), Is.EqualTo("zebre without accent")); - Assert.AreEqual(2, searches2.TotalHits); - Assert.AreEqual("zèbre or panthère", this.StipEllipses(searches2.Results[0].Snippet).Trim()); - Assert.AreEqual("zebre without accent", this.StipEllipses(searches2.Results[1].Snippet).Trim()); + Assert.That(searches2.TotalHits, Is.EqualTo(2)); + Assert.That(this.StipEllipses(searches2.Results[0].Snippet).Trim(), Is.EqualTo("zèbre or panthère")); + Assert.That(this.StipEllipses(searches2.Results[1].Snippet).Trim(), Is.EqualTo("zebre without accent")); + }); } [Test] @@ -1767,12 +1867,15 @@ public void SearchController_PorterFilterTest() var search1 = this.SearchForKeyword(lines[0]); var search2 = this.SearchForKeyword("\"" + lines[1] + "\""); - // Assert - Assert.AreEqual(1, search1.TotalHits); - Assert.AreEqual(1, search2.TotalHits); + Assert.Multiple(() => + { + // Assert + Assert.That(search1.TotalHits, Is.EqualTo(1)); + Assert.That(search2.TotalHits, Is.EqualTo(1)); - Assert.AreEqual("" + lines[0] + "", this.StipEllipses(search1.Results[0].Snippet).Trim()); - Assert.AreEqual("" + lines[1] + "", this.StipEllipses(search2.Results[0].Snippet).Trim()); + Assert.That(this.StipEllipses(search1.Results[0].Snippet).Trim(), Is.EqualTo("" + lines[0] + "")); + Assert.That(this.StipEllipses(search2.Results[0].Snippet).Trim(), Is.EqualTo("" + lines[1] + "")); + }); } [Test] @@ -1793,11 +1896,14 @@ public void SearchController_SearchFindsStemmedWords() // Act var search = this.SearchForKeyword("ride"); - // Assert - Assert.AreEqual(3, search.TotalHits); - Assert.AreEqual("I ride my bike to work", this.StipEllipses(search.Results[0].Snippet)); - Assert.AreEqual("m are riding their bikes", this.StipEllipses(search.Results[1].Snippet)); - Assert.AreEqual("e boy rides his bike to school", this.StipEllipses(search.Results[2].Snippet)); + Assert.Multiple(() => + { + // Assert + Assert.That(search.TotalHits, Is.EqualTo(3)); + Assert.That(this.StipEllipses(search.Results[0].Snippet), Is.EqualTo("I ride my bike to work")); + Assert.That(this.StipEllipses(search.Results[1].Snippet), Is.EqualTo("m are riding their bikes")); + Assert.That(this.StipEllipses(search.Results[2].Snippet), Is.EqualTo("e boy rides his bike to school")); + }); } [Test] @@ -1811,13 +1917,16 @@ public void SearchController_Search_Synonym_Works() var search = this.SearchForKeywordInModule("wolf"); // Assert - Assert.AreEqual(added, search.TotalHits); + Assert.That(search.TotalHits, Is.EqualTo(added)); var snippets = search.Results.Select(result => this.StipEllipses(result.Snippet)).OrderBy(s => s).ToArray(); - Assert.AreEqual("brown fox jumps over the lazy dog", snippets[0]); - Assert.AreEqual("e red fox jumped over the lazy dark gray dog", snippets[1]); - Assert.AreEqual("gold fox jumped over the lazy black dog", snippets[2]); - Assert.AreEqual("quick fox jumps over the black dog - Italian", snippets[3]); + Assert.Multiple(() => + { + Assert.That(snippets[0], Is.EqualTo("brown fox jumps over the lazy dog")); + Assert.That(snippets[1], Is.EqualTo("e red fox jumped over the lazy dark gray dog")); + Assert.That(snippets[2], Is.EqualTo("gold fox jumped over the lazy black dog")); + Assert.That(snippets[3], Is.EqualTo("quick fox jumps over the black dog - Italian")); + }); } [Test] @@ -1837,10 +1946,13 @@ public void SearchController_Title_Ranked_Higher_Than_Body() var result = this.SearchForKeyword("cow"); - // Assert - Assert.AreEqual(result.TotalHits, 2); - Assert.AreEqual(doc1.UniqueKey, result.Results[0].UniqueKey); - Assert.AreEqual(doc2.UniqueKey, result.Results[1].UniqueKey); + Assert.Multiple(() => + { + // Assert + Assert.That(result.TotalHits, Is.EqualTo(2)); + Assert.That(result.Results[0].UniqueKey, Is.EqualTo(doc1.UniqueKey)); + Assert.That(result.Results[1].UniqueKey, Is.EqualTo(doc2.UniqueKey)); + }); } [Test] @@ -1860,10 +1972,13 @@ public void SearchController_Title_Ranked_Higher_Than_Body_Regardless_Of_Documen var result = this.SearchForKeyword("cow"); - // Assert - Assert.AreEqual(result.TotalHits, 2); - Assert.AreEqual(doc3.UniqueKey, result.Results[0].UniqueKey); - Assert.AreEqual(doc1.UniqueKey, result.Results[1].UniqueKey); + Assert.Multiple(() => + { + // Assert + Assert.That(result.TotalHits, Is.EqualTo(2)); + Assert.That(result.Results[0].UniqueKey, Is.EqualTo(doc3.UniqueKey)); + Assert.That(result.Results[1].UniqueKey, Is.EqualTo(doc1.UniqueKey)); + }); } [Test] @@ -1883,11 +1998,14 @@ public void SearchController_Title_Ranked_Higher_Than_Tag() var result = this.SearchForKeyword("cow"); // Assert - Assert.AreEqual(result.TotalHits, 2); + Assert.That(result.TotalHits, Is.EqualTo(2)); Console.WriteLine("first score: {0} {1}", result.Results[0].UniqueKey, result.Results[0].DisplayScore); Console.WriteLine("second score: {0} {1}", result.Results[1].UniqueKey, result.Results[1].DisplayScore); - Assert.AreEqual(doc1.UniqueKey, result.Results[0].UniqueKey); - Assert.AreEqual(doc2.UniqueKey, result.Results[1].UniqueKey); + Assert.Multiple(() => + { + Assert.That(result.Results[0].UniqueKey, Is.EqualTo(doc1.UniqueKey)); + Assert.That(result.Results[1].UniqueKey, Is.EqualTo(doc2.UniqueKey)); + }); } [Test] @@ -1913,16 +2031,19 @@ public void SearchController_RankingTest_With_Vowel() var result = this.SearchForKeyword("tootsie"); // Assert - Assert.AreEqual(5, result.TotalHits); + Assert.That(result.TotalHits, Is.EqualTo(5)); foreach (var searchResult in result.Results) { Console.WriteLine("{0} score: {1}", searchResult.UniqueKey, searchResult.DisplayScore); } - Assert.AreEqual(doc1.UniqueKey, result.Results[0].UniqueKey); - Assert.AreEqual(doc2.UniqueKey, result.Results[1].UniqueKey); - Assert.AreEqual(doc3.UniqueKey, result.Results[2].UniqueKey); - Assert.AreEqual(doc4.UniqueKey, result.Results[3].UniqueKey); + Assert.Multiple(() => + { + Assert.That(result.Results[0].UniqueKey, Is.EqualTo(doc1.UniqueKey)); + Assert.That(result.Results[1].UniqueKey, Is.EqualTo(doc2.UniqueKey)); + Assert.That(result.Results[2].UniqueKey, Is.EqualTo(doc3.UniqueKey)); + Assert.That(result.Results[3].UniqueKey, Is.EqualTo(doc4.UniqueKey)); + }); } [Test] @@ -1939,9 +2060,12 @@ public void SearchController_FileNameTest_With_WildCard() var result = this.SearchForKeywordWithWildCard("file"); - // Assert - Assert.AreEqual(1, result.TotalHits); - Assert.AreEqual(doc1.UniqueKey, result.Results[0].UniqueKey); + Assert.Multiple(() => + { + // Assert + Assert.That(result.TotalHits, Is.EqualTo(1)); + Assert.That(result.Results[0].UniqueKey, Is.EqualTo(doc1.UniqueKey)); + }); } [Test] @@ -1958,9 +2082,12 @@ public void SearchController_Full_FileNameTest_Without_WildCard() var result = this.SearchForKeywordWithWildCard("file.ext"); - // Assert - Assert.AreEqual(1, result.TotalHits); - Assert.AreEqual(doc1.UniqueKey, result.Results[0].UniqueKey); + Assert.Multiple(() => + { + // Assert + Assert.That(result.TotalHits, Is.EqualTo(1)); + Assert.That(result.Results[0].UniqueKey, Is.EqualTo(doc1.UniqueKey)); + }); } [Test] @@ -1977,9 +2104,12 @@ public void SearchController_Full_FileNameTest_With_WildCard() var result = this.SearchForKeyword("file.ext"); - // Assert - Assert.AreEqual(1, result.TotalHits); - Assert.AreEqual(doc1.UniqueKey, result.Results[0].UniqueKey); + Assert.Multiple(() => + { + // Assert + Assert.That(result.TotalHits, Is.EqualTo(1)); + Assert.That(result.Results[0].UniqueKey, Is.EqualTo(doc1.UniqueKey)); + }); } [Test] @@ -1994,10 +2124,13 @@ public void SearchController_Scope_By_FolderName() var result2 = this.SearchForKeyword("kw-folderName:Images/DNN/*"); var result3 = this.SearchForKeywordWithWildCard("kw-folderName:Images/* AND spacer"); - // Assert - Assert.AreEqual(5, result1.TotalHits); - Assert.AreEqual(2, result2.TotalHits); - Assert.AreEqual(1, result3.TotalHits); + Assert.Multiple(() => + { + // Assert + Assert.That(result1.TotalHits, Is.EqualTo(5)); + Assert.That(result2.TotalHits, Is.EqualTo(2)); + Assert.That(result3.TotalHits, Is.EqualTo(1)); + }); } [Test] @@ -2015,10 +2148,13 @@ public void SearchController_Scope_By_FolderName_With_Spaces() var result2 = this.searchController.SiteSearch(query2); var result3 = this.searchController.SiteSearch(query3); - // Assert - Assert.AreEqual(5, result1.TotalHits); - Assert.AreEqual(5, result2.TotalHits); - Assert.AreEqual(2, result3.TotalHits); + Assert.Multiple(() => + { + // Assert + Assert.That(result1.TotalHits, Is.EqualTo(5)); + Assert.That(result2.TotalHits, Is.EqualTo(5)); + Assert.That(result3.TotalHits, Is.EqualTo(2)); + }); } [Test] @@ -2035,9 +2171,12 @@ public void SearchController_EmailTest_With_WildCard() var result = this.SearchForKeywordWithWildCard("email@"); - // Assert - Assert.AreEqual(1, result.TotalHits); - Assert.AreEqual(doc1.UniqueKey, result.Results[0].UniqueKey); + Assert.Multiple(() => + { + // Assert + Assert.That(result.TotalHits, Is.EqualTo(1)); + Assert.That(result.Results[0].UniqueKey, Is.EqualTo(doc1.UniqueKey)); + }); } [Test] @@ -2120,8 +2259,11 @@ public void SearchController_Search_For_Unknown_SearchTypeId_Does_Not_Throw_Exce // Act var result = this.searchController.SiteSearch(query); - Assert.AreEqual(0, result.TotalHits); // 0 due to security trimming - Assert.AreEqual(0, result.Results.Count); + Assert.Multiple(() => + { + Assert.That(result.TotalHits, Is.EqualTo(0)); // 0 due to security trimming + Assert.That(result.Results, Is.Empty); + }); } [Test] @@ -2140,7 +2282,7 @@ public void SearchController_Search_For_GroupId_Zero_Ignores_GroupId() // Act var result = this.searchController.SiteSearch(query); - Assert.AreEqual(2, result.TotalHits); + Assert.That(result.TotalHits, Is.EqualTo(2)); } [Test] @@ -2159,8 +2301,11 @@ public void SearchController_Search_For_GroupId_Returns_Records_With_GroupIds_On // Act var result = this.searchController.SiteSearch(query); - Assert.AreEqual(1, result.TotalHits); - Assert.AreEqual(RoleId731, result.Results[0].RoleId); + Assert.Multiple(() => + { + Assert.That(result.TotalHits, Is.EqualTo(1)); + Assert.That(result.Results[0].RoleId, Is.EqualTo(RoleId731)); + }); } [Test] @@ -2182,8 +2327,11 @@ public void SearchController_Search_For_GroupId_Returns_Records_With_GroupIds_On // Act var result = this.searchController.SiteSearch(query); - Assert.AreEqual(1, result.TotalHits); - Assert.AreEqual(RoleId731, result.Results[0].RoleId); + Assert.Multiple(() => + { + Assert.That(result.TotalHits, Is.EqualTo(1)); + Assert.That(result.Results[0].RoleId, Is.EqualTo(RoleId731)); + }); } [Test] @@ -2206,10 +2354,13 @@ public void SearchController_Search_For_Two_ModuleDefinitions_Returns_Two_Only() var result = this.searchController.SiteSearch(query); - // Assert - Assert.AreEqual(2, result.TotalHits); - Assert.AreEqual(doc1.UniqueKey, result.Results[0].UniqueKey); - Assert.AreEqual(doc2.UniqueKey, result.Results[1].UniqueKey); + Assert.Multiple(() => + { + // Assert + Assert.That(result.TotalHits, Is.EqualTo(2)); + Assert.That(result.Results[0].UniqueKey, Is.EqualTo(doc1.UniqueKey)); + Assert.That(result.Results[1].UniqueKey, Is.EqualTo(doc2.UniqueKey)); + }); } [Test] @@ -2234,10 +2385,13 @@ public void SearchController_Search_For_ModuleId_Returns_from_that_module_Only() var result = this.searchController.SiteSearch(query); - // Assert - Assert.AreEqual(2, result.TotalHits); - Assert.AreEqual(doc1.UniqueKey, result.Results[0].UniqueKey); - Assert.AreEqual(doc2.UniqueKey, result.Results[1].UniqueKey); + Assert.Multiple(() => + { + // Assert + Assert.That(result.TotalHits, Is.EqualTo(2)); + Assert.That(result.Results[0].UniqueKey, Is.EqualTo(doc1.UniqueKey)); + Assert.That(result.Results[1].UniqueKey, Is.EqualTo(doc2.UniqueKey)); + }); } [Test] @@ -2262,11 +2416,14 @@ public void SearchController_Search_For_Module_Search_Type_And_Multiple_ModuleDe var result = this.searchController.SiteSearch(query); - // Assert - Assert.AreEqual(3, result.TotalHits); - Assert.AreEqual(doc1.UniqueKey, result.Results[0].UniqueKey); - Assert.AreEqual(doc2.UniqueKey, result.Results[1].UniqueKey); - Assert.AreEqual(doc3.UniqueKey, result.Results[2].UniqueKey); + Assert.Multiple(() => + { + // Assert + Assert.That(result.TotalHits, Is.EqualTo(3)); + Assert.That(result.Results[0].UniqueKey, Is.EqualTo(doc1.UniqueKey)); + Assert.That(result.Results[1].UniqueKey, Is.EqualTo(doc2.UniqueKey)); + Assert.That(result.Results[2].UniqueKey, Is.EqualTo(doc3.UniqueKey)); + }); } [Test] @@ -2293,12 +2450,15 @@ public void SearchController_Search_For_Multiple_Search_Types_Should_Return_Resu var result = this.searchController.SiteSearch(query); - // Assert - Assert.AreEqual(4, result.TotalHits); - Assert.AreEqual(doc1.UniqueKey, result.Results[0].UniqueKey); - Assert.AreEqual(doc2.UniqueKey, result.Results[1].UniqueKey); - Assert.AreEqual(doc3.UniqueKey, result.Results[2].UniqueKey); - Assert.AreEqual(doc5.UniqueKey, result.Results[3].UniqueKey); + Assert.Multiple(() => + { + // Assert + Assert.That(result.TotalHits, Is.EqualTo(4)); + Assert.That(result.Results[0].UniqueKey, Is.EqualTo(doc1.UniqueKey)); + Assert.That(result.Results[1].UniqueKey, Is.EqualTo(doc2.UniqueKey)); + Assert.That(result.Results[2].UniqueKey, Is.EqualTo(doc3.UniqueKey)); + Assert.That(result.Results[3].UniqueKey, Is.EqualTo(doc5.UniqueKey)); + }); } [Test] @@ -2325,11 +2485,14 @@ public void SearchController_Search_For_ModuleSearchTypeId_With_Two_ModuleDefini var result = this.searchController.SiteSearch(query); - // Assert - Assert.AreEqual(3, result.TotalHits); - Assert.AreEqual(doc1.UniqueKey, result.Results[0].UniqueKey); - Assert.AreEqual(doc2.UniqueKey, result.Results[1].UniqueKey); - Assert.AreEqual(doc5.UniqueKey, result.Results[2].UniqueKey); + Assert.Multiple(() => + { + // Assert + Assert.That(result.TotalHits, Is.EqualTo(3)); + Assert.That(result.Results[0].UniqueKey, Is.EqualTo(doc1.UniqueKey)); + Assert.That(result.Results[1].UniqueKey, Is.EqualTo(doc2.UniqueKey)); + Assert.That(result.Results[2].UniqueKey, Is.EqualTo(doc5.UniqueKey)); + }); } [Test] @@ -2348,8 +2511,8 @@ public void SearchController_GetResult_Works_With_Custom_Numeric_Querirs() var search = this.searchController.SiteSearch(query); // Assert - Assert.AreEqual(1, search.Results.Count); - Assert.AreEqual(NumericValue50, search.Results[0].NumericKeys[NumericKey1]); + Assert.That(search.Results, Has.Count.EqualTo(1)); + Assert.That(search.Results[0].NumericKeys[NumericKey1], Is.EqualTo(NumericValue50)); } [Test] @@ -2368,8 +2531,8 @@ public void SearchController_GetResult_Works_With_CustomKeyword_Querirs() var search = this.searchController.SiteSearch(query); // Assert - Assert.AreEqual(1, search.Results.Count); - Assert.AreEqual(KeyWord1Value, search.Results[0].Keywords[KeyWord1Name]); + Assert.That(search.Results, Has.Count.EqualTo(1)); + Assert.That(search.Results[0].Keywords[KeyWord1Name], Is.EqualTo(KeyWord1Value)); } [Test] @@ -2392,7 +2555,7 @@ public void SearchController_EnableLeadingWildcard_Should_Not_Return_Results_Whe var result = this.SearchForKeyword("rld", OtherSearchTypeId, true, false); // Assert - Assert.AreEqual(0, result.TotalHits); + Assert.That(result.TotalHits, Is.EqualTo(0)); } [Test] @@ -2414,9 +2577,12 @@ public void SearchController_EnableLeadingWildcard_Should_Return_Results_When_Pr var result = this.SearchForKeyword("rld", OtherSearchTypeId, true, true); - // Assert - Assert.AreEqual(1, result.TotalHits); - Assert.AreEqual(doc2.UniqueKey, result.Results[0].UniqueKey); + Assert.Multiple(() => + { + // Assert + Assert.That(result.TotalHits, Is.EqualTo(1)); + Assert.That(result.Results[0].UniqueKey, Is.EqualTo(doc2.UniqueKey)); + }); } [Test] @@ -2438,9 +2604,12 @@ public void SearchController_EnableLeadingWildcard_Should_Return_Results_When_Pr var result = this.SearchForKeyword("rld", OtherSearchTypeId, true, false); - // Assert - Assert.AreEqual(1, result.TotalHits); - Assert.AreEqual(doc2.UniqueKey, result.Results[0].UniqueKey); + Assert.Multiple(() => + { + // Assert + Assert.That(result.TotalHits, Is.EqualTo(1)); + Assert.That(result.Results[0].UniqueKey, Is.EqualTo(doc2.UniqueKey)); + }); } [Test] @@ -2456,21 +2625,21 @@ public void SearchController_Search_StopWords_Works() // Assert // the word "the" is ignored in all languages except es-ES - Assert.AreEqual(1, search.TotalHits, "Found: " + string.Join(Environment.NewLine, search.Results.Select(r => r.Title))); + Assert.That(search.TotalHits, Is.EqualTo(1), "Found: " + string.Join(Environment.NewLine, search.Results.Select(r => r.Title))); // Act search = this.SearchForKeywordInModule("over"); // Assert // we won't find "over" in neutral, en-US, and en-CA documents, but will find it in the es-ES and it-IT documents. - Assert.AreEqual(2, search.TotalHits, "Found: " + string.Join(Environment.NewLine, search.Results.Select(r => r.Title))); + Assert.That(search.TotalHits, Is.EqualTo(2), "Found: " + string.Join(Environment.NewLine, search.Results.Select(r => r.Title))); // Act search = this.SearchForKeywordInModule("los"); // Assert // we won't find "los" in the es-ES document. - Assert.AreEqual(0, search.TotalHits, "Found: " + string.Join(Environment.NewLine, search.Results.Select(r => r.Title))); + Assert.That(search.TotalHits, Is.EqualTo(0), "Found: " + string.Join(Environment.NewLine, search.Results.Select(r => r.Title))); } /// Executes function proc on a separate thread respecting the given timeout value. diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Core/Controllers/Search/SearchHelperTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Core/Controllers/Search/SearchHelperTests.cs index 2cacc767466..a1e8056bccd 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Core/Controllers/Search/SearchHelperTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Core/Controllers/Search/SearchHelperTests.cs @@ -78,9 +78,12 @@ public void SearchHelper_GetSynonyms_Two_Terms_Returns_Correct_Results() // Act var synonyms = this._searchHelper.GetSynonyms(PortalId0, CultureEnUs, TermDNN).ToArray(); - // Assert - Assert.AreEqual(1, synonyms.Count()); - Assert.AreEqual(TermDotNetNuke.ToLowerInvariant(), synonyms[0]); + Assert.Multiple(() => + { + // Assert + Assert.That(synonyms.Count(), Is.EqualTo(1)); + Assert.That(synonyms[0], Is.EqualTo(TermDotNetNuke.ToLowerInvariant())); + }); } [Test] @@ -92,10 +95,13 @@ public void SearchHelper_GetSynonyms_Three_Terms_Returns_Correct_Results() // Act var synonyms = this._searchHelper.GetSynonyms(PortalId0, CultureEnUs, TermHop).ToArray(); - // Assert - Assert.AreEqual(2, synonyms.Count()); - Assert.AreEqual(TermJump.ToLowerInvariant(), synonyms[0]); - Assert.AreEqual(TermLeap.ToLowerInvariant(), synonyms[1]); + Assert.Multiple(() => + { + // Assert + Assert.That(synonyms.Count(), Is.EqualTo(2)); + Assert.That(synonyms[0], Is.EqualTo(TermJump.ToLowerInvariant())); + Assert.That(synonyms[1], Is.EqualTo(TermLeap.ToLowerInvariant())); + }); } [Test] @@ -109,7 +115,7 @@ public void SearchHelper_Rephrase_NoWildCardButExact_1() var analyzed = this._searchHelper.RephraseSearchText(inPhrase, false); // Assert - Assert.AreEqual(expected, analyzed); + Assert.That(analyzed, Is.EqualTo(expected)); } [Test] @@ -123,7 +129,7 @@ public void SearchHelper_Rephrase_NoWildCardButExact_2() var analyzed = this._searchHelper.RephraseSearchText(inPhrase, false); // Assert - Assert.AreEqual(expected, analyzed); + Assert.That(analyzed, Is.EqualTo(expected)); } [Test] @@ -137,7 +143,7 @@ public void SearchHelper_Rephrase_NoWildCardNoExact() var analyzed = this._searchHelper.RephraseSearchText(inPhrase, false); // Assert - Assert.AreEqual(expected, analyzed); + Assert.That(analyzed, Is.EqualTo(expected)); } [Test] @@ -151,7 +157,7 @@ public void SearchHelper_Rephrase_WildCardNoExact_0() var analyzed = this._searchHelper.RephraseSearchText(inPhrase, true); // Assert - Assert.AreEqual(expected, analyzed); + Assert.That(analyzed, Is.EqualTo(expected)); } [Test] @@ -165,7 +171,7 @@ public void SearchHelper_Rephrase_WildCardNoExact_1() var analyzed = this._searchHelper.RephraseSearchText(inPhrase, true); // Assert - Assert.AreEqual(expected, analyzed); + Assert.That(analyzed, Is.EqualTo(expected)); } [Test] @@ -179,7 +185,7 @@ public void SearchHelper_Rephrase_WildCardNoExact_2() var analyzed = this._searchHelper.RephraseSearchText(inPhrase, true); // Assert - Assert.AreEqual(expected, analyzed); + Assert.That(analyzed, Is.EqualTo(expected)); } [Test] @@ -193,7 +199,7 @@ public void SearchHelper_Rephrase_WildCardNoExact_3() var analyzed = this._searchHelper.RephraseSearchText(inPhrase, true); // Assert - Assert.AreEqual(expected, analyzed); + Assert.That(analyzed, Is.EqualTo(expected)); } [Test] @@ -207,7 +213,7 @@ public void SearchHelper_Rephrase_WildCardNoExact_4() var analyzed = this._searchHelper.RephraseSearchText(inPhrase, true); // Assert - Assert.AreEqual(expected, analyzed); + Assert.That(analyzed, Is.EqualTo(expected)); } [Test] @@ -221,7 +227,7 @@ public void SearchHelper_Rephrase_WildCardNoExact_5() var analyzed = this._searchHelper.RephraseSearchText(inPhrase, true); // Assert - Assert.AreEqual(expected, analyzed); + Assert.That(analyzed, Is.EqualTo(expected)); } [Test] @@ -235,7 +241,7 @@ public void SearchHelper_Rephrase_WildCardNoExact_6() var analyzed = this._searchHelper.RephraseSearchText(inPhrase, true); // Assert - Assert.AreEqual(expected, analyzed); + Assert.That(analyzed, Is.EqualTo(expected)); } [Test] @@ -249,7 +255,7 @@ public void SearchHelper_Rephrase_WildCardNoExact_7() var analyzed = this._searchHelper.RephraseSearchText(inPhrase, true); // Assert - Assert.AreEqual(expected, analyzed); + Assert.That(analyzed, Is.EqualTo(expected)); } [Test] @@ -263,7 +269,7 @@ public void SearchHelper_Rephrase_WildCardNoExact_8() var analyzed = this._searchHelper.RephraseSearchText(inPhrase, true); // Assert - Assert.AreEqual(expected, analyzed); + Assert.That(analyzed, Is.EqualTo(expected)); } [Test] @@ -277,7 +283,7 @@ public void SearchHelper_Rephrase_WildCardWithExact_1() var analyzed = this._searchHelper.RephraseSearchText(inPhrase, true); // Assert - Assert.AreEqual(expected, analyzed); + Assert.That(analyzed, Is.EqualTo(expected)); } [Test] @@ -291,7 +297,7 @@ public void SearchHelper_Rephrase_WildCardWithExact_2() var analyzed = this._searchHelper.RephraseSearchText(inPhrase, true); // Assert - Assert.AreEqual(expected, analyzed); + Assert.That(analyzed, Is.EqualTo(expected)); } [Test] @@ -305,7 +311,7 @@ public void SearchHelper_Rephrase_WildCardWithExact_3() var analyzed = this._searchHelper.RephraseSearchText(inPhrase, true); // Assert - Assert.AreEqual(expected, analyzed); + Assert.That(analyzed, Is.EqualTo(expected)); } [Test] @@ -319,7 +325,7 @@ public void SearchHelper_Rephrase_WildCardWithTilde_4() var analyzed = this._searchHelper.RephraseSearchText(inPhrase, true); // Assert - Assert.AreEqual(expected, analyzed); + Assert.That(analyzed, Is.EqualTo(expected)); } [Test] @@ -334,7 +340,7 @@ public void SearchHelper_Rephrase_AccentedCharsReplaced_Replaced(string inPhrase var analyzed = this._searchHelper.RephraseSearchText(inPhrase, true); // Assert - Assert.AreEqual(expected, analyzed); + Assert.That(analyzed, Is.EqualTo(expected)); } private void SetupDataProvider() diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Core/Controllers/Search/SearchQueryStringParserTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Core/Controllers/Search/SearchQueryStringParserTests.cs index 65815b522a3..bfbd230591c 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Core/Controllers/Search/SearchQueryStringParserTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Core/Controllers/Search/SearchQueryStringParserTests.cs @@ -23,7 +23,7 @@ public void GetLastModifiedDate_ShouldReturnOneDayAgoDate_WhenKeywordsHaveAfterD var date = SearchQueryStringParser.Instance.GetLastModifiedDate(keywords, out outputKeywords); // Assert - Assert.AreEqual(DateTime.UtcNow.AddDays(-1).Date, date.Date); + Assert.That(date.Date, Is.EqualTo(DateTime.UtcNow.AddDays(-1).Date)); } [Test] @@ -37,7 +37,7 @@ public void GetLastModifiedDate_ShouldReturnOneWeekAgoDate_WhenKeywordsHaveAfter var date = SearchQueryStringParser.Instance.GetLastModifiedDate(keywords, out outputKeywords); // Assert - Assert.AreEqual(DateTime.UtcNow.AddDays(-7).Date, date.Date); + Assert.That(date.Date, Is.EqualTo(DateTime.UtcNow.AddDays(-7).Date)); } [Test] @@ -51,7 +51,7 @@ public void GetLastModifiedDate_ShouldReturnOneMonthAgoDate_WhenKeywordsHaveAfte var date = SearchQueryStringParser.Instance.GetLastModifiedDate(keywords, out outputKeywords); // Assert - Assert.AreEqual(DateTime.UtcNow.AddMonths(-1).Date, date.Date); + Assert.That(date.Date, Is.EqualTo(DateTime.UtcNow.AddMonths(-1).Date)); } [Test] @@ -65,7 +65,7 @@ public void GetLastModifiedDate_ShouldReturnOneQuarterAgoDate_WhenKeywordsHaveAf var date = SearchQueryStringParser.Instance.GetLastModifiedDate(keywords, out outputKeywords); // Assert - Assert.AreEqual(DateTime.UtcNow.AddMonths(-3).Date, date.Date); + Assert.That(date.Date, Is.EqualTo(DateTime.UtcNow.AddMonths(-3).Date)); } [Test] @@ -79,7 +79,7 @@ public void GetLastModifiedDate_ShouldReturnOneYearAgoDate_WhenKeywordsHaveAfter var date = SearchQueryStringParser.Instance.GetLastModifiedDate(keywords, out outputKeywords); // Assert - Assert.AreEqual(DateTime.UtcNow.AddYears(-1).Date, date.Date); + Assert.That(date.Date, Is.EqualTo(DateTime.UtcNow.AddYears(-1).Date)); } [Test] @@ -93,7 +93,7 @@ public void GetLastModifiedDate_ShouldReturnMinDate_WhenKeywordsDoNotHaveAfterPa var date = SearchQueryStringParser.Instance.GetLastModifiedDate(keywords, out outputKeywords); // Assert - Assert.AreEqual(DateTime.MinValue, date); + Assert.That(date, Is.EqualTo(DateTime.MinValue)); } [Test] @@ -108,7 +108,7 @@ public void GetLastModifiedDate_ShouldSetOutputKeywordsEqualsToTrimmedKeywordsWi SearchQueryStringParser.Instance.GetLastModifiedDate(keywords, out outputKeywords); // Assert - Assert.AreEqual(expectedOutputKeywords, outputKeywords); + Assert.That(outputKeywords, Is.EqualTo(expectedOutputKeywords)); } [Test] @@ -123,7 +123,7 @@ public void GetLastModifiedDate_ShouldSetOutputKeywordsEqualsToTrimmedKeywords_W SearchQueryStringParser.Instance.GetLastModifiedDate(keywords, out outputKeywords); // Assert - Assert.AreEqual(expectedOutputKeywords, outputKeywords); + Assert.That(outputKeywords, Is.EqualTo(expectedOutputKeywords)); } [Test] @@ -138,7 +138,7 @@ public void GetSearchTypeList_ShouldReturnSearchTypeList_WhenKeywordsHaveTypePar var searchTypeList = SearchQueryStringParser.Instance.GetSearchTypeList(keywords, out outputKeywords); // Assert - Assert.AreEqual(expectedSearchTypeList, searchTypeList); + Assert.That(searchTypeList, Is.EqualTo(expectedSearchTypeList)); } [Test] @@ -152,7 +152,7 @@ public void GetSearchTypeList_ShouldReturnEmptySearchTypeList_WhenKeywordsDoNotH var searchTypeList = SearchQueryStringParser.Instance.GetSearchTypeList(keywords, out outputKeywords); // Assert - Assert.AreEqual(0, searchTypeList.Count); + Assert.That(searchTypeList, Is.Empty); } [Test] @@ -167,7 +167,7 @@ public void GetSearchTypeList_ShouldSetOutputKeywordsEqualsToTrimmedKeywordsWith SearchQueryStringParser.Instance.GetSearchTypeList(keywords, out outputKeywords); // Assert - Assert.AreEqual(expectedOutputKeywords, outputKeywords); + Assert.That(outputKeywords, Is.EqualTo(expectedOutputKeywords)); } [Test] @@ -182,7 +182,7 @@ public void GetSearchTypeList_ShouldSetOutputKeywordsEqualsToTrimmedKeywords_Whe SearchQueryStringParser.Instance.GetSearchTypeList(keywords, out outputKeywords); // Assert - Assert.AreEqual(expectedOutputKeywords, outputKeywords); + Assert.That(outputKeywords, Is.EqualTo(expectedOutputKeywords)); } [Test] @@ -197,7 +197,7 @@ public void GetTags_ShouldReturnTagsList_WhenKeywordsHaveTags() var tagsList = SearchQueryStringParser.Instance.GetTags(keywords, out outputKeywords); // Assert - Assert.AreEqual(expectedTagsList, tagsList); + Assert.That(tagsList, Is.EqualTo(expectedTagsList)); } [Test] @@ -211,7 +211,7 @@ public void GetTags_ShouldReturnEmptyTagList_WhenKeywordsDoNotHaveTags() var tagsList = SearchQueryStringParser.Instance.GetTags(keywords, out outputKeywords); // Assert - Assert.AreEqual(0, tagsList.Count); + Assert.That(tagsList, Is.Empty); } [Test] @@ -226,7 +226,7 @@ public void GetTags_ShouldSetOutputKeywordsEqualsToTrimmedKeywordsWithoutTags_Wh SearchQueryStringParser.Instance.GetTags(keywords, out outputKeywords); // Assert - Assert.AreEqual(expectedOutputKeywords, outputKeywords); + Assert.That(outputKeywords, Is.EqualTo(expectedOutputKeywords)); } [Test] @@ -241,7 +241,7 @@ public void GetTags_ShouldSetOutputKeywordsEqualsToTrimmedKeywords_WhenKeywordsD SearchQueryStringParser.Instance.GetTags(keywords, out outputKeywords); // Assert - Assert.AreEqual(expectedOutputKeywords, outputKeywords); + Assert.That(outputKeywords, Is.EqualTo(expectedOutputKeywords)); } } } diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Core/Controllers/Social/RelationshipControllerTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Core/Controllers/Social/RelationshipControllerTests.cs index 4571c245d35..b547116f723 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Core/Controllers/Social/RelationshipControllerTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Core/Controllers/Social/RelationshipControllerTests.cs @@ -222,7 +222,7 @@ public void RelationshipController_GetRelationshipType_Returns_RelationshipType_ var relationshipType = relationshipController.GetRelationshipType(relationshipTypeId); // Assert - Assert.AreEqual(relationshipTypeId, relationshipType.RelationshipTypeId); + Assert.That(relationshipType.RelationshipTypeId, Is.EqualTo(relationshipTypeId)); } [Test] @@ -237,7 +237,7 @@ public void RelationshipController_GetRelationshipType_Returns_Null_For_InValid_ var relationshipType = relationshipController.GetRelationshipType(Constants.SOCIAL_InValidRelationshipType); // Assert - Assert.IsNull(relationshipType); + Assert.That(relationshipType, Is.Null); } [Test] @@ -398,7 +398,7 @@ public void RelationshipController_GetRelationship_Returns_Relationship_For_Vali var relationship = relationshipController.GetRelationship(relationshipId); // Assert - Assert.AreEqual(relationshipId, relationship.RelationshipId); + Assert.That(relationship.RelationshipId, Is.EqualTo(relationshipId)); } [Test] @@ -415,7 +415,7 @@ public void RelationshipController_GetRelationship_Returns_Null_For_InValid_ID() var relationship = relationshipController.GetRelationship(Constants.SOCIAL_InValidRelationship); // Assert - Assert.IsNull(relationship); + Assert.That(relationship, Is.Null); } [Test] @@ -441,8 +441,8 @@ public void RelationshipController_GetRelationshipsByUserID_Returns_List_Of_Rela var relationships = relationshipController.GetRelationshipsByUserId(Constants.USER_ValidId); // Assert - Assert.IsInstanceOf>(relationships); - Assert.AreEqual(5, relationships.Count); + Assert.That(relationships, Is.InstanceOf>()); + Assert.That(relationships, Has.Count.EqualTo(5)); } [Test] @@ -459,8 +459,8 @@ public void RelationshipController_GetRelationshipsByUserID_Returns_EmptyList_Of var relationships = relationshipController.GetRelationshipsByUserId(Constants.USER_InValidId); // Assert - Assert.IsInstanceOf>(relationships); - Assert.AreEqual(0, relationships.Count); + Assert.That(relationships, Is.InstanceOf>()); + Assert.That(relationships, Is.Empty); } [Test] @@ -489,8 +489,8 @@ public void RelationshipController_GetRelationshipsByPortalID_Returns_List_Of_Re var relationships = relationshipController.GetRelationshipsByPortalId(Constants.PORTAL_Zero); // Assert - Assert.IsInstanceOf>(relationships); - Assert.AreEqual(5, relationships.Count); + Assert.That(relationships, Is.InstanceOf>()); + Assert.That(relationships, Has.Count.EqualTo(5)); } [Test] @@ -522,8 +522,8 @@ public void RelationshipController_GetRelationshipsByPortalID_Returns_List_Of_Re var relationships = relationshipController.GetRelationshipsByPortalId(Constants.PORTAL_Zero); // Assert - Assert.IsInstanceOf>(relationships); - Assert.AreEqual(5, relationships.Count); + Assert.That(relationships, Is.InstanceOf>()); + Assert.That(relationships, Has.Count.EqualTo(5)); } [Test] @@ -543,8 +543,8 @@ public void RelationshipController_GetRelationshipsByPortalID_Returns_EmptyList_ var relationships = relationshipController.GetRelationshipsByPortalId(Constants.PORTAL_Null); // Assert - Assert.IsInstanceOf>(relationships); - Assert.AreEqual(0, relationships.Count); + Assert.That(relationships, Is.InstanceOf>()); + Assert.That(relationships, Is.Empty); } [Test] @@ -688,7 +688,7 @@ public void RelationshipController_GetUserRelationship_Returns_Relationship_For_ var userRelationship = relationshipController.GetUserRelationship(userRelationshipId); // Assert - Assert.AreEqual(userRelationshipId, userRelationship.UserRelationshipId); + Assert.That(userRelationship.UserRelationshipId, Is.EqualTo(userRelationshipId)); } [Test] @@ -705,7 +705,7 @@ public void RelationshipController_GetUserRelationship_Returns_Null_For_InValid_ var userRelationship = relationshipController.GetUserRelationship(Constants.SOCIAL_InValidUserRelationship); // Assert - Assert.IsNull(userRelationship); + Assert.That(userRelationship, Is.Null); } [Test] @@ -729,8 +729,8 @@ public void RelationshipController_GetUserRelationships_Returns_List_Of_UserRela var userRelationships = relationshipController.GetUserRelationships(user); // Assert - Assert.IsInstanceOf>(userRelationships); - Assert.AreEqual(5, userRelationships.Count); + Assert.That(userRelationships, Is.InstanceOf>()); + Assert.That(userRelationships, Has.Count.EqualTo(5)); } [Test] @@ -749,8 +749,8 @@ public void RelationshipController_GetUserRelationships_Returns_EmptyList_Of_Use var userRelationships = relationshipController.GetUserRelationships(user); // Assert - Assert.IsInstanceOf>(userRelationships); - Assert.AreEqual(0, userRelationships.Count); + Assert.That(userRelationships, Is.InstanceOf>()); + Assert.That(userRelationships, Is.Empty); } [Test] @@ -992,7 +992,7 @@ public void RelationshipController_InitiateUserRelationship_Returns_Status_Accep var userRelationship = relationshipController.InitiateUserRelationship(initiatingUser, targetUser, relationship); // Assert - Assert.AreEqual(userRelationship.Status, RelationshipStatus.Accepted); + Assert.That(userRelationship.Status, Is.EqualTo(RelationshipStatus.Accepted)); } [Test] @@ -1019,7 +1019,7 @@ public void RelationshipController_InitiateUserRelationship_Returns_Status_Initi var userRelationship = relationshipController.InitiateUserRelationship(initiatingUser, targetUser, relationship); // Assert - Assert.AreEqual(userRelationship.Status, RelationshipStatus.Pending); + Assert.That(userRelationship.Status, Is.EqualTo(RelationshipStatus.Pending)); } [Test] @@ -1047,7 +1047,7 @@ public void RelationshipController_InitiateUserRelationship_Returns_Status_Accep var userRelationship = relationshipController.InitiateUserRelationship(initiatingUser, targetUser, relationship); // Assert - Assert.AreEqual(userRelationship.Status, RelationshipStatus.Accepted); + Assert.That(userRelationship.Status, Is.EqualTo(RelationshipStatus.Accepted)); } [Test] @@ -1075,7 +1075,7 @@ public void RelationshipController_InitiateUserRelationship_Returns_Status_Initi var userRelationship = relationshipController.InitiateUserRelationship(initiatingUser, targetUser, relationship); // Assert - Assert.AreEqual(userRelationship.Status, RelationshipStatus.Pending); + Assert.That(userRelationship.Status, Is.EqualTo(RelationshipStatus.Pending)); } [Test] diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Core/Entities/Modules/Settings/ModuleSettingsTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Core/Entities/Modules/Settings/ModuleSettingsTests.cs index 4a3f28ae79f..607264a2f81 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Core/Entities/Modules/Settings/ModuleSettingsTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Core/Entities/Modules/Settings/ModuleSettingsTests.cs @@ -245,15 +245,18 @@ public void GetSettings_GetsValuesFrom_ModuleSettingsCollection(string stringVal // Act var settings = settingsRepository.GetSettings(moduleInfo); - // Assert - Assert.AreEqual(stringValue, settings.StringProperty, "The retrieved string property value is not equal to the stored one"); - Assert.AreEqual(integerValue, settings.IntegerProperty, "The retrieved integer property value is not equal to the stored one"); - Assert.AreEqual(doubleValue, settings.DoubleProperty, "The retrieved double property value is not equal to the stored one"); - Assert.AreEqual(booleanValue, settings.BooleanProperty, "The retrieved boolean property value is not equal to the stored one"); - Assert.AreEqual(datetimeValue, settings.DateTimeProperty, "The retrieved datetime property value is not equal to the stored one"); - Assert.AreEqual(timeSpanValue, settings.TimeSpanProperty, "The retrieved timespan property value is not equal to the stored one"); - Assert.AreEqual(enumValue, settings.EnumProperty, "The retrieved enum property value is not equal to the stored one"); - Assert.AreEqual(complexValue, settings.ComplexProperty, "The retrieved complex property value is not equal to the stored one"); + Assert.Multiple(() => + { + // Assert + Assert.That(settings.StringProperty, Is.EqualTo(stringValue), "The retrieved string property value is not equal to the stored one"); + Assert.That(settings.IntegerProperty, Is.EqualTo(integerValue), "The retrieved integer property value is not equal to the stored one"); + Assert.That(settings.DoubleProperty, Is.EqualTo(doubleValue), "The retrieved double property value is not equal to the stored one"); + Assert.That(settings.BooleanProperty, Is.EqualTo(booleanValue), "The retrieved boolean property value is not equal to the stored one"); + Assert.That(settings.DateTimeProperty, Is.EqualTo(datetimeValue), "The retrieved datetime property value is not equal to the stored one"); + Assert.That(settings.TimeSpanProperty, Is.EqualTo(timeSpanValue), "The retrieved timespan property value is not equal to the stored one"); + Assert.That(settings.EnumProperty, Is.EqualTo(enumValue), "The retrieved enum property value is not equal to the stored one"); + Assert.That(settings.ComplexProperty, Is.EqualTo(complexValue), "The retrieved complex property value is not equal to the stored one"); + }); this.MockRepository.VerifyAll(); } diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Core/Entities/Modules/Settings/NullableSettingsTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Core/Entities/Modules/Settings/NullableSettingsTests.cs index 765c78e853e..f0c6201f75f 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Core/Entities/Modules/Settings/NullableSettingsTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Core/Entities/Modules/Settings/NullableSettingsTests.cs @@ -281,11 +281,14 @@ private void GetSettings_GetsValues_FromCorrectSettings(string stringValue, int? // Act var settings = settingsRepository.GetSettings(moduleInfo); - // Assert - Assert.AreEqual(expectedStringValue, settings.StringProperty, "The retrieved string property value is not equal to the stored one"); - Assert.AreEqual(integerValue, settings.IntegerProperty, "The retrieved integer property value is not equal to the stored one"); - Assert.AreEqual(datetimeValue, settings.DateTimeProperty, "The retrieved datetime property value is not equal to the stored one"); - Assert.AreEqual(timeSpanValue, settings.TimeSpanProperty, "The retrieved timespan property value is not equal to the stored one"); + Assert.Multiple(() => + { + // Assert + Assert.That(settings.StringProperty, Is.EqualTo(expectedStringValue), "The retrieved string property value is not equal to the stored one"); + Assert.That(settings.IntegerProperty, Is.EqualTo(integerValue), "The retrieved integer property value is not equal to the stored one"); + Assert.That(settings.DateTimeProperty, Is.EqualTo(datetimeValue), "The retrieved datetime property value is not equal to the stored one"); + Assert.That(settings.TimeSpanProperty, Is.EqualTo(timeSpanValue), "The retrieved timespan property value is not equal to the stored one"); + }); this.MockRepository.VerifyAll(); } diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Core/Entities/Modules/Settings/PortalSettingsTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Core/Entities/Modules/Settings/PortalSettingsTests.cs index a59f5be8027..e895c6c401a 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Core/Entities/Modules/Settings/PortalSettingsTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Core/Entities/Modules/Settings/PortalSettingsTests.cs @@ -279,15 +279,18 @@ private void GetSettings_GetsValuesFrom_PortalSettings(string stringValue, int i // Act var settings = settingsRepository.GetSettings(moduleInfo); - // Assert - Assert.AreEqual(stringValue, settings.StringProperty, "The retrieved string property value is not equal to the stored one"); - Assert.AreEqual(integerValue, settings.IntegerProperty, "The retrieved integer property value is not equal to the stored one"); - Assert.AreEqual(doubleValue, settings.DoubleProperty, "The retrieved double property value is not equal to the stored one"); - Assert.AreEqual(booleanValue, settings.BooleanProperty, "The retrieved boolean property value is not equal to the stored one"); - Assert.AreEqual(datetimeValue, settings.DateTimeProperty, "The retrieved datetime property value is not equal to the stored one"); - Assert.AreEqual(timeSpanValue, settings.TimeSpanProperty, "The retrieved timespan property value is not equal to the stored one"); - Assert.AreEqual(enumValue, settings.EnumProperty, "The retrieved enum property value is not equal to the stored one"); - Assert.AreEqual(complexValue, settings.ComplexProperty, "The retrieved complex property value is not equal to the stored one"); + Assert.Multiple(() => + { + // Assert + Assert.That(settings.StringProperty, Is.EqualTo(stringValue), "The retrieved string property value is not equal to the stored one"); + Assert.That(settings.IntegerProperty, Is.EqualTo(integerValue), "The retrieved integer property value is not equal to the stored one"); + Assert.That(settings.DoubleProperty, Is.EqualTo(doubleValue), "The retrieved double property value is not equal to the stored one"); + Assert.That(settings.BooleanProperty, Is.EqualTo(booleanValue), "The retrieved boolean property value is not equal to the stored one"); + Assert.That(settings.DateTimeProperty, Is.EqualTo(datetimeValue), "The retrieved datetime property value is not equal to the stored one"); + Assert.That(settings.TimeSpanProperty, Is.EqualTo(timeSpanValue), "The retrieved timespan property value is not equal to the stored one"); + Assert.That(settings.EnumProperty, Is.EqualTo(enumValue), "The retrieved enum property value is not equal to the stored one"); + Assert.That(settings.ComplexProperty, Is.EqualTo(complexValue), "The retrieved complex property value is not equal to the stored one"); + }); this.MockRepository.VerifyAll(); } diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Core/Entities/Modules/Settings/TabModuleSettingsTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Core/Entities/Modules/Settings/TabModuleSettingsTests.cs index 69117c0bc5d..b046f62b68f 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Core/Entities/Modules/Settings/TabModuleSettingsTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Core/Entities/Modules/Settings/TabModuleSettingsTests.cs @@ -280,15 +280,18 @@ private void GetSettings_GetsValuesFrom_ModuleSettingsCollection(string stringVa // Act var settings = settingsRepository.GetSettings(moduleInfo); - // Assert - Assert.AreEqual(stringValue, settings.StringProperty, "The retrieved string property value is not equal to the stored one"); - Assert.AreEqual(integerValue, settings.IntegerProperty, "The retrieved integer property value is not equal to the stored one"); - Assert.AreEqual(doubleValue, settings.DoubleProperty, "The retrieved double property value is not equal to the stored one"); - Assert.AreEqual(booleanValue, settings.BooleanProperty, "The retrieved boolean property value is not equal to the stored one"); - Assert.AreEqual(datetimeValue, settings.DateTimeProperty, "The retrieved datetime property value is not equal to the stored one"); - Assert.AreEqual(timeSpanValue, settings.TimeSpanProperty, "The retrieved timespan property value is not equal to the stored one"); - Assert.AreEqual(enumValue, settings.EnumProperty, "The retrieved enum property value is not equal to the stored one"); - Assert.AreEqual(complexValue, settings.ComplexProperty, "The retrieved complex property value is not equal to the stored one"); + Assert.Multiple(() => + { + // Assert + Assert.That(settings.StringProperty, Is.EqualTo(stringValue), "The retrieved string property value is not equal to the stored one"); + Assert.That(settings.IntegerProperty, Is.EqualTo(integerValue), "The retrieved integer property value is not equal to the stored one"); + Assert.That(settings.DoubleProperty, Is.EqualTo(doubleValue), "The retrieved double property value is not equal to the stored one"); + Assert.That(settings.BooleanProperty, Is.EqualTo(booleanValue), "The retrieved boolean property value is not equal to the stored one"); + Assert.That(settings.DateTimeProperty, Is.EqualTo(datetimeValue), "The retrieved datetime property value is not equal to the stored one"); + Assert.That(settings.TimeSpanProperty, Is.EqualTo(timeSpanValue), "The retrieved timespan property value is not equal to the stored one"); + Assert.That(settings.EnumProperty, Is.EqualTo(enumValue), "The retrieved enum property value is not equal to the stored one"); + Assert.That(settings.ComplexProperty, Is.EqualTo(complexValue), "The retrieved complex property value is not equal to the stored one"); + }); this.MockRepository.VerifyAll(); } diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Core/Entities/Portals/PortalSettingsControllerTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Core/Entities/Portals/PortalSettingsControllerTests.cs index d8d34097b64..54b01adbe88 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Core/Entities/Portals/PortalSettingsControllerTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Core/Entities/Portals/PortalSettingsControllerTests.cs @@ -117,11 +117,11 @@ public void LoadPortalSettings_Loads_Default_Value(Dictionary te var actualValue = property.GetValue(settings, null); if (actualValue is bool) { - Assert.AreEqual(defaultValue, actualValue.ToString().ToLowerInvariant()); + Assert.That(actualValue.ToString().ToLowerInvariant(), Is.EqualTo(defaultValue)); } else { - Assert.AreEqual(defaultValue, actualValue.ToString()); + Assert.That(actualValue.ToString(), Is.EqualTo(defaultValue)); } } @@ -162,11 +162,11 @@ public void LoadPortalSettings_Loads_Setting_Value(Dictionary te var actualValue = property.GetValue(settings, null); if (actualValue is bool) { - Assert.AreEqual(propertyValue, actualValue.ToString().ToLowerInvariant()); + Assert.That(actualValue.ToString().ToLowerInvariant(), Is.EqualTo(propertyValue)); } else { - Assert.AreEqual(propertyValue, actualValue.ToString()); + Assert.That(actualValue.ToString(), Is.EqualTo(propertyValue)); } } @@ -198,7 +198,7 @@ public void LoadPortalSettings_Sets_TimeZone_Property_To_Local_TimeZone() controller.LoadPortalSettings(settings); // Assert - Assert.AreEqual(TimeZoneInfo.Local, settings.TimeZone); + Assert.That(settings.TimeZone, Is.EqualTo(TimeZoneInfo.Local)); } [Test] @@ -219,48 +219,51 @@ public void LoadPortal_Loads_Portal_Property_Values() // Act controller.LoadPortal(portal, settings); - // Assert - Assert.AreEqual(portal.AdminTabId, settings.AdminTabId); - Assert.AreEqual(portal.AdministratorId, settings.AdministratorId); - Assert.AreEqual(portal.AdministratorRoleId, settings.AdministratorRoleId); - Assert.AreEqual(portal.AdministratorRoleName, settings.AdministratorRoleName); - Assert.AreEqual(portal.BackgroundFile, settings.BackgroundFile); - Assert.AreEqual(portal.BannerAdvertising, settings.BannerAdvertising); - Assert.AreEqual(portal.CultureCode, settings.CultureCode); - Assert.AreEqual(portal.Currency, settings.Currency); - Assert.AreEqual(portal.Custom404TabId, settings.ErrorPage404); - Assert.AreEqual(portal.Custom500TabId, settings.ErrorPage500); - Assert.AreEqual(portal.TermsTabId, settings.TermsTabId); - Assert.AreEqual(portal.PrivacyTabId, settings.PrivacyTabId); - Assert.AreEqual(portal.DefaultLanguage, settings.DefaultLanguage); - Assert.AreEqual(portal.Description, settings.Description); - Assert.AreEqual(portal.Email, settings.Email); - Assert.AreEqual(portal.ExpiryDate, settings.ExpiryDate); - Assert.AreEqual(portal.FooterText, settings.FooterText); - Assert.AreEqual(portal.GUID, settings.GUID); - Assert.AreEqual(Globals.ApplicationPath + "/" + portal.HomeDirectory + "/", settings.HomeDirectory); - Assert.AreEqual(portal.HomeDirectoryMapPath, settings.HomeDirectoryMapPath); - Assert.AreEqual(Globals.ApplicationPath + "/" + portal.HomeSystemDirectory + "/", settings.HomeSystemDirectory); - Assert.AreEqual(portal.HomeSystemDirectoryMapPath, settings.HomeSystemDirectoryMapPath); - Assert.AreEqual(portal.HomeTabId, settings.HomeTabId); - Assert.AreEqual(portal.HostFee, settings.HostFee); - Assert.AreEqual(portal.HostSpace, settings.HostSpace); - Assert.AreEqual(portal.KeyWords, settings.KeyWords); - Assert.AreEqual(portal.LoginTabId, settings.LoginTabId); - Assert.AreEqual(portal.LogoFile, settings.LogoFile); - Assert.AreEqual(portal.PageQuota, settings.PageQuota); - Assert.AreEqual(portal.Pages, settings.Pages); - Assert.AreEqual(portal.PortalName, settings.PortalName); - Assert.AreEqual(portal.RegisterTabId, settings.RegisterTabId); - Assert.AreEqual(portal.RegisteredRoleId, settings.RegisteredRoleId); - Assert.AreEqual(portal.RegisteredRoleName, settings.RegisteredRoleName); - Assert.AreEqual(portal.SearchTabId, settings.SearchTabId); - Assert.AreEqual(portal.SplashTabId, settings.SplashTabId); - Assert.AreEqual(portal.SuperTabId, settings.SuperTabId); - Assert.AreEqual(portal.UserQuota, settings.UserQuota); - Assert.AreEqual(portal.UserRegistration, settings.UserRegistration); - Assert.AreEqual(portal.UserTabId, settings.UserTabId); - Assert.AreEqual(portal.Users, settings.Users); + Assert.Multiple(() => + { + // Assert + Assert.That(settings.AdminTabId, Is.EqualTo(portal.AdminTabId)); + Assert.That(settings.AdministratorId, Is.EqualTo(portal.AdministratorId)); + Assert.That(settings.AdministratorRoleId, Is.EqualTo(portal.AdministratorRoleId)); + Assert.That(settings.AdministratorRoleName, Is.EqualTo(portal.AdministratorRoleName)); + Assert.That(settings.BackgroundFile, Is.EqualTo(portal.BackgroundFile)); + Assert.That(settings.BannerAdvertising, Is.EqualTo(portal.BannerAdvertising)); + Assert.That(settings.CultureCode, Is.EqualTo(portal.CultureCode)); + Assert.That(settings.Currency, Is.EqualTo(portal.Currency)); + Assert.That(settings.ErrorPage404, Is.EqualTo(portal.Custom404TabId)); + Assert.That(settings.ErrorPage500, Is.EqualTo(portal.Custom500TabId)); + Assert.That(settings.TermsTabId, Is.EqualTo(portal.TermsTabId)); + Assert.That(settings.PrivacyTabId, Is.EqualTo(portal.PrivacyTabId)); + Assert.That(settings.DefaultLanguage, Is.EqualTo(portal.DefaultLanguage)); + Assert.That(settings.Description, Is.EqualTo(portal.Description)); + Assert.That(settings.Email, Is.EqualTo(portal.Email)); + Assert.That(settings.ExpiryDate, Is.EqualTo(portal.ExpiryDate)); + Assert.That(settings.FooterText, Is.EqualTo(portal.FooterText)); + Assert.That(settings.GUID, Is.EqualTo(portal.GUID)); + Assert.That(settings.HomeDirectory, Is.EqualTo(Globals.ApplicationPath + "/" + portal.HomeDirectory + "/")); + Assert.That(settings.HomeDirectoryMapPath, Is.EqualTo(portal.HomeDirectoryMapPath)); + Assert.That(settings.HomeSystemDirectory, Is.EqualTo(Globals.ApplicationPath + "/" + portal.HomeSystemDirectory + "/")); + Assert.That(settings.HomeSystemDirectoryMapPath, Is.EqualTo(portal.HomeSystemDirectoryMapPath)); + Assert.That(settings.HomeTabId, Is.EqualTo(portal.HomeTabId)); + Assert.That(settings.HostFee, Is.EqualTo(portal.HostFee)); + Assert.That(settings.HostSpace, Is.EqualTo(portal.HostSpace)); + Assert.That(settings.KeyWords, Is.EqualTo(portal.KeyWords)); + Assert.That(settings.LoginTabId, Is.EqualTo(portal.LoginTabId)); + Assert.That(settings.LogoFile, Is.EqualTo(portal.LogoFile)); + Assert.That(settings.PageQuota, Is.EqualTo(portal.PageQuota)); + Assert.That(settings.Pages, Is.EqualTo(portal.Pages)); + Assert.That(settings.PortalName, Is.EqualTo(portal.PortalName)); + Assert.That(settings.RegisterTabId, Is.EqualTo(portal.RegisterTabId)); + Assert.That(settings.RegisteredRoleId, Is.EqualTo(portal.RegisteredRoleId)); + Assert.That(settings.RegisteredRoleName, Is.EqualTo(portal.RegisteredRoleName)); + Assert.That(settings.SearchTabId, Is.EqualTo(portal.SearchTabId)); + Assert.That(settings.SplashTabId, Is.EqualTo(portal.SplashTabId)); + Assert.That(settings.SuperTabId, Is.EqualTo(portal.SuperTabId)); + Assert.That(settings.UserQuota, Is.EqualTo(portal.UserQuota)); + Assert.That(settings.UserRegistration, Is.EqualTo(portal.UserRegistration)); + Assert.That(settings.UserTabId, Is.EqualTo(portal.UserTabId)); + Assert.That(settings.Users, Is.EqualTo(portal.Users)); + }); } [Test] @@ -285,7 +288,7 @@ public void GetActiveTab_Gets_Correct_Tab_If_Valid_Portal_TabId() var tab = controller.GetActiveTab(ValidTabId, settings); // Assert - Assert.AreEqual(validTab.TabID, tab.TabID); + Assert.That(tab.TabID, Is.EqualTo(validTab.TabID)); } [Test] @@ -310,7 +313,7 @@ public void GetActiveTab_Gets_Correct_Tab_If_Valid_Host_TabId() var tab = controller.GetActiveTab(HostTabId, settings); // Assert - Assert.AreEqual(validTab.TabID, tab.TabID); + Assert.That(tab.TabID, Is.EqualTo(validTab.TabID)); } [Test] @@ -334,7 +337,7 @@ public void GetActiveTab_Gets_Splash_Tab_If_InValid_TabId_And_SplashTab_Set() var tab = controller.GetActiveTab(InValidTabId, settings); // Assert - Assert.AreEqual(SplashTabId, tab.TabID); + Assert.That(tab.TabID, Is.EqualTo(SplashTabId)); } [Test] @@ -358,7 +361,7 @@ public void GetActiveTab_Gets_Home_Tab_If_InValid_TabId_And_Home_Set() var tab = controller.GetActiveTab(InValidTabId, settings); // Assert - Assert.AreEqual(HomeTabId, tab.TabID); + Assert.That(tab.TabID, Is.EqualTo(HomeTabId)); } [Test] @@ -383,7 +386,7 @@ public void GetActiveTab_Gets_Splash_Tab_If_InValid_TabId_And_Both_HomeTab_And_S var tab = controller.GetActiveTab(InValidTabId, settings); // Assert - Assert.AreEqual(SplashTabId, tab.TabID); + Assert.That(tab.TabID, Is.EqualTo(SplashTabId)); } [Test] @@ -407,9 +410,12 @@ public void GetActiveTab_Sets_StartDate_And_EndDate_Of_Tab_If_Not_Set() // Act var tab = controller.GetActiveTab(ValidTabId, settings); - // Assert - Assert.AreEqual(DateTime.MinValue, tab.StartDate); - Assert.AreEqual(DateTime.MaxValue, tab.EndDate); + Assert.Multiple(() => + { + // Assert + Assert.That(tab.StartDate, Is.EqualTo(DateTime.MinValue)); + Assert.That(tab.EndDate, Is.EqualTo(DateTime.MaxValue)); + }); } [Test] @@ -438,7 +444,7 @@ public void ConfigureTab_Uses_PortalSettings_DefaultSkin_If_SkinSrc_Not_Set() controller.ConfigureActiveTab(settings); // Assert - Assert.AreEqual(DefaultSkin, settings.ActiveTab.SkinSrc); + Assert.That(settings.ActiveTab.SkinSrc, Is.EqualTo(DefaultSkin)); } [Test] @@ -466,7 +472,7 @@ public void ConfigureTab_Uses_Tab_SkinSrc_If_SkinSrc_Set() controller.ConfigureActiveTab(settings); // Assert - Assert.AreEqual(TabSkin, settings.ActiveTab.SkinSrc); + Assert.That(settings.ActiveTab.SkinSrc, Is.EqualTo(TabSkin)); } [Test] @@ -494,7 +500,7 @@ public void ConfigureTab_Formats_Tab_SkinSrc_If_Neccessary() controller.ConfigureActiveTab(settings); // Assert - Assert.AreEqual(SkinController.FormatSkinSrc(GlobalTabSkin, settings), settings.ActiveTab.SkinSrc); + Assert.That(settings.ActiveTab.SkinSrc, Is.EqualTo(SkinController.FormatSkinSrc(GlobalTabSkin, settings))); } [Test] @@ -523,7 +529,7 @@ public void ConfigureTab_Uses_PortalSettings_DefaultContainer_If_ContainerSrc_No controller.ConfigureActiveTab(settings); // Assert - Assert.AreEqual(DefaultContainer, settings.ActiveTab.ContainerSrc); + Assert.That(settings.ActiveTab.ContainerSrc, Is.EqualTo(DefaultContainer)); } [Test] @@ -550,7 +556,7 @@ public void ConfigureTab_Uses_Tab_ContainerSrc_If_ContainerSrc_Set() controller.ConfigureActiveTab(settings); // Assert - Assert.AreEqual(TabContainer, settings.ActiveTab.ContainerSrc); + Assert.That(settings.ActiveTab.ContainerSrc, Is.EqualTo(TabContainer)); } [Test] @@ -577,7 +583,7 @@ public void ConfigureTab_Formats_Tab_ContainerSrc_If_Neccessary() controller.ConfigureActiveTab(settings); // Assert - Assert.AreEqual(SkinController.FormatSkinSrc(GlobalTabContainer, settings), settings.ActiveTab.ContainerSrc); + Assert.That(settings.ActiveTab.ContainerSrc, Is.EqualTo(SkinController.FormatSkinSrc(GlobalTabContainer, settings))); } [Test] @@ -605,8 +611,8 @@ public void ConfigureTab_Builds_Breadcrumbs_For_Tab() controller.ConfigureActiveTab(settings); // Assert - Assert.NotNull(settings.ActiveTab.BreadCrumbs); - Assert.AreEqual(1, settings.ActiveTab.BreadCrumbs.Count); + Assert.That(settings.ActiveTab.BreadCrumbs, Is.Not.Null); + Assert.That(settings.ActiveTab.BreadCrumbs, Has.Count.EqualTo(1)); } [Test] @@ -638,9 +644,12 @@ public void ConfigureTab_Builds_Breadcrumbs_For_Tab_And_Parent() // Assert var actualParent = settings.ActiveTab.BreadCrumbs[0] as TabInfo; var actualTab = settings.ActiveTab.BreadCrumbs[1] as TabInfo; - Assert.AreEqual(2, settings.ActiveTab.BreadCrumbs.Count); - Assert.AreEqual(ValidTabId, actualTab.TabID); - Assert.AreEqual(ParentTabId, actualParent.TabID); + Assert.Multiple(() => + { + Assert.That(settings.ActiveTab.BreadCrumbs, Has.Count.EqualTo(2)); + Assert.That(actualTab.TabID, Is.EqualTo(ValidTabId)); + Assert.That(actualParent.TabID, Is.EqualTo(ParentTabId)); + }); } } } diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Core/Entities/Portals/PortalSettingsTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Core/Entities/Portals/PortalSettingsTests.cs index 07b338c3df4..9d3eb86f865 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Core/Entities/Portals/PortalSettingsTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Core/Entities/Portals/PortalSettingsTests.cs @@ -38,7 +38,7 @@ public void Constructor_Creates_Registration_Property() var settings = new PortalSettings(); // Assert - Assert.IsNotNull(settings.Registration); + Assert.That(settings.Registration, Is.Not.Null); } [Test] @@ -54,7 +54,7 @@ public void Constructor_Sets_PortalId_When_Passed_PortalId() var settings = new PortalSettings(ValidTabId, ValidPortalId); // Assert - Assert.AreEqual(ValidPortalId, settings.PortalId); + Assert.That(settings.PortalId, Is.EqualTo(ValidPortalId)); } [Test] @@ -72,7 +72,7 @@ public void Constructor_Sets_PortalId_When_Passed_PortalAlias() var settings = new PortalSettings(ValidTabId, portalAlias); // Assert - Assert.AreEqual(ValidPortalId, settings.PortalId); + Assert.That(settings.PortalId, Is.EqualTo(ValidPortalId)); } [Test] @@ -90,7 +90,7 @@ public void Constructor_Sets_PortalAlias_When_Passed_PortalAlias() var settings = new PortalSettings(ValidTabId, portalAlias); // Assert - Assert.AreEqual(portalAlias, settings.PortalAlias); + Assert.That(settings.PortalAlias, Is.EqualTo(portalAlias)); } [Test] @@ -106,7 +106,7 @@ public void Constructor_Sets_PortalId_When_Passed_Portal() var settings = new PortalSettings(ValidTabId, portal); // Assert - Assert.AreEqual(ValidPortalId, settings.PortalId); + Assert.That(settings.PortalId, Is.EqualTo(ValidPortalId)); } [Test] @@ -122,7 +122,7 @@ public void Constructor_Does_Not_Set_PortalId_When_Passed_Null_Portal() var settings = new PortalSettings(ValidTabId, (PortalInfo)null); // Assert - Assert.AreEqual(InValidPortalId, settings.PortalId); + Assert.That(settings.PortalId, Is.EqualTo(InValidPortalId)); } [Test] @@ -373,7 +373,7 @@ public void Constructor_Sets_ActiveTab_Property_If_Valid_TabId_And_PortalId() var settings = new PortalSettings(ValidTabId, ValidPortalId); // Assert - Assert.NotNull(settings.ActiveTab); + Assert.That(settings.ActiveTab, Is.Not.Null); } [Test] @@ -394,7 +394,7 @@ public void Constructor_Sets_ActiveTab_Property_To_Null_If_InValid_TabId_And_Por var settings = new PortalSettings(ValidTabId, ValidPortalId); // Assert - Assert.Null(settings.ActiveTab); + Assert.That(settings.ActiveTab, Is.Null); } [Test] @@ -412,7 +412,7 @@ public void Constructor_Sets_ActiveTab_Property_If_Valid_TabId_And_Portal() var settings = new PortalSettings(ValidTabId, portal); // Assert - Assert.NotNull(settings.ActiveTab); + Assert.That(settings.ActiveTab, Is.Not.Null); } [Test] @@ -435,7 +435,7 @@ public void Constructor_Sets_ActiveTab_Property_If_Valid_TabId_And_PortalAlias() var settings = new PortalSettings(ValidTabId, portalAlias); // Assert - Assert.NotNull(settings.ActiveTab); + Assert.That(settings.ActiveTab, Is.Not.Null); } private PortalInfo CreatePortal(int portalId) diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Core/Entities/Tabs/TabChangeTrackerTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Core/Entities/Tabs/TabChangeTrackerTests.cs index b44fde9c072..07b31e4d14e 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Core/Entities/Tabs/TabChangeTrackerTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Core/Entities/Tabs/TabChangeTrackerTests.cs @@ -26,7 +26,7 @@ public void TrackModuleModification_WithSharedModule_ThrowsException() // Act & Assert var exception = Assert.Throws(() => tabChangeTracker.TrackModuleModification(null, 1, 0)); - Assert.AreEqual(true, exception.Data?[TabChangeTracker.IsModuleDoesNotBelongToPage]); + Assert.That(exception.Data?[TabChangeTracker.IsModuleDoesNotBelongToPage], Is.EqualTo(true)); } } } diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Core/Entities/Tabs/TabControllerTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Core/Entities/Tabs/TabControllerTests.cs index 57c10d5a7ca..a3ecf6c07ff 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Core/Entities/Tabs/TabControllerTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Core/Entities/Tabs/TabControllerTests.cs @@ -60,11 +60,14 @@ public void IsValidadTab_Returns_False_For_Forbidden_PageNames(string tabName) string invalidType; // Act - var isValid = TabController.IsValidTabName(tabName, out invalidType); - - // Assert - Assert.IsFalse(isValid, "A forbidden tab name is allowed"); - Assert.AreEqual("InvalidTabName", invalidType, "The invalidType is not the expected one"); + var isValid = TabController.IsValidTabName(tabName, out invalidType); + + Assert.Multiple(() => + { + // Assert + Assert.That(isValid, Is.False, "A forbidden tab name is allowed"); + Assert.That(invalidType, Is.EqualTo("InvalidTabName"), "The invalidType is not the expected one"); + }); } [Test] @@ -75,11 +78,14 @@ public void IsValidadTab_Returns_False_For_Empty_PageNames() string invalidType; // Act - var isValid = TabController.IsValidTabName(string.Empty, out invalidType); - - // Assert - Assert.IsFalse(isValid, "An empty tab name is allowed"); - Assert.AreEqual("EmptyTabName", invalidType, "The invalidType is not the expected one"); + var isValid = TabController.IsValidTabName(string.Empty, out invalidType); + + Assert.Multiple(() => + { + // Assert + Assert.That(isValid, Is.False, "An empty tab name is allowed"); + Assert.That(invalidType, Is.EqualTo("EmptyTabName"), "The invalidType is not the expected one"); + }); } [Test] @@ -93,11 +99,14 @@ public void IsValidadTab_Returns_True_For_Regular_PageNames(string tabName) string invalidType; // Act - var isValid = TabController.IsValidTabName(tabName, out invalidType); - - // Assert - Assert.IsTrue(isValid, "A regular tab name is not allowed"); - Assert.AreEqual(string.Empty, invalidType, "The invalidType is not the expected one"); + var isValid = TabController.IsValidTabName(tabName, out invalidType); + + Assert.Multiple(() => + { + // Assert + Assert.That(isValid, Is.True, "A regular tab name is not allowed"); + Assert.That(invalidType, Is.EqualTo(string.Empty), "The invalidType is not the expected one"); + }); } } } diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Core/Entities/Urls/AdvancedUrlRewriterTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Core/Entities/Urls/AdvancedUrlRewriterTests.cs index 33ef1c52900..30117bdf400 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Core/Entities/Urls/AdvancedUrlRewriterTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Core/Entities/Urls/AdvancedUrlRewriterTests.cs @@ -170,7 +170,7 @@ public void CheckForRedirects_WithUmlautUrls_DontRedirectInfinitely() }); // Assert - Assert.AreEqual(false, isRedirected); + Assert.That(isRedirected, Is.EqualTo(false)); } private void FillTabsTable(DataTable tabsTable) diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Core/Entities/Urls/FriendlyUrlControllerTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Core/Entities/Urls/FriendlyUrlControllerTests.cs index aedf2712645..8f986aac619 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Core/Entities/Urls/FriendlyUrlControllerTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Core/Entities/Urls/FriendlyUrlControllerTests.cs @@ -32,8 +32,11 @@ public void DoesNothingToSimpleText() bool replacedUnwantedChars; string result = FriendlyUrlController.CleanNameForUrl("abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ", CreateFriendlyUrlOptions(), out replacedUnwantedChars); - Assert.IsFalse(replacedUnwantedChars); - Assert.AreEqual("abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ", result); + Assert.Multiple(() => + { + Assert.That(replacedUnwantedChars, Is.False); + Assert.That(result, Is.EqualTo("abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ")); + }); } [Test] @@ -42,8 +45,11 @@ public void RemoveSpace() bool replacedUnwantedChars; string result = FriendlyUrlController.CleanNameForUrl("123 abc", CreateFriendlyUrlOptions(), out replacedUnwantedChars); - Assert.IsFalse(replacedUnwantedChars); - Assert.AreEqual("123abc", result); + Assert.Multiple(() => + { + Assert.That(replacedUnwantedChars, Is.False); + Assert.That(result, Is.EqualTo("123abc")); + }); } [Test] @@ -52,8 +58,11 @@ public void ReplaceSpaceWithHyphen() bool replacedUnwantedChars; string result = FriendlyUrlController.CleanNameForUrl("123 abc", CreateFriendlyUrlOptions(replaceSpaceWith: "-"), out replacedUnwantedChars); - Assert.IsFalse(replacedUnwantedChars); - Assert.AreEqual("123-abc", result); + Assert.Multiple(() => + { + Assert.That(replacedUnwantedChars, Is.False); + Assert.That(result, Is.EqualTo("123-abc")); + }); } [Test] @@ -62,8 +71,11 @@ public void RemoveApostrophe() bool replacedUnwantedChars; string result = FriendlyUrlController.CleanNameForUrl("Fred's House", CreateFriendlyUrlOptions(), out replacedUnwantedChars); - Assert.IsTrue(replacedUnwantedChars); - Assert.AreEqual("FredsHouse", result); + Assert.Multiple(() => + { + Assert.That(replacedUnwantedChars, Is.True); + Assert.That(result, Is.EqualTo("FredsHouse")); + }); } [Test] @@ -72,8 +84,11 @@ public void RemoveCharactersInReplaceList() bool replacedUnwantedChars; string result = FriendlyUrlController.CleanNameForUrl(@"a b&c$d+e,f/g?h~i#jl(m)n¿o¡p«q»r!s""t", CreateFriendlyUrlOptions(), out replacedUnwantedChars); - Assert.IsTrue(replacedUnwantedChars); - Assert.AreEqual("abcdefghijklmnopqrst", result); + Assert.Multiple(() => + { + Assert.That(replacedUnwantedChars, Is.True); + Assert.That(result, Is.EqualTo("abcdefghijklmnopqrst")); + }); } [Test] @@ -82,8 +97,11 @@ public void ReplaceCharactersInReplaceList() bool replacedUnwantedChars; string result = FriendlyUrlController.CleanNameForUrl(@"a b&c$d+e,f/g?h~i#jl(m)n¿o¡p«q»r!s""t", CreateFriendlyUrlOptions(replaceSpaceWith: "_"), out replacedUnwantedChars); - Assert.IsTrue(replacedUnwantedChars); - Assert.AreEqual("a_b_c_d_e_f_g_h_i_j_k_l_m_n_o_p_q_r_s_t", result); + Assert.Multiple(() => + { + Assert.That(replacedUnwantedChars, Is.True); + Assert.That(result, Is.EqualTo("a_b_c_d_e_f_g_h_i_j_k_l_m_n_o_p_q_r_s_t")); + }); } [Test] @@ -92,8 +110,11 @@ public void RemoveCharactersInReplaceListWhenReplacementCharacterIsNotAMatchingC bool replacedUnwantedChars; string result = FriendlyUrlController.CleanNameForUrl(@"a b&c$d+e,f/g?h~i#jl(m)n¿o¡p«q»r!s""t", CreateFriendlyUrlOptions(replaceSpaceWith: "."), out replacedUnwantedChars); - Assert.IsTrue(replacedUnwantedChars); - Assert.AreEqual("abcdefghijklmnopqrst", result); + Assert.Multiple(() => + { + Assert.That(replacedUnwantedChars, Is.True); + Assert.That(result, Is.EqualTo("abcdefghijklmnopqrst")); + }); } [Test] @@ -102,8 +123,11 @@ public void RemovePunctuatuation() bool replacedUnwantedChars; string result = FriendlyUrlController.CleanNameForUrl("Dr. Cousteau, where are you?", CreateFriendlyUrlOptions(), out replacedUnwantedChars); - Assert.IsTrue(replacedUnwantedChars); - Assert.AreEqual("DrCousteauwhereareyou", result); + Assert.Multiple(() => + { + Assert.That(replacedUnwantedChars, Is.True); + Assert.That(result, Is.EqualTo("DrCousteauwhereareyou")); + }); } [Test] @@ -112,8 +136,11 @@ public void RemoveDoubleReplacements() bool replacedUnwantedChars; string result = FriendlyUrlController.CleanNameForUrl("This, .Has Lots Of---Replacements Don't you think?", CreateFriendlyUrlOptions(replaceSpaceWith: "-"), out replacedUnwantedChars); - Assert.IsTrue(replacedUnwantedChars); - Assert.AreEqual("This-Has-Lots-Of-Replacements-Dont-you-think", result); + Assert.Multiple(() => + { + Assert.That(replacedUnwantedChars, Is.True); + Assert.That(result, Is.EqualTo("This-Has-Lots-Of-Replacements-Dont-you-think")); + }); } [Test] @@ -122,8 +149,11 @@ public void DoNotRemoveDoubleReplacements() bool replacedUnwantedChars; string result = FriendlyUrlController.CleanNameForUrl("This, ,Has Lots Of---Replacements Don't you think?", CreateFriendlyUrlOptions(replaceDoubleChars: false, replaceSpaceWith: "-"), out replacedUnwantedChars); - Assert.IsTrue(replacedUnwantedChars); - Assert.AreEqual("This---Has-Lots-Of---Replacements---Dont-you-think", result); + Assert.Multiple(() => + { + Assert.That(replacedUnwantedChars, Is.True); + Assert.That(result, Is.EqualTo("This---Has-Lots-Of---Replacements---Dont-you-think")); + }); } [Test] @@ -132,8 +162,11 @@ public void DoNotConvertVietnameseDiacritics() bool replacedUnwantedChars; string result = FriendlyUrlController.CleanNameForUrl("DấuNgãSắcHuyềnNặngHỏi", CreateFriendlyUrlOptions(), out replacedUnwantedChars); - Assert.IsFalse(replacedUnwantedChars); - Assert.AreEqual("DấuNgãSắcHuyềnNặngHỏi", result); + Assert.Multiple(() => + { + Assert.That(replacedUnwantedChars, Is.False); + Assert.That(result, Is.EqualTo("DấuNgãSắcHuyềnNặngHỏi")); + }); } [Test] @@ -142,8 +175,11 @@ public void DoNotConvertFrenchDiacritics() bool replacedUnwantedChars; string result = FriendlyUrlController.CleanNameForUrl("CrèmeFraîcheCédille", CreateFriendlyUrlOptions(), out replacedUnwantedChars); - Assert.IsFalse(replacedUnwantedChars); - Assert.AreEqual("CrèmeFraîcheCédille", result); + Assert.Multiple(() => + { + Assert.That(replacedUnwantedChars, Is.False); + Assert.That(result, Is.EqualTo("CrèmeFraîcheCédille")); + }); } [Test] @@ -152,8 +188,11 @@ public void DoNotConvertRussianDiacritics() bool replacedUnwantedChars; string result = FriendlyUrlController.CleanNameForUrl("писа́тьбо́льшая", CreateFriendlyUrlOptions(), out replacedUnwantedChars); - Assert.IsFalse(replacedUnwantedChars); - Assert.AreEqual("писа́тьбо́льшая", result); + Assert.Multiple(() => + { + Assert.That(replacedUnwantedChars, Is.False); + Assert.That(result, Is.EqualTo("писа́тьбо́льшая")); + }); } [Test] @@ -162,8 +201,11 @@ public void DoNotConvertLeoneseDiacritics() bool replacedUnwantedChars; string result = FriendlyUrlController.CleanNameForUrl("ñavidá", CreateFriendlyUrlOptions(), out replacedUnwantedChars); - Assert.IsFalse(replacedUnwantedChars); - Assert.AreEqual("ñavidá", result); + Assert.Multiple(() => + { + Assert.That(replacedUnwantedChars, Is.False); + Assert.That(result, Is.EqualTo("ñavidá")); + }); } [Test] @@ -172,8 +214,11 @@ public void ConvertVietnameseDiacritics() bool replacedUnwantedChars; string result = FriendlyUrlController.CleanNameForUrl("DấuNgãSắcHuyềnNặngHỏi", CreateFriendlyUrlOptions(autoAsciiConvert: true), out replacedUnwantedChars); - Assert.IsTrue(replacedUnwantedChars); - Assert.AreEqual("DauNgaSacHuyenNangHoi", result); + Assert.Multiple(() => + { + Assert.That(replacedUnwantedChars, Is.True); + Assert.That(result, Is.EqualTo("DauNgaSacHuyenNangHoi")); + }); } [Test] @@ -182,8 +227,11 @@ public void ConvertFrenchDiacritics() bool replacedUnwantedChars; string result = FriendlyUrlController.CleanNameForUrl("CrèmeFraîcheCédille", CreateFriendlyUrlOptions(autoAsciiConvert: true), out replacedUnwantedChars); - Assert.IsTrue(replacedUnwantedChars); - Assert.AreEqual("CremeFraicheCedille", result); + Assert.Multiple(() => + { + Assert.That(replacedUnwantedChars, Is.True); + Assert.That(result, Is.EqualTo("CremeFraicheCedille")); + }); } [Test] @@ -192,8 +240,11 @@ public void ConvertRussianDiacritics() bool replacedUnwantedChars; string result = FriendlyUrlController.CleanNameForUrl("писа́тьбо́льшая", CreateFriendlyUrlOptions(autoAsciiConvert: true), out replacedUnwantedChars); - Assert.IsTrue(replacedUnwantedChars); - Assert.AreEqual("писатьбольшая", result); + Assert.Multiple(() => + { + Assert.That(replacedUnwantedChars, Is.True); + Assert.That(result, Is.EqualTo("писатьбольшая")); + }); } [Test] @@ -202,8 +253,11 @@ public void ConvertLeoneseDiacritics() bool replacedUnwantedChars; string result = FriendlyUrlController.CleanNameForUrl("ñavidá", CreateFriendlyUrlOptions(autoAsciiConvert: true), out replacedUnwantedChars); - Assert.IsTrue(replacedUnwantedChars); - Assert.AreEqual("navida", result); + Assert.Multiple(() => + { + Assert.That(replacedUnwantedChars, Is.True); + Assert.That(result, Is.EqualTo("navida")); + }); } [Test] @@ -213,8 +267,11 @@ public void ReplaceBeforeConvertingDiacritics() var replacements = new Dictionary(1) { { "ñ", "nn" }, }; string result = FriendlyUrlController.CleanNameForUrl("Carreño", CreateFriendlyUrlOptions(replaceCharacterDictionary: replacements), out replacedUnwantedChars); - Assert.IsTrue(replacedUnwantedChars); - Assert.AreEqual("Carrenno", result); + Assert.Multiple(() => + { + Assert.That(replacedUnwantedChars, Is.True); + Assert.That(result, Is.EqualTo("Carrenno")); + }); } private static FriendlyUrlOptions CreateFriendlyUrlOptions( diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Core/EscapedStringTest.cs b/DNN Platform/Tests/DotNetNuke.Tests.Core/EscapedStringTest.cs index 52b097417ec..e10688830ae 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Core/EscapedStringTest.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Core/EscapedStringTest.cs @@ -26,7 +26,7 @@ public void CombinesWithSpecifiedSeperator() { string result = EscapedString.Combine(new[] { "first", "second" }, ';'); - Assert.AreEqual("first;second", result); + Assert.That(result, Is.EqualTo("first;second")); } [Test] @@ -34,7 +34,7 @@ public void SeperatesWithSpecifiedSeperator() { IEnumerable result = EscapedString.Seperate("first]second", ']'); - CollectionAssert.AreEqual(new[] { "first", "second" }, result); + Assert.That(result, Is.EqualTo(new[] { "first", "second" }).AsCollection); } [Test] @@ -139,14 +139,14 @@ private void SeperateTest(IEnumerable expected, string data, bool trimWh { var result = EscapedString.Seperate(data, trimWhitespaces); - CollectionAssert.AreEqual(expected, result); + Assert.That(result, Is.EqualTo(expected).AsCollection); } private void CombineTest(IEnumerable data, string expected) { string result = EscapedString.Combine(data); - Assert.AreEqual(expected, result); + Assert.That(result, Is.EqualTo(expected)); } } } diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Core/FileSystemUtilsTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Core/FileSystemUtilsTests.cs index 81fb1613f63..2b1fe55d7e7 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Core/FileSystemUtilsTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Core/FileSystemUtilsTests.cs @@ -65,7 +65,7 @@ public void DeleteFiles_Should_Not_Able_To_Delete_Root_Folder(string path) FileSystemUtils.DeleteFiles(new string[] { path }); var files = Directory.GetFiles(Globals.ApplicationMapPath, "*.*", SearchOption.AllDirectories); - Assert.Greater(files.Length, 0); + Assert.That(files.Length, Is.GreaterThan(0)); } [Test] @@ -105,7 +105,7 @@ public void AddToZip_Should_Able_To_Add_Multiple_Files() } var unZippedFiles = Directory.GetFiles(destPath, "*.*", SearchOption.TopDirectoryOnly); - Assert.AreEqual(files.Length, unZippedFiles.Length); + Assert.That(unZippedFiles, Has.Length.EqualTo(files.Length)); } finally { @@ -128,7 +128,7 @@ public void DeleteFile_Should_Delete_File() // Assert bool res = File.Exists(testPath.Replace("/", "\\")); - Assert.IsFalse(res); + Assert.That(res, Is.False); } [TestCase(null)] @@ -144,16 +144,19 @@ public void FixPath_Should_Change_Slashes_And_Trim(string input) // Assert if (string.IsNullOrEmpty(input)) { - Assert.IsTrue(input == result); + Assert.That(input == result, Is.True); } else if (string.IsNullOrWhiteSpace(input)) { - Assert.IsTrue(result == string.Empty); + Assert.That(result == string.Empty, Is.True); } else - { - Assert.IsFalse(result.Contains(" ")); - Assert.IsFalse(result.Contains("/")); + { + Assert.Multiple(() => + { + Assert.That(result.Contains(" "), Is.False); + Assert.That(result.Contains("/"), Is.False); + }); } } diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Core/Framework/JavaScriptLibraries/JavaScriptTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Core/Framework/JavaScriptLibraries/JavaScriptTests.cs index 992be335aa0..e28684aa56a 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Core/Framework/JavaScriptLibraries/JavaScriptTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Core/Framework/JavaScriptLibraries/JavaScriptTests.cs @@ -87,7 +87,7 @@ public void CanRegisterLibraryByName() JavaScript.RequestRegistration("Test"); // Assert - Assert.AreEqual(true, this._httpContext.Items[ScriptPrefix + JavaScriptLibraryID]); + Assert.That(this._httpContext.Items[ScriptPrefix + JavaScriptLibraryID], Is.EqualTo(true)); } [Test] @@ -107,7 +107,7 @@ public void CanRegisterLibraryByNameWithMismatchedCase() JavaScript.RequestRegistration("test"); // Assert - Assert.AreEqual(true, this._httpContext.Items[ScriptPrefix + JavaScriptLibraryID]); + Assert.That(this._httpContext.Items[ScriptPrefix + JavaScriptLibraryID], Is.EqualTo(true)); } [Test] @@ -127,7 +127,7 @@ public void CanRegisterLibraryByNameAndVersion() JavaScript.RequestRegistration("Test", new Version(2, 2, 2)); // Assert - Assert.AreEqual(true, this._httpContext.Items[ScriptPrefix + JavaScriptLibraryID]); + Assert.That(this._httpContext.Items[ScriptPrefix + JavaScriptLibraryID], Is.EqualTo(true)); } [Test] @@ -147,7 +147,7 @@ public void CanRegisterLibraryByNameAndExactVersion() JavaScript.RequestRegistration("Test", new Version(2, 2, 2), SpecificVersion.Exact); // Assert - Assert.AreEqual(true, this._httpContext.Items[ScriptPrefix + JavaScriptLibraryID]); + Assert.That(this._httpContext.Items[ScriptPrefix + JavaScriptLibraryID], Is.EqualTo(true)); } [Test] @@ -167,7 +167,7 @@ public void CanRegisterLibraryByNameWithMismatchedCaseAndExactVersion() JavaScript.RequestRegistration("test", new Version(2, 2, 2), SpecificVersion.Exact); // Assert - Assert.AreEqual(true, this._httpContext.Items[ScriptPrefix + JavaScriptLibraryID]); + Assert.That(this._httpContext.Items[ScriptPrefix + JavaScriptLibraryID], Is.EqualTo(true)); } [Test] @@ -187,7 +187,7 @@ public void FailToRegisterLibraryByNameAndMismatchedVersion() JavaScript.RequestRegistration("Test", new Version(2, 2, 0)); // Assert - Assert.AreNotEqual(true, this._httpContext.Items[ScriptPrefix + JavaScriptLibraryID]); + Assert.That(this._httpContext.Items[ScriptPrefix + JavaScriptLibraryID], Is.Not.EqualTo(true)); } [Test] @@ -207,7 +207,7 @@ public void FailToRegisterLibraryByNameAndMismatchedExactVersion() JavaScript.RequestRegistration("Test", new Version(2, 2, 0), SpecificVersion.Exact); // Assert - Assert.AreNotEqual(true, this._httpContext.Items[ScriptPrefix + JavaScriptLibraryID]); + Assert.That(this._httpContext.Items[ScriptPrefix + JavaScriptLibraryID], Is.Not.EqualTo(true)); } [Test] @@ -227,7 +227,7 @@ public void CanRegisterLibraryByNameAndSameMinorVersion() JavaScript.RequestRegistration("Test", new Version(2, 2, 0), SpecificVersion.LatestMinor); // Assert - Assert.AreEqual(true, this._httpContext.Items[ScriptPrefix + JavaScriptLibraryID]); + Assert.That(this._httpContext.Items[ScriptPrefix + JavaScriptLibraryID], Is.EqualTo(true)); } [Test] @@ -247,7 +247,7 @@ public void CanRegisterLibraryByNameWithMismatchedCaseAndSameMinorVersion() JavaScript.RequestRegistration("test", new Version(2, 2, 0), SpecificVersion.LatestMinor); // Assert - Assert.AreEqual(true, this._httpContext.Items[ScriptPrefix + JavaScriptLibraryID]); + Assert.That(this._httpContext.Items[ScriptPrefix + JavaScriptLibraryID], Is.EqualTo(true)); } [Test] @@ -273,9 +273,12 @@ public void FallbackToHighestVersionLibraryWhenDifferentMinorVersion() // Act JavaScript.RequestRegistration("Test", new Version(2, 2, 2), SpecificVersion.LatestMinor); - // Assert - Assert.AreNotEqual(true, this._httpContext.Items[ScriptPrefix + lowerVersionJavaScriptLibraryId]); - Assert.AreEqual(true, this._httpContext.Items[ScriptPrefix + higherVersionJavaScriptLibraryId]); + Assert.Multiple(() => + { + // Assert + Assert.That(this._httpContext.Items[ScriptPrefix + lowerVersionJavaScriptLibraryId], Is.Not.EqualTo(true)); + Assert.That(this._httpContext.Items[ScriptPrefix + higherVersionJavaScriptLibraryId], Is.EqualTo(true)); + }); } [Test] @@ -301,9 +304,12 @@ public void FallbackToHighestVersionLibraryWhenDifferentMinorVersionWithMismatch // Act JavaScript.RequestRegistration("test", new Version(2, 2, 2), SpecificVersion.LatestMinor); - // Assert - Assert.AreNotEqual(true, this._httpContext.Items[ScriptPrefix + lowerVersionJavaScriptLibraryId]); - Assert.AreEqual(true, this._httpContext.Items[ScriptPrefix + higherVersionJavaScriptLibraryId]); + Assert.Multiple(() => + { + // Assert + Assert.That(this._httpContext.Items[ScriptPrefix + lowerVersionJavaScriptLibraryId], Is.Not.EqualTo(true)); + Assert.That(this._httpContext.Items[ScriptPrefix + higherVersionJavaScriptLibraryId], Is.EqualTo(true)); + }); } [Test] @@ -323,7 +329,7 @@ public void CanRegisterLibraryByNameAndSameMajorVersion() JavaScript.RequestRegistration("Test", new Version(2, 1, 1), SpecificVersion.LatestMajor); // Assert - Assert.AreEqual(true, this._httpContext.Items[ScriptPrefix + JavaScriptLibraryID]); + Assert.That(this._httpContext.Items[ScriptPrefix + JavaScriptLibraryID], Is.EqualTo(true)); } [Test] @@ -343,7 +349,7 @@ public void CanRegisterLibraryByNameWithMismatchedCaseAndSameMajorVersion() JavaScript.RequestRegistration("test", new Version(2, 1, 1), SpecificVersion.LatestMajor); // Assert - Assert.AreEqual(true, this._httpContext.Items[ScriptPrefix + JavaScriptLibraryID]); + Assert.That(this._httpContext.Items[ScriptPrefix + JavaScriptLibraryID], Is.EqualTo(true)); } [Test] @@ -369,9 +375,12 @@ public void FallbackToHighestVersionLibraryWhenDifferentMajorVersion() // Act JavaScript.RequestRegistration("Test", new Version(2, 2, 2), SpecificVersion.LatestMajor); - // Assert - Assert.AreNotEqual(true, this._httpContext.Items[ScriptPrefix + lowerVersionJavaScriptLibraryId]); - Assert.AreEqual(true, this._httpContext.Items[ScriptPrefix + higherVersionJavaScriptLibraryId]); + Assert.Multiple(() => + { + // Assert + Assert.That(this._httpContext.Items[ScriptPrefix + lowerVersionJavaScriptLibraryId], Is.Not.EqualTo(true)); + Assert.That(this._httpContext.Items[ScriptPrefix + higherVersionJavaScriptLibraryId], Is.EqualTo(true)); + }); } [Test] @@ -397,9 +406,12 @@ public void FallbackToHighestVersionLibraryWhenDifferentMajorVersionWithMismatch // Act JavaScript.RequestRegistration("test", new Version(2, 2, 2), SpecificVersion.LatestMajor); - // Assert - Assert.AreNotEqual(true, this._httpContext.Items[ScriptPrefix + lowerVersionJavaScriptLibraryId]); - Assert.AreEqual(true, this._httpContext.Items[ScriptPrefix + higherVersionJavaScriptLibraryId]); + Assert.Multiple(() => + { + // Assert + Assert.That(this._httpContext.Items[ScriptPrefix + lowerVersionJavaScriptLibraryId], Is.Not.EqualTo(true)); + Assert.That(this._httpContext.Items[ScriptPrefix + higherVersionJavaScriptLibraryId], Is.EqualTo(true)); + }); } private void SetupJavaScriptLibraryController(params JavaScriptLibrary[] libraries) diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Core/Framework/ReflectionTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Core/Framework/ReflectionTests.cs index c25d32794e3..f1e254d803e 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Core/Framework/ReflectionTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Core/Framework/ReflectionTests.cs @@ -18,7 +18,7 @@ public void CreateInstance_WithArgs_WorksCorrectly() var result = (StringBuilder)Reflection.CreateInstance(typeToCreate, argToPass); // Assert - Assert.AreEqual("one", result.ToString()); + Assert.That(result.ToString(), Is.EqualTo("one")); } [Test] @@ -31,7 +31,7 @@ public void CreateInstance_WithoutArgs_WorksCorrectly() var result = (StringBuilder)Reflection.CreateInstance(typeToCreate); // Assert - Assert.AreEqual(string.Empty, result.ToString()); + Assert.That(result.ToString(), Is.EqualTo(string.Empty)); } } } diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Core/Framework/ServicesFrameworkTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Core/Framework/ServicesFrameworkTests.cs index cbdf87fd4a0..d8cf4cdc99d 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Core/Framework/ServicesFrameworkTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Core/Framework/ServicesFrameworkTests.cs @@ -52,14 +52,14 @@ public void RequestingAjaxAntiForgeryIsNoted() ServicesFramework.Instance.RequestAjaxAntiForgerySupport(); // Assert - Assert.IsTrue(ServicesFrameworkInternal.Instance.IsAjaxAntiForgerySupportRequired); + Assert.That(ServicesFrameworkInternal.Instance.IsAjaxAntiForgerySupportRequired, Is.True); } [Test] public void NoAjaxAntiForgeryRequestMeansNotRequired() { // Assert - Assert.IsFalse(ServicesFrameworkInternal.Instance.IsAjaxAntiForgerySupportRequired); + Assert.That(ServicesFrameworkInternal.Instance.IsAjaxAntiForgerySupportRequired, Is.False); } } } diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Core/Providers/Caching/DataCacheTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Core/Providers/Caching/DataCacheTests.cs index 7016873ffcb..dcf535711f8 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Core/Providers/Caching/DataCacheTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Core/Providers/Caching/DataCacheTests.cs @@ -41,8 +41,8 @@ public void DataCache_GetCache_Should_Return_On_Correct_CacheKey() object cacheValue = DataCache.GetCache(Constants.CACHEING_ValidKey); // Assert - Assert.IsInstanceOf(cacheValue); - Assert.AreEqual(Constants.CACHEING_ValidValue, cacheValue); + Assert.That(cacheValue, Is.InstanceOf()); + Assert.That(cacheValue, Is.EqualTo(Constants.CACHEING_ValidValue)); } [Test] @@ -55,7 +55,7 @@ public void DataCache_GetCache_Should_Return_Null_On_Incorrect_CacheKey() object cacheValue = DataCache.GetCache(Constants.CACHEING_InValidKey); // Assert - Assert.IsNull(cacheValue); + Assert.That(cacheValue, Is.Null); } [Test] @@ -76,8 +76,8 @@ public void DataCache_GetCacheOfT_Should_Return_On_Correct_CacheKey() object cacheValue = DataCache.GetCache(Constants.CACHEING_ValidKey); // Assert - Assert.IsInstanceOf(cacheValue); - Assert.AreEqual(Constants.CACHEING_ValidValue, cacheValue); + Assert.That(cacheValue, Is.InstanceOf()); + Assert.That(cacheValue, Is.EqualTo(Constants.CACHEING_ValidValue)); } [Test] @@ -90,7 +90,7 @@ public void DataCache_GetCacheOfT_Should_Return_Null_On_Incorrect_CacheKey() object cacheValue = DataCache.GetCache(Constants.CACHEING_InValidKey); // Assert - Assert.IsNull(cacheValue); + Assert.That(cacheValue, Is.Null); } [Test] diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Core/Providers/Folder/DatabaseFolderProviderTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Core/Providers/Folder/DatabaseFolderProviderTests.cs index 12eeb070624..93a54263aed 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Core/Providers/Folder/DatabaseFolderProviderTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Core/Providers/Folder/DatabaseFolderProviderTests.cs @@ -107,7 +107,7 @@ public void ExistsFile_Returns_True_When_File_Exists() var result = this._dfp.FileExists(this._folderInfo.Object, Constants.FOLDER_ValidFileName); - Assert.IsTrue(result); + Assert.That(result, Is.True); } [Test] @@ -121,7 +121,7 @@ public void ExistsFile_Returns_False_When_File_Does_Not_Exist() var result = this._dfp.FileExists(this._folderInfo.Object, Constants.FOLDER_ValidFileName); - Assert.IsFalse(result); + Assert.That(result, Is.False); } [Test] @@ -148,7 +148,7 @@ public void ExistsFolder_Returns_True_When_Folder_Exists() var result = this._dfp.FolderExists(Constants.FOLDER_ValidFolderRelativePath, folderMapping); - Assert.IsTrue(result); + Assert.That(result, Is.True); } [Test] @@ -162,7 +162,7 @@ public void ExistsFolder_Returns_False_When_Folder_Does_Not_Exist() var result = this._dfp.FolderExists(Constants.FOLDER_ValidFolderRelativePath, folderMapping); - Assert.IsFalse(result); + Assert.That(result, Is.False); } [Test] @@ -170,7 +170,7 @@ public void GetFileAttributes_Returns_Null() { var result = this._dfp.GetFileAttributes(It.IsAny()); - Assert.IsNull(result); + Assert.That(result, Is.Null); } [Test] @@ -212,7 +212,7 @@ public void GetFiles_Count_Equals_DataProvider_GetFiles_Count() var files = this._dfp.GetFiles(this._folderInfo.Object); - Assert.AreEqual(expectedFiles.Length, files.Length); + Assert.That(files, Has.Length.EqualTo(expectedFiles.Length)); } [Test] @@ -231,7 +231,7 @@ public void GetFiles_Returns_Valid_FileNames_When_Folder_Contains_Files() var files = this._dfp.GetFiles(this._folderInfo.Object); - CollectionAssert.AreEqual(expectedFiles, files); + Assert.That(files, Is.EqualTo(expectedFiles).AsCollection); } [Test] @@ -292,7 +292,7 @@ public void GetFileStream_Returns_Valid_Stream_When_File_Exists() resultBytes = ms.ToArray(); } - Assert.AreEqual(validFileBytes, resultBytes); + Assert.That(resultBytes, Is.EqualTo(validFileBytes)); } [Test] @@ -306,7 +306,7 @@ public void GetFileStream_Returns_Null_When_File_Does_Not_Exist() var result = this._dfp.GetFileStream(this._folderInfo.Object, Constants.FOLDER_ValidFileName); - Assert.IsNull(result); + Assert.That(result, Is.Null); } [Test] @@ -327,7 +327,7 @@ public void GetLastModificationTime_Returns_Null_Date() var result = this._dfp.GetLastModificationTime(this._fileInfo.Object); - Assert.AreEqual(expectedResult, result); + Assert.That(result, Is.EqualTo(expectedResult)); } [Test] @@ -375,7 +375,7 @@ public void GetSubFolders_Count_Equals_DataProvider_GetFoldersByParentFolder_Cou var result = this._dfp.GetSubFolders(Constants.FOLDER_ValidFolderRelativePath, folderMapping).ToList(); - Assert.AreEqual(subFolders.Count, result.Count); + Assert.That(result, Has.Count.EqualTo(subFolders.Count)); } [Test] @@ -401,7 +401,7 @@ public void GetSubFolders_Returns_Valid_SubFolders_When_Folder_Is_Not_Empty() var result = this._dfp.GetSubFolders(Constants.FOLDER_ValidFolderRelativePath, folderMapping).ToList(); - CollectionAssert.AreEqual(expectedResult, result); + Assert.That(result, Is.EqualTo(expectedResult).AsCollection); } [Test] @@ -409,7 +409,7 @@ public void IsInSync_Returns_True() { var result = this._dfp.IsInSync(It.IsAny()); - Assert.IsTrue(result); + Assert.That(result, Is.True); } [Test] @@ -417,7 +417,7 @@ public void SupportsFileAttributes_Returns_False() { var result = this._dfp.SupportsFileAttributes(); - Assert.IsFalse(result); + Assert.That(result, Is.False); } [Test] diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Core/Providers/Folder/DefaultFolderProvidersTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Core/Providers/Folder/DefaultFolderProvidersTests.cs index ba415d482f0..167eb3749b0 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Core/Providers/Folder/DefaultFolderProvidersTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Core/Providers/Folder/DefaultFolderProvidersTests.cs @@ -19,7 +19,7 @@ public void GetDefaultProviders_Should_Return_3_Valid_Providers() var defaultProviders = DefaultFolderProviders.GetDefaultProviders(); - CollectionAssert.AreEqual(expectedValues, defaultProviders); + Assert.That(defaultProviders, Is.EqualTo(expectedValues).AsCollection); } } } diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Core/Providers/Folder/FileContentTypeManagerTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Core/Providers/Folder/FileContentTypeManagerTests.cs index 124b181b9df..c3cfc4c9e0a 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Core/Providers/Folder/FileContentTypeManagerTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Core/Providers/Folder/FileContentTypeManagerTests.cs @@ -59,7 +59,7 @@ public void GetContentType_Returns_Known_Value_When_Extension_Is_Not_Managed() var contentType = FileContentTypeManager.Instance.GetContentType(notManagedExtension); - Assert.AreEqual("application/octet-stream", contentType); + Assert.That(contentType, Is.EqualTo("application/octet-stream")); } [Test] @@ -69,7 +69,7 @@ public void GetContentType_Returns_Correct_Value_For_Extension() var contentType = FileContentTypeManager.Instance.GetContentType(notManagedExtension); - Assert.AreEqual("text/html", contentType); + Assert.That(contentType, Is.EqualTo("text/html")); } } } diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Core/Providers/Folder/FileLockingControllerTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Core/Providers/Folder/FileLockingControllerTests.cs index 9b23adb255f..c8dd6f50195 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Core/Providers/Folder/FileLockingControllerTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Core/Providers/Folder/FileLockingControllerTests.cs @@ -61,11 +61,14 @@ public void IsFileLocked_ReturnsTrue_WhenPublishPeriodIsOut() // Act string someReason; - var result = FileLockingController.Instance.IsFileLocked(fileInfo, out someReason); - - // Assert - Assert.IsTrue(result); - Assert.AreEqual(someReason, "FileLockedOutOfPublishPeriodError"); + var result = FileLockingController.Instance.IsFileLocked(fileInfo, out someReason); + + Assert.Multiple(() => + { + // Assert + Assert.That(result, Is.True); + Assert.That(someReason, Is.EqualTo("FileLockedOutOfPublishPeriodError")); + }); } [Test] @@ -83,11 +86,14 @@ public void IsFileLocked_ReturnsTrue_WhenWorkflowIsNotComplete() // Act string someReason; - var result = FileLockingController.Instance.IsFileLocked(fileInfo, out someReason); - - // Assert - Assert.IsTrue(result); - Assert.AreEqual(someReason, "FileLockedRunningWorkflowError"); + var result = FileLockingController.Instance.IsFileLocked(fileInfo, out someReason); + + Assert.Multiple(() => + { + // Assert + Assert.That(result, Is.True); + Assert.That(someReason, Is.EqualTo("FileLockedRunningWorkflowError")); + }); } [Test] @@ -106,7 +112,7 @@ public void IsFileLocked_ReturnsFalse_WhenUserIsHostOrAdmin() var result = FileLockingController.Instance.IsFileLocked(fileInfo, out someReason); // Assert - Assert.IsFalse(result); + Assert.That(result, Is.False); } [Test] @@ -124,7 +130,7 @@ public void IsFileLocked_ReturnsFalse_WhenPublishPeriodIsIn() var result = FileLockingController.Instance.IsFileLocked(fileInfo, out someReason); // Assert - Assert.IsFalse(result); + Assert.That(result, Is.False); } [Test] @@ -142,7 +148,7 @@ public void IsFileLocked_ReturnsFalse_WhenPublishPeriodHasNotEndDate() var result = FileLockingController.Instance.IsFileLocked(fileInfo, out someReason); // Assert - Assert.IsFalse(result); + Assert.That(result, Is.False); } [Test] @@ -157,7 +163,7 @@ public void IsFileLocked_ReturnsFalse_WhenPublishPeriodIsDisabled() var result = FileLockingController.Instance.IsFileLocked(fileInfo, out someReason); // Assert - Assert.IsFalse(result); + Assert.That(result, Is.False); } [Test] @@ -175,7 +181,7 @@ public void IsFileOutOfPublishPeriod_ReturnsTrue_WhenPublishPeriodIsOut() var result = FileLockingController.Instance.IsFileOutOfPublishPeriod(fileInfo, It.IsAny(), It.IsAny()); // Assert - Assert.IsTrue(result); + Assert.That(result, Is.True); } [Test] @@ -193,7 +199,7 @@ public void IsFileOutOfPublishPeriod_ReturnsFalse_WhenUserIsHostOrAdmin() var result = FileLockingController.Instance.IsFileOutOfPublishPeriod(fileInfo, It.IsAny(), It.IsAny()); // Assert - Assert.IsFalse(result); + Assert.That(result, Is.False); } [Test] @@ -210,7 +216,7 @@ public void IsFileOutOfPublishPeriod_ReturnsFalse_WhenPublishPeriodIsIn() var result = FileLockingController.Instance.IsFileOutOfPublishPeriod(fileInfo, It.IsAny(), It.IsAny()); // Assert - Assert.IsFalse(result); + Assert.That(result, Is.False); } [Test] @@ -227,7 +233,7 @@ public void IsFileOutOfPublishPeriod_ReturnsFalse_WhenPublishPeriodHasNotEndDate var result = FileLockingController.Instance.IsFileOutOfPublishPeriod(fileInfo, It.IsAny(), It.IsAny()); // Assert - Assert.IsFalse(result); + Assert.That(result, Is.False); } [Test] @@ -241,7 +247,7 @@ public void IsFileOutOfPublishPeriod_ReturnsFalse_WhenPublishPeriodIsDisabled() var result = FileLockingController.Instance.IsFileOutOfPublishPeriod(fileInfo, It.IsAny(), It.IsAny()); // Assert - Assert.IsFalse(result); + Assert.That(result, Is.False); } } } diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Core/Providers/Folder/FileManagerTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Core/Providers/Folder/FileManagerTests.cs index 2c4ba952303..14f9ccb8b59 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Core/Providers/Folder/FileManagerTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Core/Providers/Folder/FileManagerTests.cs @@ -583,7 +583,7 @@ public void ExistsFile_Returns_True_When_File_Exists() var result = this.mockFileManager.Object.FileExists(this.folderInfo.Object, Constants.FOLDER_ValidFileName); - Assert.IsTrue(result); + Assert.That(result, Is.True); } [Test] @@ -603,7 +603,7 @@ public void ExistsFile_Returns_False_When_File_Does_Not_Exist() var result = this.mockFileManager.Object.FileExists(this.folderInfo.Object, Constants.FOLDER_ValidFileName); - Assert.IsFalse(result); + Assert.That(result, Is.False); } [Test] @@ -1085,7 +1085,7 @@ public void GetSeekableStream_Returns_The_Same_Stream_If_It_Is_Seekable() var inputStream = new MemoryStream(); var seekableStream = this.fileManager.GetSeekableStream(inputStream); - Assert.AreEqual(inputStream, seekableStream); + Assert.That(seekableStream, Is.EqualTo(inputStream)); } [Test] diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Core/Providers/Folder/FolderManagerTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Core/Providers/Folder/FolderManagerTests.cs index b377997a105..c2674710d14 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Core/Providers/Folder/FolderManagerTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Core/Providers/Folder/FolderManagerTests.cs @@ -216,7 +216,7 @@ public void IsValidFolderPath_Returns_True_When_FolderPath_Is_Valid() var result = this.mockFolderManager.Object.IsValidFolderPath(Constants.FOLDER_ValidSubFolderRelativePath); // assert - Assert.IsTrue(result); + Assert.That(result, Is.True); } [Test] @@ -228,7 +228,7 @@ public void IsValidFolderPath_Returns_False_When_FolderPath_Is_Invalid() var result = this.mockFolderManager.Object.IsValidFolderPath(Constants.FOLDER_InvalidSubFolderRelativePath); // assert - Assert.IsFalse(result); + Assert.That(result, Is.False); } [Test] @@ -278,7 +278,7 @@ public void DeleteFolder_CallsFolderProviderDeleteFolder_WhenRecursive() // Assert this.mockFolder.Verify(); - Assert.AreEqual(0, subfoldersNotDeleted.Count); + Assert.That(subfoldersNotDeleted, Is.Empty); } [Test] @@ -327,7 +327,7 @@ public void DeleteFolder_CallsFolderProviderDeleteFolder_WhenRecursive_WhenExist // Assert this.mockFolder.Verify(); - Assert.AreEqual(0, subfoldersNotDeleted.Count); + Assert.That(subfoldersNotDeleted, Is.Empty); } [Test] @@ -374,7 +374,7 @@ public void DeleteFolder_SubFoldersCollectionIsNotEmpty_WhenRecursive_WhenUserHa this.mockFolderManager.Object.DeleteFolder(folderInfo, subfoldersNotDeleted); // Assert - Assert.AreEqual(2, subfoldersNotDeleted.Count); // folderInfo and subfolder2 are not deleted + Assert.That(subfoldersNotDeleted, Has.Count.EqualTo(2)); // folderInfo and subfolder2 are not deleted } [Test] @@ -525,7 +525,7 @@ public void ExistsFolder_Returns_True_When_Folder_Exists() var result = this.mockFolderManager.Object.FolderExists(Constants.CONTENT_ValidPortalId, Constants.FOLDER_ValidFolderRelativePath); - Assert.IsTrue(result); + Assert.That(result, Is.True); } [Test] @@ -535,7 +535,7 @@ public void ExistsFolder_Returns_False_When_Folder_Does_Not_Exist() var result = this.mockFolderManager.Object.FolderExists(Constants.CONTENT_ValidPortalId, Constants.FOLDER_ValidFolderRelativePath); - Assert.IsFalse(result); + Assert.That(result, Is.False); } [Test] @@ -586,7 +586,7 @@ public void GetFilesByFolder_Count_Equals_DataProvider_GetFiles_Count() var result = this.folderManager.GetFiles(this.folderInfo.Object).ToList(); - Assert.AreEqual(1, result.Count); + Assert.That(result, Has.Count.EqualTo(1)); } [Test] @@ -614,7 +614,7 @@ public void GetFilesByFolder_Returns_Valid_FileNames_When_Folder_Contains_Files( var result = this.folderManager.GetFiles(this.folderInfo.Object).Cast(); - CollectionAssert.AreEqual(filesList, result); + Assert.That(result, Is.EqualTo(filesList).AsCollection); } [Test] @@ -643,7 +643,7 @@ public void GetFolder_Returns_Null_When_Folder_Does_Not_Exist() var result = this.folderManager.GetFolder(Constants.FOLDER_ValidFolderId); - Assert.IsNull(result); + Assert.That(result, Is.Null); } [Test] @@ -667,7 +667,7 @@ public void GetFolder_Returns_Valid_Folder_When_Folder_Exists() var result = this.mockFolderManager.Object.GetFolder(Constants.FOLDER_ValidFolderId); - Assert.AreEqual(Constants.FOLDER_ValidFolderName, result.FolderName); + Assert.That(result.FolderName, Is.EqualTo(Constants.FOLDER_ValidFolderName)); } [Test] @@ -718,7 +718,7 @@ public void GetFolder_Returns_Null_When_Folder_Does_Not_Exist_Overload() var result = this.mockFolderManager.Object.GetFolder(Constants.CONTENT_ValidPortalId, Constants.FOLDER_ValidFolderRelativePath); - Assert.IsNull(result); + Assert.That(result, Is.Null); } [Test] @@ -743,7 +743,7 @@ public void GetFolder_Returns_Valid_Folder_When_Folder_Exists_Overload() var result = this.mockFolderManager.Object.GetFolder(Constants.CONTENT_ValidPortalId, Constants.FOLDER_ValidFolderRelativePath); - Assert.AreEqual(Constants.FOLDER_ValidFolderName, result.FolderName); + Assert.That(result.FolderName, Is.EqualTo(Constants.FOLDER_ValidFolderName)); } [Test] @@ -761,7 +761,7 @@ public void GetFoldersByParentFolder_Returns_Empty_List_When_ParentFolder_Contai var result = this.mockFolderManager.Object.GetFolders(this.folderInfo.Object).ToList(); - Assert.AreEqual(0, result.Count); + Assert.That(result, Is.Empty); } [Test] @@ -780,8 +780,8 @@ public void GetFoldersByParentFolder_Returns_Valid_Subfolders() var result = this.mockFolderManager.Object.GetFolders(this.folderInfo.Object).ToList(); - Assert.AreEqual(1, result.Count); - Assert.AreEqual(Constants.FOLDER_OtherValidFolderId, result[0].FolderID); + Assert.That(result, Has.Count.EqualTo(1)); + Assert.That(result[0].FolderID, Is.EqualTo(Constants.FOLDER_OtherValidFolderId)); } [Test] @@ -885,7 +885,7 @@ public void GetFileSystemFolders_Returns_Empty_List_When_Folder_Does_Not_Exist() var result = this.mockFolderManager.Object.GetFileSystemFolders(Constants.CONTENT_ValidPortalId, Constants.FOLDER_ValidFolderRelativePath, false); - Assert.IsEmpty(result); + Assert.That(result, Is.Empty); } [Test] @@ -897,8 +897,8 @@ public void GetFileSystemFolders_Returns_One_Item_When_Folder_Exists_And_Is_Not_ var result = this.mockFolderManager.Object.GetFileSystemFolders(Constants.CONTENT_ValidPortalId, Constants.FOLDER_ValidFolderRelativePath, false); - Assert.AreEqual(1, result.Count); - Assert.IsTrue(result.Values[0].ExistsInFileSystem); + Assert.That(result, Has.Count.EqualTo(1)); + Assert.That(result.Values[0].ExistsInFileSystem, Is.True); } [Test] @@ -927,7 +927,7 @@ public void GetFileSystemFoldersRecursive_Returns_One_Item_When_Folder_Does_Not_ var result = this.mockFolderManager.Object.GetFileSystemFoldersRecursive(Constants.CONTENT_ValidPortalId, Constants.FOLDER_ValidFolderPath); - Assert.AreEqual(1, result.Count); + Assert.That(result, Has.Count.EqualTo(1)); } [Test] @@ -952,7 +952,7 @@ public void GetFileSystemFoldersRecursive_Returns_All_The_Folders_In_Folder_Tree var result = this.mockFolderManager.Object.GetFileSystemFoldersRecursive(Constants.CONTENT_ValidPortalId, @"C:\folder"); - Assert.AreEqual(5, result.Count); + Assert.That(result, Has.Count.EqualTo(5)); } [Test] @@ -979,7 +979,7 @@ public void GetFileSystemFoldersRecursive_Sets_ExistsInFileSystem_For_All_Items( foreach (var mergedTreeItem in result.Values) { - Assert.True(mergedTreeItem.ExistsInFileSystem); + Assert.That(mergedTreeItem.ExistsInFileSystem, Is.True); } } @@ -990,7 +990,7 @@ public void GetDatabaseFolders_Returns_Empty_List_When_Folder_Does_Not_Exist() var result = this.mockFolderManager.Object.GetDatabaseFolders(Constants.CONTENT_ValidPortalId, Constants.FOLDER_ValidFolderRelativePath, false); - Assert.IsEmpty(result); + Assert.That(result, Is.Empty); } [Test] @@ -1000,8 +1000,8 @@ public void GetDatabaseFolders_Returns_One_Item_When_Folder_Exists_And_Is_Not_Re var result = this.mockFolderManager.Object.GetDatabaseFolders(Constants.CONTENT_ValidPortalId, Constants.FOLDER_ValidFolderRelativePath, false); - Assert.AreEqual(1, result.Count); - Assert.IsTrue(result.Values[0].ExistsInDatabase); + Assert.That(result, Has.Count.EqualTo(1)); + Assert.That(result.Values[0].ExistsInDatabase, Is.True); } [Test] @@ -1031,7 +1031,7 @@ public void GetDatabaseFoldersRecursive_Returns_One_Item_When_Folder_Does_Not_Ha var result = this.mockFolderManager.Object.GetDatabaseFoldersRecursive(this.folderInfo.Object); - Assert.AreEqual(1, result.Count); + Assert.That(result, Has.Count.EqualTo(1)); } [Test] @@ -1056,7 +1056,7 @@ public void GetDatabaseFoldersRecursive_Returns_All_The_Folders_In_Folder_Tree() var result = this.mockFolderManager.Object.GetDatabaseFoldersRecursive(this.folderInfo.Object); - Assert.AreEqual(5, result.Count); + Assert.That(result, Has.Count.EqualTo(5)); } [Test] @@ -1083,7 +1083,7 @@ public void GetDatabaseFoldersRecursive_Sets_ExistsInDatabase_For_All_Items() foreach (var mergedTreeItem in result.Values) { - Assert.True(mergedTreeItem.ExistsInDatabase); + Assert.That(mergedTreeItem.ExistsInDatabase, Is.True); } } @@ -1164,7 +1164,7 @@ public void MergeFolderLists_Returns_Empty_List_When_Both_Lists_Are_Empty() var result = this.folderManager.MergeFolderLists(list1, list2); - Assert.IsEmpty(result); + Assert.That(result, Is.Empty); } [Test] @@ -1184,7 +1184,7 @@ public void MergeFolderLists_Count_Equals_The_Intersection_Count_Between_Both_Li var result = this.folderManager.MergeFolderLists(list1, list2); - Assert.AreEqual(3, result.Count); + Assert.That(result, Has.Count.EqualTo(3)); } // [Test] @@ -2116,7 +2116,7 @@ public void MoveFolder_Returns_The_Same_Folder_If_The_Paths_Are_The_Same() var movedFolder = this.folderManager.MoveFolder(this.folderInfo.Object, destinationFolder); - Assert.AreEqual(this.folderInfo.Object, movedFolder); + Assert.That(movedFolder, Is.EqualTo(this.folderInfo.Object)); } [Test] @@ -2280,7 +2280,7 @@ public void OverwriteFolder_Adds_Folder_To_FoldersToDelete_If_FolderMapping_Is_E var foldersToDelete = new SortedList(); this.mockFolderManager.Object.OverwriteFolder(this.folderInfo.Object, destinationFolder, new Dictionary(), foldersToDelete); - Assert.AreEqual(1, foldersToDelete.Count); + Assert.That(foldersToDelete, Has.Count.EqualTo(1)); } // [Test] diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Core/Providers/Folder/SecureFolderProviderTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Core/Providers/Folder/SecureFolderProviderTests.cs index 13d1eb26fbc..44d018545bb 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Core/Providers/Folder/SecureFolderProviderTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Core/Providers/Folder/SecureFolderProviderTests.cs @@ -138,7 +138,7 @@ public void ExistsFile_Returns_True_When_File_Exists() var result = this._sfp.FileExists(this._folderInfo.Object, Constants.FOLDER_ValidFileName); - Assert.IsTrue(result); + Assert.That(result, Is.True); } [Test] @@ -150,7 +150,7 @@ public void ExistsFile_Returns_False_When_File_Does_Not_Exist() var result = this._sfp.FileExists(this._folderInfo.Object, Constants.FOLDER_ValidFileName); - Assert.IsFalse(result); + Assert.That(result, Is.False); } [Test] @@ -190,7 +190,7 @@ public void ExistsFolder_Returns_True_When_Folder_Exists() var result = this._sfp.FolderExists(Constants.FOLDER_ValidFolderRelativePath, folderMapping); - Assert.IsTrue(result); + Assert.That(result, Is.True); } [Test] @@ -204,7 +204,7 @@ public void ExistsFolder_Returns_False_When_Folder_Does_Not_Exist() var result = this._sfp.FolderExists(Constants.FOLDER_ValidFolderRelativePath, folderMapping); - Assert.IsFalse(result); + Assert.That(result, Is.False); } [Test] @@ -234,7 +234,7 @@ public void GetFileAttributes_Returns_File_Attributes_When_File_Exists() var result = this._sfp.GetFileAttributes(this._fileInfo.Object); - Assert.AreEqual(expectedFileAttributes, result); + Assert.That(result, Is.EqualTo(expectedFileAttributes)); } [Test] @@ -246,7 +246,7 @@ public void GetFileAttributes_Returns_Null_When_File_Does_Not_Exist() var result = this._sfp.GetFileAttributes(this._fileInfo.Object); - Assert.IsNull(result); + Assert.That(result, Is.Null); } [Test] @@ -276,7 +276,7 @@ public void GetFiles_Count_Equals_DirectoryWrapper_GetFiles_Count() var files = this._sfp.GetFiles(this._folderInfo.Object); - Assert.AreEqual(filesReturned.Length, files.Length); + Assert.That(files, Has.Length.EqualTo(filesReturned.Length)); } [Test] @@ -291,7 +291,7 @@ public void GetFiles_Return_Valid_FileNames_When_Folder_Contains_Files() var files = this._sfp.GetFiles(this._folderInfo.Object); - CollectionAssert.AreEqual(expectedValues, files); + Assert.That(files, Is.EqualTo(expectedValues).AsCollection); } [Test] @@ -341,7 +341,7 @@ public void GetFileStream_Returns_Valid_Stream_When_File_Exists() resultBytes = ms.ToArray(); } - Assert.AreEqual(validFileBytes, resultBytes); + Assert.That(resultBytes, Is.EqualTo(validFileBytes)); } [Test] @@ -353,7 +353,7 @@ public void GetFileStream_Returns_Null_When_File_Does_Not_Exist() var result = this._sfp.GetFileStream(this._folderInfo.Object, Constants.FOLDER_ValidFileName); - Assert.IsNull(result); + Assert.That(result, Is.Null); } [Test] @@ -394,7 +394,7 @@ public void GetLastModificationTime_Returns_Valid_Date_When_File_Exists() var result = this._sfp.GetLastModificationTime(this._fileInfo.Object); - Assert.AreEqual(expectedDate, result); + Assert.That(result, Is.EqualTo(expectedDate)); } [Test] @@ -408,7 +408,7 @@ public void GetLastModificationTime_Returns_Null_Date_When_File_Does_Not_Exist() var result = this._sfp.GetLastModificationTime(this._fileInfo.Object); - Assert.AreEqual(expectedDate, result); + Assert.That(result, Is.EqualTo(expectedDate)); } [Test] @@ -456,7 +456,7 @@ public void GetSubFolders_Count_Equals_DirectoryWrapper_GetDirectories_Count() var result = this._sfp.GetSubFolders(Constants.FOLDER_ValidFolderRelativePath, folderMapping).ToList(); - Assert.AreEqual(subFolders.Length, result.Count); + Assert.That(result, Has.Count.EqualTo(subFolders.Length)); } [Test] @@ -484,7 +484,7 @@ public void GetSubFolders_Returns_Valid_SubFolders_When_Folder_Is_Not_Empty() var result = this._sfp.GetSubFolders(Constants.FOLDER_ValidFolderRelativePath, folderMapping).ToList(); - CollectionAssert.AreEqual(expectedSubFolders, result); + Assert.That(result, Is.EqualTo(expectedSubFolders).AsCollection); } [Test] @@ -503,7 +503,7 @@ public void IsInSync_Returns_True_When_File_Is_In_Sync() var result = sfp.Object.IsInSync(this._fileInfo.Object); - Assert.IsTrue(result); + Assert.That(result, Is.True); } [Test] @@ -516,7 +516,7 @@ public void IsInSync_Returns_True_When_File_Is_Not_In_Sync() var result = sfp.Object.IsInSync(this._fileInfo.Object); - Assert.IsTrue(result); + Assert.That(result, Is.True); } [Test] @@ -581,7 +581,7 @@ public void SupportsFileAttributes_Returns_True() { var result = this._sfp.SupportsFileAttributes(); - Assert.IsTrue(result); + Assert.That(result, Is.True); } [Test] diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Core/Providers/Folder/StandardFolderProviderTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Core/Providers/Folder/StandardFolderProviderTests.cs index 558626dc641..954ae304d2f 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Core/Providers/Folder/StandardFolderProviderTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Core/Providers/Folder/StandardFolderProviderTests.cs @@ -192,7 +192,7 @@ public void ExistsFile_Returns_True_When_File_Exists() var result = this._sfp.FileExists(this._folderInfo.Object, Constants.FOLDER_ValidFileName); - Assert.IsTrue(result); + Assert.That(result, Is.True); } [Test] @@ -204,7 +204,7 @@ public void ExistsFile_Returns_False_When_File_Does_Not_Exist() var result = this._sfp.FileExists(this._folderInfo.Object, Constants.FOLDER_ValidFileName); - Assert.IsFalse(result); + Assert.That(result, Is.False); } [Test] @@ -244,7 +244,7 @@ public void ExistsFolder_Returns_True_When_Folder_Exists() var result = this._sfp.FolderExists(Constants.FOLDER_ValidFolderRelativePath, folderMapping); - Assert.IsTrue(result); + Assert.That(result, Is.True); } [Test] @@ -258,7 +258,7 @@ public void ExistsFolder_Returns_False_When_Folder_Does_Not_Exist() var result = this._sfp.FolderExists(Constants.FOLDER_ValidFolderRelativePath, folderMapping); - Assert.IsFalse(result); + Assert.That(result, Is.False); } [Test] @@ -299,7 +299,7 @@ public void GetFileAttributes_Returns_Null_When_File_Does_Not_Exist() var result = this._sfp.GetFileAttributes(this._fileInfo.Object); - Assert.IsNull(result); + Assert.That(result, Is.Null); } [Test] @@ -329,7 +329,7 @@ public void GetFiles_Count_Equals_DirectoryWrapper_GetFiles_Count() var files = this._sfp.GetFiles(this._folderInfo.Object); - Assert.AreEqual(filesReturned.Length, files.Length); + Assert.That(files, Has.Length.EqualTo(filesReturned.Length)); } [Test] @@ -344,7 +344,7 @@ public void GetFiles_Returns_Valid_FileNames_When_Folder_Contains_Files() var files = this._sfp.GetFiles(this._folderInfo.Object); - CollectionAssert.AreEqual(expectedValues, files); + Assert.That(files, Is.EqualTo(expectedValues).AsCollection); } [Test] @@ -394,7 +394,7 @@ public void GetFileStream_Returns_Valid_Stream_When_File_Exists() resultBytes = ms.ToArray(); } - Assert.AreEqual(validFileBytes, resultBytes); + Assert.That(resultBytes, Is.EqualTo(validFileBytes)); } [Test] @@ -406,7 +406,7 @@ public void GetFileStream_Returns_Null_When_File_Does_Not_Exist() var result = this._sfp.GetFileStream(this._folderInfo.Object, Constants.FOLDER_ValidFileName); - Assert.IsNull(result); + Assert.That(result, Is.Null); } [Test] @@ -460,7 +460,7 @@ public void GetLastModificationTime_Returns_Null_Date_When_File_Does_Not_Exist() var result = this._sfp.GetLastModificationTime(this._fileInfo.Object); - Assert.AreEqual(expectedDate, result); + Assert.That(result, Is.EqualTo(expectedDate)); } [Test] @@ -508,7 +508,7 @@ public void GetSubFolders_Count_Equals_DirectoryWrapper_GetDirectories_Count() var result = this._sfp.GetSubFolders(Constants.FOLDER_ValidFolderRelativePath, folderMapping).ToList(); - Assert.AreEqual(subFolders.Length, result.Count); + Assert.That(result, Has.Count.EqualTo(subFolders.Length)); } [Test] @@ -536,7 +536,7 @@ public void GetSubFolders_Returns_Valid_SubFolders_When_Folder_Is_Not_Empty() var result = this._sfp.GetSubFolders(Constants.FOLDER_ValidFolderRelativePath, folderMapping).ToList(); - CollectionAssert.AreEqual(expectedSubFolders, result); + Assert.That(result, Is.EqualTo(expectedSubFolders).AsCollection); } [Test] @@ -567,7 +567,7 @@ public void GetFileUrl_WhenCurrentPortalSettingsReturnsNull_DontThrow() // assert Assert.DoesNotThrow(action); - Assert.IsNotNull(fileUrl); + Assert.That(fileUrl, Is.Not.Null); } [Test] @@ -588,7 +588,7 @@ public void GetFileUrl_ReturnsStandardUrl_WhenFileUrlDoesNotContainInvalidCharac var fileUrl = sfp.Object.GetFileUrl(this._fileInfo.Object); // Assert - Assert.IsFalse(fileUrl.ToLowerInvariant().Contains("linkclick")); + Assert.That(fileUrl.ToLowerInvariant().Contains("linkclick"), Is.False); } [Test] @@ -616,7 +616,7 @@ public void GetFileUrl_ReturnsLinkclickUrl_WhenFileUrlContainsInvalidCharactes(s var fileUrl = sfp.Object.GetFileUrl(this._fileInfo.Object); // Assert - Assert.IsTrue(fileUrl.ToLowerInvariant().Contains("linkclick")); + Assert.That(fileUrl.ToLowerInvariant().Contains("linkclick"), Is.True); } [Test] @@ -635,7 +635,7 @@ public void IsInSync_Returns_True_When_File_Is_In_Sync() var result = sfp.Object.IsInSync(this._fileInfo.Object); - Assert.IsTrue(result); + Assert.That(result, Is.True); } [Test] @@ -648,7 +648,7 @@ public void IsInSync_Returns_True_When_File_Is_Not_In_Sync() var result = sfp.Object.IsInSync(this._fileInfo.Object); - Assert.IsTrue(result); + Assert.That(result, Is.True); } [Test] @@ -712,7 +712,7 @@ public void SupportsFileAttributes_Returns_True() { var result = this._sfp.SupportsFileAttributes(); - Assert.IsTrue(result); + Assert.That(result, Is.True); } [Test] diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Core/Providers/Membership/MembershipProviderTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Core/Providers/Membership/MembershipProviderTests.cs index 1c958cb6d62..356f074c88d 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Core/Providers/Membership/MembershipProviderTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Core/Providers/Membership/MembershipProviderTests.cs @@ -83,7 +83,7 @@ public void Password_Should_Saved_In_History_During_Create_User() var isPasswordInHistory = new MembershipPasswordController().IsPasswordInHistory(user.UserID, user.PortalID, user.Membership.Password); - Assert.AreEqual(true, isPasswordInHistory); + Assert.That(isPasswordInHistory, Is.EqualTo(true)); } [Test] @@ -140,7 +140,7 @@ private static UserInfo CreateNewUser() var status = UserController.CreateUser(ref user); - Assert.AreEqual(UserCreateStatus.Success, status); + Assert.That(status, Is.EqualTo(UserCreateStatus.Success)); return user; } diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Core/Providers/Permissions/PermissionTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Core/Providers/Permissions/PermissionTests.cs index cbd900ab55a..61441e28d63 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Core/Providers/Permissions/PermissionTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Core/Providers/Permissions/PermissionTests.cs @@ -40,7 +40,7 @@ public void PortalSecurity_IsInRoles_Super_User_Is_Always_True() const string roles = ""; var portalSettings = SetupPortalSettings(); - Assert.IsTrue(PortalSecurity.IsInRoles(user, portalSettings, roles)); + Assert.That(PortalSecurity.IsInRoles(user, portalSettings, roles), Is.True); } [Test] @@ -50,7 +50,7 @@ public void PortalSecurity_IsInRoles_All_Users_Role_Is_Always_True() const string roles = Globals.glbRoleAllUsersName; var portalSettings = SetupPortalSettings(); - Assert.IsTrue(PortalSecurity.IsInRoles(user, portalSettings, roles)); + Assert.That(PortalSecurity.IsInRoles(user, portalSettings, roles), Is.True); } [Test] @@ -64,7 +64,7 @@ public void PortalSecurity_IsInRoles_NonAdmin_IsInRole_Is_True() const string roles = "SomeRoleName"; var portalSettings = SetupPortalSettings(); - Assert.IsTrue(PortalSecurity.IsInRoles(user, portalSettings, roles)); + Assert.That(PortalSecurity.IsInRoles(user, portalSettings, roles), Is.True); } [Test] @@ -89,7 +89,7 @@ public void PortalSecurity_IsInRoles_NonAdminUser_True_WhenRoleIsFollowerRoleAnd var portalSettings = SetupPortalSettings(); // Act and Assert - Assert.IsTrue(PortalSecurity.IsInRoles(user, portalSettings, roles)); + Assert.That(PortalSecurity.IsInRoles(user, portalSettings, roles), Is.True); } [Test] @@ -114,7 +114,7 @@ public void PortalSecurity_IsInRoles_NonAdminUser_False_WhenRoleIsFollowerRoleAn var portalSettings = SetupPortalSettings(); // Act and Assert - Assert.IsFalse(PortalSecurity.IsInRoles(user, portalSettings, roles)); + Assert.That(PortalSecurity.IsInRoles(user, portalSettings, roles), Is.False); } [Test] @@ -141,7 +141,7 @@ public void PortalSecurity_IsInRoles_NonAdminUser_False_WhenRoleIsFollowerRoleAn var portalSettings = SetupPortalSettings(); // Act and Assert - Assert.IsFalse(PortalSecurity.IsInRoles(user, portalSettings, roles)); + Assert.That(PortalSecurity.IsInRoles(user, portalSettings, roles), Is.False); } [Test] @@ -166,7 +166,7 @@ public void PortalSecurity_IsInRoles_NonAdminUser_True_WhenRoleIsFriendRoleAndRo var portalSettings = SetupPortalSettings(); // Act and Assert - Assert.IsTrue(PortalSecurity.IsInRoles(user, portalSettings, roles)); + Assert.That(PortalSecurity.IsInRoles(user, portalSettings, roles), Is.True); } [Test] @@ -191,7 +191,7 @@ public void PortalSecurity_IsInRoles_NonAdminUser_False_WhenRoleIsFriendRoleAndR var portalSettings = SetupPortalSettings(); // Act and Assert - Assert.IsFalse(PortalSecurity.IsInRoles(user, portalSettings, roles)); + Assert.That(PortalSecurity.IsInRoles(user, portalSettings, roles), Is.False); } [Test] @@ -218,7 +218,7 @@ public void PortalSecurity_IsInRoles_NonAdminUser_False_WhenRoleIsFriendRoleAndR var portalSettings = SetupPortalSettings(); // Act and Assert - Assert.IsFalse(PortalSecurity.IsInRoles(user, portalSettings, roles)); + Assert.That(PortalSecurity.IsInRoles(user, portalSettings, roles), Is.False); } [Test] @@ -231,7 +231,7 @@ public void PortalSecurity_IsInRoles_NonAdminUser_True_WhenRoleIsOwnerRoleAndRol var portalSettings = SetupPortalSettings(); // Act and Assert - Assert.IsTrue(PortalSecurity.IsInRoles(user, portalSettings, roles)); + Assert.That(PortalSecurity.IsInRoles(user, portalSettings, roles), Is.True); } [Test] @@ -244,7 +244,7 @@ public void PortalSecurity_IsInRoles_NonAdminUser_False_WhenRoleIsOwnerRoleAndRo var portalSettings = SetupPortalSettings(); // Act and Assert - Assert.IsFalse(PortalSecurity.IsInRoles(user, portalSettings, roles)); + Assert.That(PortalSecurity.IsInRoles(user, portalSettings, roles), Is.False); } [Test] @@ -258,7 +258,7 @@ public void PortalSecurity_IsInRoles_NonAdmin_In_Deny_Role_Is_False() const string roles = "!SomeRoleName"; var portalSettings = SetupPortalSettings(); - Assert.IsFalse(PortalSecurity.IsInRoles(user, portalSettings, roles)); + Assert.That(PortalSecurity.IsInRoles(user, portalSettings, roles), Is.False); } // [Test] diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Core/RetryableActionTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Core/RetryableActionTests.cs index dfc944ea5e4..ed4d18c43a0 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Core/RetryableActionTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Core/RetryableActionTests.cs @@ -30,7 +30,7 @@ public void ActionSucceedsFirstTime() retryable.TryIt(); - Assert.AreEqual(1, monitor.TimesCalled); + Assert.That(monitor.TimesCalled, Is.EqualTo(1)); } [Test] @@ -41,7 +41,7 @@ public void ActionFailsTwice() retryable.TryIt(); - Assert.AreEqual(3, monitor.TimesCalled); + Assert.That(monitor.TimesCalled, Is.EqualTo(3)); } [Test] @@ -54,11 +54,14 @@ public void DelaysIncreaseWithEachRetry() var firstRetry = this._sleepMonitor.SleepPeriod[0]; var secondRetry = this._sleepMonitor.SleepPeriod[1]; - var thirdRetry = this._sleepMonitor.SleepPeriod[2]; - - Assert.AreEqual(5, firstRetry); - Assert.AreEqual(50, secondRetry); - Assert.AreEqual(500, thirdRetry); + var thirdRetry = this._sleepMonitor.SleepPeriod[2]; + + Assert.Multiple(() => + { + Assert.That(firstRetry, Is.EqualTo(5)); + Assert.That(secondRetry, Is.EqualTo(50)); + Assert.That(thirdRetry, Is.EqualTo(500)); + }); } [Test] diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Core/Security/PortalSecurity/PortalSecurityTest.cs b/DNN Platform/Tests/DotNetNuke.Tests.Core/Security/PortalSecurity/PortalSecurityTest.cs index 0b352ca2e15..a4eb1ea07d6 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Core/Security/PortalSecurity/PortalSecurityTest.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Core/Security/PortalSecurity/PortalSecurityTest.cs @@ -125,7 +125,7 @@ public void Html_Source_Tag_Should_Not_Be_Allowed(string html, string expectedOu var filterOutput = portalSecurity.InputFilter(html, markup); // Assert - Assert.AreEqual(filterOutput, expectedOutput); + Assert.That(expectedOutput, Is.EqualTo(filterOutput)); } [TestCase("User\0name", "Username", @@ -153,7 +153,7 @@ public void Control_Character_Should_Not_Be_Allowed(string html, string expected var filterOutput = portalSecurity.InputFilter(html, markup); // Assert - Assert.AreEqual(filterOutput, expectedOutput); + Assert.That(expectedOutput, Is.EqualTo(filterOutput)); } } } diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Core/Services/ClientCapability/FacebookRequestControllerTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Core/Services/ClientCapability/FacebookRequestControllerTests.cs index 18ee38d2845..4aaff5aa7dd 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Core/Services/ClientCapability/FacebookRequestControllerTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Core/Services/ClientCapability/FacebookRequestControllerTests.cs @@ -36,48 +36,51 @@ public void SetUp() public void FacebookRequestController_GetFacebookDetailsFromRequest_With_Empty_Request_String() { var request = FacebookRequestController.GetFacebookDetailsFromRequest(this._requestDics["Empty"]); - Assert.IsNull(request); + Assert.That(request, Is.Null); } [Test] public void FacebookRequestController_GetFacebookDetailsFromRequest_With_Invalid_Request_String() { var request = FacebookRequestController.GetFacebookDetailsFromRequest(this._requestDics["Invalid"]); - Assert.IsNull(request); + Assert.That(request, Is.Null); } [Test] public void FacebookRequestController_GetFacebookDetailsFromRequest_With_Valid_Request_String() { var request = FacebookRequestController.GetFacebookDetailsFromRequest(this._requestDics["Valid"]); - Assert.AreEqual(true, request.IsValid); + Assert.That(request.IsValid, Is.EqualTo(true)); } [Test] public void FacebookRequestController_GetFacebookDetailsFromRequest_With_Valid_Request_String_ForAPage() { - var request = FacebookRequestController.GetFacebookDetailsFromRequest(this._requestDics["ValidForAPage"]); - Assert.AreEqual(true, request.IsValid); - Assert.AreEqual("HMAC-SHA256", request.Algorithm); - Assert.AreEqual(ConvertToTimestamp(1319488107), request.IssuedAt); - - // user stuff - Assert.AreEqual("ca", request.UserCountry); - Assert.AreEqual("en_US", request.UserLocale); - Assert.AreEqual(21, request.UserMinAge); - Assert.AreEqual(0, request.UserMaxAge); - - // page - Assert.AreEqual("130634540372728", request.PageId); - Assert.AreEqual(false, request.PageLiked); - Assert.AreEqual(true, request.PageUserAdmin); + var request = FacebookRequestController.GetFacebookDetailsFromRequest(this._requestDics["ValidForAPage"]); + Assert.Multiple(() => + { + Assert.That(request.IsValid, Is.EqualTo(true)); + Assert.That(request.Algorithm, Is.EqualTo("HMAC-SHA256")); + Assert.That(request.IssuedAt, Is.EqualTo(ConvertToTimestamp(1319488107))); + + // user stuff + Assert.That(request.UserCountry, Is.EqualTo("ca")); + Assert.That(request.UserLocale, Is.EqualTo("en_US")); + Assert.That(request.UserMinAge, Is.EqualTo(21)); + Assert.That(request.UserMaxAge, Is.EqualTo(0)); + + // page + Assert.That(request.PageId, Is.EqualTo("130634540372728")); + Assert.That(request.PageLiked, Is.EqualTo(false)); + Assert.That(request.PageUserAdmin, Is.EqualTo(true)); + }); } [Test] public void FacebookRequestController_GetFacebookDetailsFromRequest_With_Empty_Request() { var request = FacebookRequestController.GetFacebookDetailsFromRequest(null as HttpRequest); - Assert.IsNull(request); + Assert.That(request, Is.Null); } [Test] @@ -87,7 +90,7 @@ public void FacebookRequestController_GetFacebookDetailsFromRequest_With_Get_Req httpRequest.RequestType = "GET"; var request = FacebookRequestController.GetFacebookDetailsFromRequest(httpRequest); - Assert.IsNull(request); + Assert.That(request, Is.Null); } [Test] @@ -99,7 +102,7 @@ public void FacebookRequestController_GetFacebookDetailsFromRequest_With_Post_In httpRequest.Form.Add("signed_request", this._requestDics["Invalid"]); var request = FacebookRequestController.GetFacebookDetailsFromRequest(httpRequest); - Assert.IsNull(request); + Assert.That(request, Is.Null); } [Test] @@ -111,7 +114,7 @@ public void FacebookRequestController_GetFacebookDetailsFromRequest_With_Post_Va httpRequest.Form.Add("signed_request", this._requestDics["Valid"]); var request = FacebookRequestController.GetFacebookDetailsFromRequest(httpRequest); - Assert.AreEqual(true, request.IsValid); + Assert.That(request.IsValid, Is.EqualTo(true)); } /// method for converting a System.DateTime value to a UNIX Timestamp. diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Core/Services/CryptographyProviders/CoreCryptographyProviderTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Core/Services/CryptographyProviders/CoreCryptographyProviderTests.cs index 0548602c81b..5bd212a72d5 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Core/Services/CryptographyProviders/CoreCryptographyProviderTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Core/Services/CryptographyProviders/CoreCryptographyProviderTests.cs @@ -43,7 +43,7 @@ public void EncryptData_Should_Return_Encrypted_String() var encryptedValue = _provider.EncryptParameter(message, encryptionKey); // Assert - Assert.AreNotEqual(message, encryptedValue); + Assert.That(encryptedValue, Is.Not.EqualTo(message)); } [Test] @@ -58,7 +58,7 @@ public void DecryptData_Should_Return_Empty_String_If_Data_Is_Not_Encypted() var decryptedValue = _provider.DecryptParameter(message, encryptionKey); // Assert - Assert.AreEqual(string.Empty, decryptedValue); + Assert.That(decryptedValue, Is.EqualTo(string.Empty)); } } } diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Core/Services/CryptographyProviders/FipsCompilanceCryptographyProviderTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Core/Services/CryptographyProviders/FipsCompilanceCryptographyProviderTests.cs index c8f769b400c..cbb7b31113f 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Core/Services/CryptographyProviders/FipsCompilanceCryptographyProviderTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Core/Services/CryptographyProviders/FipsCompilanceCryptographyProviderTests.cs @@ -44,7 +44,7 @@ public void EncryptData_Should_Return_Encrypted_String() var encryptedValue = _provider.EncryptParameter(message, encryptionKey); // Assert - Assert.AreNotEqual(message, encryptedValue); + Assert.That(encryptedValue, Is.Not.EqualTo(message)); } [Test] @@ -59,7 +59,7 @@ public void DecryptData_Should_Return_Empty_String_If_Data_Is_Not_Encypted() var decryptedValue = _provider.DecryptParameter(message, encryptionKey); // Assert - Assert.AreEqual(string.Empty, decryptedValue); + Assert.That(decryptedValue, Is.EqualTo(string.Empty)); } } } diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Core/Services/HtmlUtilsTest.cs b/DNN Platform/Tests/DotNetNuke.Tests.Core/Services/HtmlUtilsTest.cs index 553bf8217f2..31ee17f7d78 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Core/Services/HtmlUtilsTest.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Core/Services/HtmlUtilsTest.cs @@ -31,7 +31,7 @@ public void DNN_12430_IsHtml_RegExTimeout() HtmlUtils.IsHtml( @"'New Event: Test on Saturday, May 08, 2010 2:00 AM to Saturday, May 08, 2010 2:30 AM - One time event - has been added"); - Assert.IsTrue(result); + Assert.That(result, Is.True); } [Test] @@ -40,7 +40,7 @@ public void DNN_12926_IsHtml_Detection() { var result = HtmlUtils.IsHtml("this is a test of dnnmail: DotNetNuke"); - Assert.IsTrue(result); + Assert.That(result, Is.True); } [TearDown] @@ -60,7 +60,7 @@ public void HtmlUtils_CleanWithTagInfo_Should_Return_Clean_Content_With_Attribut object retValue = HtmlUtils.CleanWithTagInfo(HtmlStr, Filters, true); // Assert - Assert.AreEqual(this._expected, retValue); + Assert.That(retValue, Is.EqualTo(this._expected)); // TearDown this.TearDown(); @@ -77,7 +77,7 @@ public void HtmlUtils_CleanWithTagInfo_Should_Return_Clean_Content_Without_Attri object retValue = HtmlUtils.CleanWithTagInfo(HtmlStr, " ", true); // Assert - Assert.AreEqual(this._expected, retValue); + Assert.That(retValue, Is.EqualTo(this._expected)); // TearDown this.TearDown(); @@ -95,7 +95,7 @@ public void HtmlUtils_StripUnspecifiedTags_Should_Return_Attribute_Values() object retValue = HtmlUtils.StripUnspecifiedTags(HtmlStr, Filters, false); // Assert - Assert.AreEqual(this._expected, retValue); + Assert.That(retValue, Is.EqualTo(this._expected)); // TearDown this.TearDown(); @@ -112,7 +112,7 @@ public void HtmlUtils_StripUnspecifiedTags_Should_Not_Return_Attribute_Values() object retValue = HtmlUtils.StripUnspecifiedTags(HtmlStr, " ", false); // Assert - Assert.AreEqual(this._expected, retValue); + Assert.That(retValue, Is.EqualTo(this._expected)); // TearDown this.TearDown(); diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Core/Services/Installer/AssemblyInstallerTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Core/Services/Installer/AssemblyInstallerTests.cs index e6c47f496b9..ceb424335ab 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Core/Services/Installer/AssemblyInstallerTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Core/Services/Installer/AssemblyInstallerTests.cs @@ -52,7 +52,7 @@ public void Install_UnRegisterAssembly_ShouldSucceed_WhenFileIsMissing() installer.Install(); - Assert.IsTrue(installer.Log.Valid); + Assert.That(installer.Log.Valid, Is.True); } private static XPathNavigator GetUnRegisterAssemblyManifest() diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Core/Services/Installer/CleanupInstallerTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Core/Services/Installer/CleanupInstallerTests.cs index e1553377f44..37fbe9f5479 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Core/Services/Installer/CleanupInstallerTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Core/Services/Installer/CleanupInstallerTests.cs @@ -39,7 +39,7 @@ public void Install_WhenFolderInvalid_DoesNotCallFileSystem(string path) sut.Install(); // assert - Assert.IsTrue(sut.Completed); + Assert.That(sut.Completed, Is.True); fileSystemUtilsMock.Verify(x => x.DeleteEmptyFoldersRecursive(It.IsAny()), Times.Never); } @@ -72,9 +72,9 @@ public void Install_WhenFolderValid_CallsFileSystem(string path, string expected sut.Install(); // assert - Assert.IsTrue(sut.Completed); + Assert.That(sut.Completed, Is.True); fileSystemUtilsMock.Verify(); - Assert.AreEqual(expectedPath, actualPath); + Assert.That(actualPath, Is.EqualTo(expectedPath)); } private static IEnumerable InvalidPathsTestCaseSource() diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Core/Services/Localization/LocalizationTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Core/Services/Localization/LocalizationTests.cs index 4c1f1fb3690..a6f651a64df 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Core/Services/Localization/LocalizationTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Core/Services/Localization/LocalizationTests.cs @@ -38,7 +38,7 @@ public void NoMatchReturnsFallback() var ret = TestableLocalization.Instance.BestCultureCodeBasedOnBrowserLanguages(new string[0], fallback); // Assert - Assert.AreEqual(ret, fallback); + Assert.That(ret, Is.EqualTo(fallback)); } [Test] @@ -73,7 +73,7 @@ public void PerfectMatchPossible() var ret = TestableLocalization.Instance.BestCultureCodeBasedOnBrowserLanguages(this._standardCultureCodes); // Assert - Assert.AreEqual(ret, "de-DE"); + Assert.That(ret, Is.EqualTo("de-DE")); } [Test] @@ -86,7 +86,7 @@ public void QParamsAreIgnored() var ret = TestableLocalization.Instance.BestCultureCodeBasedOnBrowserLanguages(this._standardCultureCodes); // Assert - Assert.AreEqual(ret, "de-DE"); + Assert.That(ret, Is.EqualTo("de-DE")); } [Test] @@ -99,7 +99,7 @@ public void MatchOnOnlyLanguage() var ret = TestableLocalization.Instance.BestCultureCodeBasedOnBrowserLanguages(this._standardCultureCodes); // Assert - Assert.AreEqual(ret, "fr-CA"); + Assert.That(ret, Is.EqualTo("fr-CA")); } [Test] @@ -112,7 +112,7 @@ public void PerfectMatchPreferredToFirstMatch() var ret = TestableLocalization.Instance.BestCultureCodeBasedOnBrowserLanguages(new[] { "fr-CA", "fr-FR" }); // Assert - Assert.AreEqual(ret, "fr-FR"); + Assert.That(ret, Is.EqualTo("fr-FR")); } [Test] @@ -123,7 +123,7 @@ public void ParseLocaleFromResxFileName(string fileName) foreach (var standardCultureCode in this._standardCultureCodes) { var f = fileName + "." + standardCultureCode + ".resx"; - Assert.AreEqual(f.GetLocaleCodeFromFileName(), standardCultureCode); + Assert.That(standardCultureCode, Is.EqualTo(f.GetLocaleCodeFromFileName())); } } @@ -135,7 +135,7 @@ public void ParseFileNameFromResxFile(string fileName) foreach (var standardCultureCode in this._standardCultureCodes) { var f = fileName + "." + standardCultureCode + ".resx"; - Assert.AreEqual(f.GetFileNameFromLocalizedResxFile(), fileName); + Assert.That(fileName, Is.EqualTo(f.GetFileNameFromLocalizedResxFile())); } } } diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Core/Services/Mobile/PreviewProfileControllerTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Core/Services/Mobile/PreviewProfileControllerTests.cs index e8da15f4ac5..159608f1da4 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Core/Services/Mobile/PreviewProfileControllerTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Core/Services/Mobile/PreviewProfileControllerTests.cs @@ -141,7 +141,7 @@ public void PreviewProfileController_Save_Valid_Profile() affectedCount++; } - Assert.AreEqual(1, affectedCount); + Assert.That(affectedCount, Is.EqualTo(1)); } [Test] @@ -152,7 +152,7 @@ public void PreviewProfileController_GetProfilesByPortal_With_Valid_PortalID() IList list = new PreviewProfileController().GetProfilesByPortal(0); - Assert.AreEqual(3, list.Count); + Assert.That(list, Has.Count.EqualTo(3)); } [Test] @@ -164,7 +164,7 @@ public void PreviewProfileController_Delete_With_ValidID() IList list = new PreviewProfileController().GetProfilesByPortal(0); - Assert.AreEqual(2, list.Count); + Assert.That(list, Has.Count.EqualTo(2)); } private IDataReader GetProfilesCallBack(int portalId) diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Core/Services/Mobile/RedirectionControllerTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Core/Services/Mobile/RedirectionControllerTests.cs index 09cdfc26965..e6ab343ac9d 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Core/Services/Mobile/RedirectionControllerTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Core/Services/Mobile/RedirectionControllerTests.cs @@ -153,7 +153,7 @@ public void RedirectionController_Save_Valid_Redirection() affectedCount++; } - Assert.AreEqual(1, affectedCount); + Assert.That(affectedCount, Is.EqualTo(1)); } [Test] @@ -172,10 +172,10 @@ public void RedirectionController_Save_ValidRedirection_With_Rules() affectedCount++; } - Assert.AreEqual(1, affectedCount); + Assert.That(affectedCount, Is.EqualTo(1)); var getRe = this._redirectionController.GetRedirectionsByPortal(Portal0)[0]; - Assert.AreEqual(2, getRe.MatchRules.Count); + Assert.That(getRe.MatchRules, Has.Count.EqualTo(2)); } [Test] @@ -186,7 +186,7 @@ public void RedirectionController_GetRedirectionsByPortal_With_Valid_PortalID() IList list = this._redirectionController.GetRedirectionsByPortal(Portal0); - Assert.AreEqual(7, list.Count); + Assert.That(list, Has.Count.EqualTo(7)); } [Test] @@ -198,7 +198,7 @@ public void RedirectionController_Delete_With_ValidID() IList list = this._redirectionController.GetRedirectionsByPortal(Portal0); - Assert.AreEqual(6, list.Count); + Assert.That(list, Has.Count.EqualTo(6)); } [Test] @@ -207,7 +207,7 @@ public void RedirectionController_PurgeInvalidRedirections_DoNotPurgeRuleForNonD { this._dtRedirections.Rows.Add(1, Portal0, "R1", (int)RedirectionType.MobilePhone, SortOrder1, HomePageOnPortal0, IncludeChildTabsFlag, (int)TargetType.Tab, AnotherPageOnSamePortal, EnabledFlag); this._redirectionController.PurgeInvalidRedirections(0); - Assert.AreEqual(1, this._redirectionController.GetRedirectionsByPortal(0).Count); + Assert.That(this._redirectionController.GetRedirectionsByPortal(0), Has.Count.EqualTo(1)); } [Test] @@ -216,7 +216,7 @@ public void RedirectionController_PurgeInvalidRedirections_DoPurgeRuleForDeletet { this._dtRedirections.Rows.Add(new object[] { 1, Portal0, "R1", (int)RedirectionType.MobilePhone, SortOrder1, DeletedPageOnSamePortal2, IncludeChildTabsFlag, (int)TargetType.Tab, AnotherPageOnSamePortal, EnabledFlag }); this._redirectionController.PurgeInvalidRedirections(0); - Assert.AreEqual(0, this._redirectionController.GetRedirectionsByPortal(0).Count); + Assert.That(this._redirectionController.GetRedirectionsByPortal(0), Is.Empty); } [Test] @@ -225,7 +225,7 @@ public void RedirectionController_PurgeInvalidRedirections_DoPurgeRuleForDeletet { this._dtRedirections.Rows.Add(new object[] { 1, Portal0, "R1", (int)RedirectionType.MobilePhone, SortOrder1, HomePageOnPortal0, IncludeChildTabsFlag, (int)TargetType.Portal, Portal2, EnabledFlag }); this._redirectionController.PurgeInvalidRedirections(0); - Assert.AreEqual(0, this._redirectionController.GetRedirectionsByPortal(0).Count); + Assert.That(this._redirectionController.GetRedirectionsByPortal(0), Is.Empty); } [Test] @@ -234,7 +234,7 @@ public void RedirectionController_PurgeInvalidRedirections_DoPurgeRuleForDeletet { this._dtRedirections.Rows.Add(new object[] { 1, Portal0, "R1", (int)RedirectionType.MobilePhone, SortOrder1, HomePageOnPortal0, IncludeChildTabsFlag, (int)TargetType.Tab, DeletedPageOnSamePortal2, EnabledFlag }); this._redirectionController.PurgeInvalidRedirections(0); - Assert.AreEqual(0, this._redirectionController.GetRedirectionsByPortal(0).Count); + Assert.That(this._redirectionController.GetRedirectionsByPortal(0), Is.Empty); } [Test] @@ -248,7 +248,7 @@ public void RedirectionController_GetRedirectionUrl_Throws_On_Null_UserAgent() public void RedirectionController_GetRedirectionUrl_Returns_EmptyString_When_Redirection_IsNotSet() { - Assert.AreEqual(string.Empty, this._redirectionController.GetRedirectUrl(iphoneUserAgent, Portal0, HomePageOnPortal0)); + Assert.That(this._redirectionController.GetRedirectUrl(iphoneUserAgent, Portal0, HomePageOnPortal0), Is.EqualTo(string.Empty)); } [Test] @@ -256,7 +256,7 @@ public void RedirectionController_GetRedirectionUrl_Returns_EmptyString_When_Red public void RedirectionController_GetRedirectionUrl_Returns_EmptyString_When_Redirection_IsNotEnabled() { this.PrepareSingleDisabledRedirectionRule(); - Assert.AreEqual(string.Empty, this._redirectionController.GetRedirectUrl(iphoneUserAgent, Portal0, HomePageOnPortal0)); + Assert.That(this._redirectionController.GetRedirectUrl(iphoneUserAgent, Portal0, HomePageOnPortal0), Is.EqualTo(string.Empty)); } [Test] @@ -264,7 +264,7 @@ public void RedirectionController_GetRedirectionUrl_Returns_EmptyString_When_Red public void RedirectionController_GetRedirectionUrl_Returns_EmptyString_When_UserAgent_Is_Desktop() { this.PrepareData(); - Assert.AreEqual(string.Empty, this._redirectionController.GetRedirectUrl(msIE9UserAgent, Portal0, HomePageOnPortal0)); + Assert.That(this._redirectionController.GetRedirectUrl(msIE9UserAgent, Portal0, HomePageOnPortal0), Is.EqualTo(string.Empty)); } [Test] @@ -272,7 +272,7 @@ public void RedirectionController_GetRedirectionUrl_Returns_EmptyString_When_Use public void RedirectionController_GetRedirectionUrl_Returns_EmptyString_When_CurrentPage_IsSameAs_TargetPage_OnMobile() { this.PreparePortalToAnotherPageOnSamePortal(); - Assert.AreEqual(string.Empty, this._redirectionController.GetRedirectUrl(iphoneUserAgent, Portal0, AnotherPageOnSamePortal)); + Assert.That(this._redirectionController.GetRedirectUrl(iphoneUserAgent, Portal0, AnotherPageOnSamePortal), Is.EqualTo(string.Empty)); } [Test] @@ -281,7 +281,7 @@ public void RedirectionController_GetRedirectionUrl_Returns_EmptyString_When_Tar { // prepare rule to a deleted tab on the same portal this._dtRedirections.Rows.Add(1, Portal0, "R1", (int)RedirectionType.MobilePhone, 1, AnotherPageOnSamePortal, EnabledFlag, (int)TargetType.Tab, DeletedPageOnSamePortal, 1); - Assert.AreEqual(string.Empty, this._redirectionController.GetRedirectUrl(iphoneUserAgent, Portal0, AnotherPageOnSamePortal)); + Assert.That(this._redirectionController.GetRedirectUrl(iphoneUserAgent, Portal0, AnotherPageOnSamePortal), Is.EqualTo(string.Empty)); } [Test] @@ -289,7 +289,7 @@ public void RedirectionController_GetRedirectionUrl_Returns_EmptyString_When_Tar public void RedirectionController_GetRedirectionUrl_Returns_EmptyString_When_CurrentPortal_IsSameAs_TargetPortal_OnMobile() { this.PrepareSamePortalToSamePortalRedirectionRule(); - Assert.AreEqual(string.Empty, this._redirectionController.GetRedirectUrl(iphoneUserAgent, Portal0, AnotherPageOnSamePortal)); + Assert.That(this._redirectionController.GetRedirectUrl(iphoneUserAgent, Portal0, AnotherPageOnSamePortal), Is.EqualTo(string.Empty)); } [Test] @@ -297,7 +297,7 @@ public void RedirectionController_GetRedirectionUrl_Returns_EmptyString_When_Cur public void RedirectionController_GetRedirectionUrl_Returns_TargetPageOnSamePortal_When_Surfing_HomePage_OnMobile() { this.PreparePortalToAnotherPageOnSamePortal(); - Assert.AreEqual(this.NavigateUrl(AnotherPageOnSamePortal), this._redirectionController.GetRedirectUrl(iphoneUserAgent, Portal0, 1)); + Assert.That(this._redirectionController.GetRedirectUrl(iphoneUserAgent, Portal0, 1), Is.EqualTo(this.NavigateUrl(AnotherPageOnSamePortal))); } // [Test] @@ -312,8 +312,11 @@ public void RedirectionController_GetRedirectionUrl_Returns_TargetPageOnSamePort public void RedirectionController_GetRedirectionUrl_Returns_ExternalSite_When_Surfing_AnyPageOfCurrentPortal_OnMobile() { this.PrepareExternalSiteRedirectionRule(); - Assert.AreEqual(ExternalSite, this._redirectionController.GetRedirectUrl(iphoneUserAgent, Portal0, 1)); - Assert.AreEqual(ExternalSite, this._redirectionController.GetRedirectUrl(iphoneUserAgent, Portal0, 2)); + Assert.Multiple(() => + { + Assert.That(this._redirectionController.GetRedirectUrl(iphoneUserAgent, Portal0, 1), Is.EqualTo(ExternalSite)); + Assert.That(this._redirectionController.GetRedirectUrl(iphoneUserAgent, Portal0, 2), Is.EqualTo(ExternalSite)); + }); } [Test] @@ -321,8 +324,11 @@ public void RedirectionController_GetRedirectionUrl_Returns_ExternalSite_When_Su public void RedirectionController_GetRedirectionUrl_Returns_MobileLanding_ForMobile_And_TabletLanding_ForTablet() { this.PrepareMobileAndTabletRedirectionRuleWithMobileFirst(); - Assert.AreEqual(this.NavigateUrl(MobileLandingPage), this._redirectionController.GetRedirectUrl(iphoneUserAgent, Portal0, 1)); - Assert.AreEqual(this.NavigateUrl(TabletLandingPage), this._redirectionController.GetRedirectUrl(iPadTabletUserAgent, Portal0, 1)); + Assert.Multiple(() => + { + Assert.That(this._redirectionController.GetRedirectUrl(iphoneUserAgent, Portal0, 1), Is.EqualTo(this.NavigateUrl(MobileLandingPage))); + Assert.That(this._redirectionController.GetRedirectUrl(iPadTabletUserAgent, Portal0, 1), Is.EqualTo(this.NavigateUrl(TabletLandingPage))); + }); } [Test] @@ -330,8 +336,11 @@ public void RedirectionController_GetRedirectionUrl_Returns_MobileLanding_ForMob public void RedirectionController_GetRedirectionUrl_Returns_TabletLanding_ForTablet_And_MobileLanding_ForMobile() { this.PrepareMobileAndTabletRedirectionRuleWithAndTabletRedirectionRuleTabletFirst(); - Assert.AreEqual(this.NavigateUrl(MobileLandingPage), this._redirectionController.GetRedirectUrl(iphoneUserAgent, 0, 1)); - Assert.AreEqual(this.NavigateUrl(TabletLandingPage), this._redirectionController.GetRedirectUrl(iPadTabletUserAgent, 0, 1)); + Assert.Multiple(() => + { + Assert.That(this._redirectionController.GetRedirectUrl(iphoneUserAgent, 0, 1), Is.EqualTo(this.NavigateUrl(MobileLandingPage))); + Assert.That(this._redirectionController.GetRedirectUrl(iPadTabletUserAgent, 0, 1), Is.EqualTo(this.NavigateUrl(TabletLandingPage))); + }); } [Test] @@ -341,9 +350,12 @@ public void RedirectionController_GetRedirectionUrl_Returns_SameLandingPage_For_ this.PrepareAllMobileRedirectionRule(); string mobileLandingPage = this._redirectionController.GetRedirectUrl(iphoneUserAgent, Portal0, 1); string tabletLandingPage = this._redirectionController.GetRedirectUrl(iPadTabletUserAgent, Portal0, 1); - Assert.AreEqual(this.NavigateUrl(AllMobileLandingPage), mobileLandingPage); - Assert.AreEqual(this.NavigateUrl(AllMobileLandingPage), tabletLandingPage); - Assert.AreEqual(mobileLandingPage, tabletLandingPage); + Assert.Multiple(() => + { + Assert.That(mobileLandingPage, Is.EqualTo(this.NavigateUrl(AllMobileLandingPage))); + Assert.That(tabletLandingPage, Is.EqualTo(this.NavigateUrl(AllMobileLandingPage))); + }); + Assert.That(tabletLandingPage, Is.EqualTo(mobileLandingPage)); } [Test] @@ -351,7 +363,7 @@ public void RedirectionController_GetRedirectionUrl_Returns_SameLandingPage_For_ public void RedirectionController_GetRedirectionUrl_Returns_EmptyString_When_Capability_DoesNot_Match() { this.PrepareOperaBrowserOnSymbianOSRedirectionRule(); - Assert.AreEqual(string.Empty, this._redirectionController.GetRedirectUrl(iphoneUserAgent, Portal0, 1)); + Assert.That(this._redirectionController.GetRedirectUrl(iphoneUserAgent, Portal0, 1), Is.EqualTo(string.Empty)); } [Test] @@ -359,7 +371,7 @@ public void RedirectionController_GetRedirectionUrl_Returns_EmptyString_When_Cap public void RedirectionController_GetRedirectionUrl_Returns_ValidUrl_When_Capability_Matches() { this.PrepareOperaBrowserOnSymbianOSRedirectionRule(); - Assert.AreEqual(this.NavigateUrl(AnotherPageOnSamePortal), this._redirectionController.GetRedirectUrl(motorolaRIZRSymbianOSOpera865, Portal0, 1)); + Assert.That(this._redirectionController.GetRedirectUrl(motorolaRIZRSymbianOSOpera865, Portal0, 1), Is.EqualTo(this.NavigateUrl(AnotherPageOnSamePortal))); } [Test] @@ -367,7 +379,7 @@ public void RedirectionController_GetRedirectionUrl_Returns_ValidUrl_When_Capabi public void RedirectionController_GetRedirectionUrl_Returns_EmptyString_When_NotAll_Capability_Matches() { this.PrepareOperaBrowserOnIPhoneOSRedirectionRule(); - Assert.AreEqual(string.Empty, this._redirectionController.GetRedirectUrl(iphoneUserAgent, Portal0, 1)); + Assert.That(this._redirectionController.GetRedirectUrl(iphoneUserAgent, Portal0, 1), Is.EqualTo(string.Empty)); } [Test] @@ -376,7 +388,7 @@ public void RedirectionController_GetFullSiteUrl_With_NoRedirections() { var url = this._redirectionController.GetFullSiteUrl(Portal0, HomePageOnPortal0); - Assert.AreEqual(string.Empty, url); + Assert.That(url, Is.EqualTo(string.Empty)); } // [Test] @@ -406,7 +418,7 @@ public void RedirectionController_GetFullSiteUrl_When_Redirect_To_DifferentUrl() var url = this._redirectionController.GetFullSiteUrl(Portal1, AnotherPageOnSamePortal); - Assert.AreEqual(string.Empty, url); + Assert.That(url, Is.EqualTo(string.Empty)); } [Test] @@ -415,7 +427,7 @@ public void RedirectionController_GetMobileSiteUrl_With_NoRedirections() { var url = this._redirectionController.GetMobileSiteUrl(Portal0, HomePageOnPortal0); - Assert.AreEqual(string.Empty, url); + Assert.That(url, Is.EqualTo(string.Empty)); } [Test] @@ -435,14 +447,17 @@ public void RedirectionController_GetMobileSiteUrl_Returns_Page_Specific_Url_Whe var mobileUrlForPage2 = this._redirectionController.GetMobileSiteUrl(Portal0, Page2); var mobileUrlForPage3 = this._redirectionController.GetMobileSiteUrl(Portal0, Page3); - // First Page returns link to first url - Assert.AreEqual(string.Format("{0}?nomo=0", redirectUrlPage1), mobileUrlForPage1); + Assert.Multiple(() => + { + // First Page returns link to first url + Assert.That(mobileUrlForPage1, Is.EqualTo(string.Format("{0}?nomo=0", redirectUrlPage1))); - // Second Page returns link to second url - Assert.AreEqual(string.Format("{0}?nomo=0", redirectUrlPage2), mobileUrlForPage2); + // Second Page returns link to second url + Assert.That(mobileUrlForPage2, Is.EqualTo(string.Format("{0}?nomo=0", redirectUrlPage2))); - // Third Page returns link to first url - as this is the first found url and third page has no redirect defined - Assert.AreEqual(mobileUrlForPage3, string.Format("{0}?nomo=0", redirectUrlPage1)); + // Third Page returns link to first url - as this is the first found url and third page has no redirect defined + Assert.That(string.Format("{0}?nomo=0", redirectUrlPage1), Is.EqualTo(mobileUrlForPage3)); + }); } // [Test] @@ -464,7 +479,7 @@ public void RedirectionController_GetMobileSiteUrl_When_Redirect_To_DifferentUrl var url = this._redirectionController.GetMobileSiteUrl(Portal1, AnotherPageOnSamePortal); - Assert.AreEqual(string.Empty, url); + Assert.That(url, Is.EqualTo(string.Empty)); } [Test] @@ -472,7 +487,7 @@ public void RedirectionController_IsRedirectAllowedForTheSession_In_Normal_Actio { var app = this.GenerateApplication(); - Assert.IsTrue(this._redirectionController.IsRedirectAllowedForTheSession(app)); + Assert.That(this._redirectionController.IsRedirectAllowedForTheSession(app), Is.True); } [Test] @@ -481,9 +496,12 @@ public void RedirectionController_IsRedirectAllowedForTheSession_With_Nonmo_Para var app = this.GenerateApplication(); app.Context.Request.QueryString.Add(DisableMobileRedirectQueryStringName, "1"); - Assert.IsFalse(this._redirectionController.IsRedirectAllowedForTheSession(app)); - Assert.IsNotNull(app.Request.Cookies[DisableMobileRedirectCookieName]); - Assert.IsNotNull(app.Request.Cookies[DisableRedirectPresistCookieName]); + Assert.Multiple(() => + { + Assert.That(this._redirectionController.IsRedirectAllowedForTheSession(app), Is.False); + Assert.That(app.Request.Cookies[DisableMobileRedirectCookieName], Is.Not.Null); + Assert.That(app.Request.Cookies[DisableRedirectPresistCookieName], Is.Not.Null); + }); } [Test] @@ -492,7 +510,7 @@ public void RedirectionController_IsRedirectAllowedForTheSession_With_Nonmo_Para var app = this.GenerateApplication(); app.Context.Request.QueryString.Add(DisableMobileRedirectQueryStringName, "0"); - Assert.IsTrue(this._redirectionController.IsRedirectAllowedForTheSession(app)); + Assert.That(this._redirectionController.IsRedirectAllowedForTheSession(app), Is.True); } [Test] @@ -500,10 +518,10 @@ public void RedirectionController_IsRedirectAllowedForTheSession_With_Nonmo_Para { var app = this.GenerateApplication(); app.Context.Request.QueryString.Add(DisableMobileRedirectQueryStringName, "1"); - Assert.IsFalse(this._redirectionController.IsRedirectAllowedForTheSession(app)); + Assert.That(this._redirectionController.IsRedirectAllowedForTheSession(app), Is.False); app.Context.Request.QueryString.Add(DisableMobileRedirectQueryStringName, "0"); - Assert.IsTrue(this._redirectionController.IsRedirectAllowedForTheSession(app)); + Assert.That(this._redirectionController.IsRedirectAllowedForTheSession(app), Is.True); } private void SetupContianer() diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Core/Services/Search/Internals/LuceneControllerImplTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Core/Services/Search/Internals/LuceneControllerImplTests.cs index e26b0c9c206..48927380cbb 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Core/Services/Search/Internals/LuceneControllerImplTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Core/Services/Search/Internals/LuceneControllerImplTests.cs @@ -50,7 +50,7 @@ public void GetCustomAnalyzer_WithTheProvidedAnalyzer_ReturnsTheAnalyzerCorrectl var analyzer = luceneController.GetCustomAnalyzer(); // Assert - Assert.IsInstanceOf(analyzer); + Assert.That(analyzer, Is.InstanceOf()); } } } diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Core/Services/Tokens/PropertyAccessTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Core/Services/Tokens/PropertyAccessTests.cs index ccc87195f53..4096f7dbb4c 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Core/Services/Tokens/PropertyAccessTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Core/Services/Tokens/PropertyAccessTests.cs @@ -34,7 +34,7 @@ public void TicksPropertyAcccess_GetProperty_Sets_PropertyNotFound(string proper accessingUser, Scope.DefaultSettings, ref propertyNotFound); // Assert - Assert.AreEqual(expected, propertyNotFound); + Assert.That(propertyNotFound, Is.EqualTo(expected)); } [Test] @@ -66,7 +66,7 @@ public void TicksPropertyAcccess_GetProperty_Returns_Correct_String(string prope accessingUser, Scope.DefaultSettings, ref propertyNotFound); // Assert - Assert.AreEqual(expected.ToString(CultureInfo.InvariantCulture), propertyValue); + Assert.That(propertyValue, Is.EqualTo(expected.ToString(CultureInfo.InvariantCulture))); } [Test] @@ -89,7 +89,7 @@ public void DateTimePropertyAcccess_GetProperty_Sets_PropertyNotFound(string pro accessingUser, Scope.DefaultSettings, ref propertyNotFound); // Assert - Assert.AreEqual(expected, propertyNotFound); + Assert.That(propertyNotFound, Is.EqualTo(expected)); } [Test] @@ -133,7 +133,7 @@ public void DateTimePropertyAcccess_GetProperty_Returns_Correct_String_For_Cultu accessingUser, Scope.DefaultSettings, ref propertyNotFound); // Assert - Assert.AreEqual(expected, propertyValue); + Assert.That(propertyValue, Is.EqualTo(expected)); } [Test] @@ -177,7 +177,7 @@ public void DateTimePropertyAcccess_GetProperty_Returns_Correct_String_Given_For accessingUser, Scope.DefaultSettings, ref propertyNotFound); // Assert - Assert.AreEqual(expected, propertyValue); + Assert.That(propertyValue, Is.EqualTo(expected)); } [Test] @@ -224,7 +224,7 @@ public void DateTimePropertyAcccess_GetProperty_Adjusts_For_TimeZone(string prop accessingUser, Scope.DefaultSettings, ref propertyNotFound); // Assert - Assert.AreEqual(expected, propertyValue); + Assert.That(propertyValue, Is.EqualTo(expected)); } } } diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Core/Services/Tokens/TokenReplaceTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Core/Services/Tokens/TokenReplaceTests.cs index 5f29224c056..7d9c2313264 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Core/Services/Tokens/TokenReplaceTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Core/Services/Tokens/TokenReplaceTests.cs @@ -79,7 +79,7 @@ public void TextInputIsReturnedUnModified(string sourceText) var outputText = tokenReplace.ReplaceEnvironmentTokens(sourceText); // Assert - Assert.AreEqual(outputText, sourceText); + Assert.That(sourceText, Is.EqualTo(outputText)); } [Test] @@ -97,7 +97,7 @@ public void ObjectInputIsReturnedBlank(string sourceText) var outputText = tokenReplace.ReplaceEnvironmentTokens(sourceText); // Assert - Assert.AreEqual(outputText.Trim(), string.Empty); + Assert.That(outputText.Trim(), Is.EqualTo(string.Empty)); } private void SetupPortalSettings() diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Core/Services/UserRequest/UserRequestIPAddressControllerTest.cs b/DNN Platform/Tests/DotNetNuke.Tests.Core/Services/UserRequest/UserRequestIPAddressControllerTest.cs index b7a97e7dd22..a63447195de 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Core/Services/UserRequest/UserRequestIPAddressControllerTest.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Core/Services/UserRequest/UserRequestIPAddressControllerTest.cs @@ -82,7 +82,7 @@ public void UserRequestIPAddress_ShouldReturnIP_IfAnyHeaderIsPresent(string requ string userRequestIPAddress = this.userRequestIPAddressController.GetUserRequestIPAddress(this.mockhttpContext.Object.Request); // Assert - Assert.AreEqual(expectedIp, userRequestIPAddress); + Assert.That(userRequestIPAddress, Is.EqualTo(expectedIp)); } [Test] @@ -102,7 +102,7 @@ public void UserRequestIPAddress_ShouldReturnIP_IfRemoteAddrServerVariablePresen var userRequestIPAddress = this.userRequestIPAddressController.GetUserRequestIPAddress(this.mockhttpContext.Object.Request); // Assert - Assert.AreSame(expectedIp, userRequestIPAddress); + Assert.That(userRequestIPAddress, Is.SameAs(expectedIp)); this.mockRequest.VerifyGet(r => r.ServerVariables); this.mockRequest.VerifyGet(r => r.Headers); this.mockHostController.Verify(hc => hc.GetString(It.IsAny(), It.IsAny())); @@ -120,7 +120,7 @@ public void UserRequestIPAddress_ShouldReturnIP_IfUserHostAddress() var userRequestIPAddress = this.userRequestIPAddressController.GetUserRequestIPAddress(this.mockhttpContext.Object.Request); // Assert - Assert.AreSame(expectedIp, userRequestIPAddress); + Assert.That(userRequestIPAddress, Is.SameAs(expectedIp)); this.mockRequest.VerifyGet(r => r.UserHostAddress); } @@ -142,7 +142,7 @@ public void UserRequestIPAddress_ShouldReturnEmptyString_IfIPAddressIsNotValid(s var userRequestIPAddress = this.userRequestIPAddressController.GetUserRequestIPAddress(this.mockhttpContext.Object.Request); // Assert - Assert.AreSame(string.Empty, userRequestIPAddress); + Assert.That(userRequestIPAddress, Is.SameAs(string.Empty)); } } } diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Core/Services/UtilTest.cs b/DNN Platform/Tests/DotNetNuke.Tests.Core/Services/UtilTest.cs index 1bfc19db23c..96b6f62b26c 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Core/Services/UtilTest.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Core/Services/UtilTest.cs @@ -49,7 +49,7 @@ private void TryToRewriteFile(int lockFileFor, int tryRewriteFileFor, bool isRew f.Flush(); }, tryRewriteFileFor); - Assert.AreEqual(isRewritten, result); + Assert.That(result, Is.EqualTo(isRewritten)); task.Wait(); } } diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Core/TabCollectionTest.cs b/DNN Platform/Tests/DotNetNuke.Tests.Core/TabCollectionTest.cs index 3d5630a14f0..f5a8ec1af29 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Core/TabCollectionTest.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Core/TabCollectionTest.cs @@ -32,7 +32,7 @@ public void DNN_13659_WithTabName_NullTabName() // Act var tab = tabCollection.WithTabName("TestName"); - Assert.IsNull(tab); + Assert.That(tab, Is.Null); } [Test] @@ -48,7 +48,7 @@ public void WithTabName_Match() var tab = tabCollection.WithTabName("TestName2"); // Assert - Assert.AreEqual("TestName2", tab.TabName); + Assert.That(tab.TabName, Is.EqualTo("TestName2")); } [Test] @@ -64,7 +64,7 @@ public void WithTabName_NoMatch() var tab = tabCollection.WithTabName("NO_MATCH"); // Assert - Assert.IsNull(tab); + Assert.That(tab, Is.Null); } [Test] @@ -80,7 +80,7 @@ public void WithTabName_Empty() var tab = tabCollection.WithTabName(string.Empty); // Assert - Assert.IsNull(tab); + Assert.That(tab, Is.Null); } } } diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Data/DataAssert.cs b/DNN Platform/Tests/DotNetNuke.Tests.Data/DataAssert.cs index 0944ada730a..83eee355691 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Data/DataAssert.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Data/DataAssert.cs @@ -12,19 +12,19 @@ public static void IsFieldValueEqual(T expectedValue, string databaseName, st { var value = DataUtil.GetFieldValue(databaseName, tableName, field, primaryKeyField, id.ToString()); - Assert.AreEqual(expectedValue, value); + Assert.That(value, Is.EqualTo(expectedValue)); } public static void RecordWithIdPresent(string databaseName, string tableName, string primaryKeyField, int id) { var count = DataUtil.GetRecordCount(databaseName, tableName, primaryKeyField, id.ToString()); - Assert.IsTrue(count == 1); + Assert.That(count == 1, Is.True); } public static void RecordWithIdNotPresent(string databaseName, string tableName, string primaryKeyField, int id) { var count = DataUtil.GetRecordCount(databaseName, tableName, primaryKeyField, id.ToString()); - Assert.IsTrue(count == 0); + Assert.That(count == 0, Is.True); } } } diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Data/DataContextTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Data/DataContextTests.cs index 9d00683fec6..88c3d309d9e 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Data/DataContextTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Data/DataContextTests.cs @@ -47,8 +47,8 @@ public void DataContext_Instance_Method_Returns_PetaPocoDataContext() var context = DataContext.Instance(); // Assert - Assert.IsInstanceOf(context); - Assert.IsInstanceOf(context); + Assert.That(context, Is.InstanceOf()); + Assert.That(context, Is.InstanceOf()); } [Test] @@ -62,7 +62,7 @@ public void DataContext_Instance_Method_Returns_Default_PetaPocoDataContext_Inst // Assert Database db = Util.GetPrivateMember(context, "database"); - Assert.AreEqual(connectionString, Util.GetPrivateMember(db, "_connectionString")); + Assert.That(Util.GetPrivateMember(db, "_connectionString"), Is.EqualTo(connectionString)); } [Test] @@ -78,7 +78,7 @@ public void DataContext_Instance_Method_Returns_Named_PetaPocoDataContext_Instan // Assert Database db = Util.GetPrivateMember(context, "database"); - Assert.AreEqual(connectionString, Util.GetPrivateMember(db, "_connectionString")); + Assert.That(Util.GetPrivateMember(db, "_connectionString"), Is.EqualTo(connectionString)); } // ReSharper restore InconsistentNaming diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Data/DataProviderTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Data/DataProviderTests.cs index 80bbcd7e8a0..b555b2e974e 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Data/DataProviderTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Data/DataProviderTests.cs @@ -29,8 +29,8 @@ public void DataProvider_Instance_Method_Returns_Instance() var provider = DataProvider.Instance(); // Assert - Assert.IsInstanceOf(provider); - Assert.IsInstanceOf(provider); + Assert.That(provider, Is.InstanceOf()); + Assert.That(provider, Is.InstanceOf()); } [Test] @@ -46,7 +46,7 @@ public void DataProvider_ConnectionString_Property_Is_Valid() var provider = DataProvider.Instance(); // Assert - Assert.AreEqual(connectionString, provider.ConnectionString); + Assert.That(provider.ConnectionString, Is.EqualTo(connectionString)); } [Test] @@ -65,7 +65,7 @@ public void DataProvider_DatabaseOwner_Property_Is_Valid(string databaseOwner) var provider = DataProvider.Instance(); // Assert - Assert.AreEqual(databaseOwner, provider.DatabaseOwner); + Assert.That(provider.DatabaseOwner, Is.EqualTo(databaseOwner)); } [Test] @@ -84,7 +84,7 @@ public void DataProvider_ObjectQualifier_Property_Is_Valid(string objectQualifie var provider = DataProvider.Instance(); // Assert - Assert.AreEqual(objectQualifier, provider.ObjectQualifier); + Assert.That(provider.ObjectQualifier, Is.EqualTo(objectQualifier)); } [Test] @@ -103,7 +103,7 @@ public void DataProvider_ProviderName_Property_Is_Valid(string providerName) var provider = DataProvider.Instance(); // Assert - Assert.AreEqual(providerName, provider.ProviderName); + Assert.That(provider.ProviderName, Is.EqualTo(providerName)); } [Test] @@ -122,7 +122,7 @@ public void DataProvider_ProviderPath_Property_Is_Valid(string providerPath) var provider = DataProvider.Instance(); // Assert - Assert.AreEqual(providerPath, provider.ProviderPath); + Assert.That(provider.ProviderPath, Is.EqualTo(providerPath)); } } } diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Data/DatabaseConnectionProviderTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Data/DatabaseConnectionProviderTests.cs index 03d43859e9d..b9ec1f1ec1e 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Data/DatabaseConnectionProviderTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Data/DatabaseConnectionProviderTests.cs @@ -2,46 +2,49 @@ // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information -namespace DotNetNuke.Tests.Data -{ - using DotNetNuke.ComponentModel; - using DotNetNuke.Data; - using DotNetNuke.Tests.Data.Fakes; - using NUnit.Framework; +namespace DotNetNuke.Tests.Data +{ + using DotNetNuke.ComponentModel; + using DotNetNuke.Data; + using DotNetNuke.Tests.Data.Fakes; + using NUnit.Framework; - [TestFixture] - public class DatabaseConnectionProviderTests - { - [Test] - public void DatabaseConnectionProvider_Instance_Method_Returns_Instance() - { - // Arrange - ComponentFactory.Container = new SimpleContainer(); - ComponentFactory.RegisterComponentInstance(new FakeDbConnectionProvider()); - - // Act - var provider = DatabaseConnectionProvider.Instance(); - - // Assert - Assert.IsInstanceOf(provider); - Assert.IsInstanceOf(provider); - } - - [Test] - public void DatabaseConnectionProvider_Instance_Method_Returns_Same_Instances() - { - // Arrange - ComponentFactory.Container = new SimpleContainer(); - ComponentFactory.RegisterComponentInstance(new FakeDbConnectionProvider()); - - // Act - var provider1 = DatabaseConnectionProvider.Instance(); - var provider2 = DatabaseConnectionProvider.Instance(); - - // Assert - Assert.IsInstanceOf(provider1); - Assert.IsInstanceOf(provider2); - Assert.AreSame(provider1, provider2); - } - } -} + [TestFixture] + public class DatabaseConnectionProviderTests + { + [Test] + public void DatabaseConnectionProvider_Instance_Method_Returns_Instance() + { + // Arrange + ComponentFactory.Container = new SimpleContainer(); + ComponentFactory.RegisterComponentInstance(new FakeDbConnectionProvider()); + + // Act + var provider = DatabaseConnectionProvider.Instance(); + + // Assert + Assert.That(provider, Is.InstanceOf()); + Assert.That(provider, Is.InstanceOf()); + } + + [Test] + public void DatabaseConnectionProvider_Instance_Method_Returns_Same_Instances() + { + // Arrange + ComponentFactory.Container = new SimpleContainer(); + ComponentFactory.RegisterComponentInstance(new FakeDbConnectionProvider()); + + // Act + var provider1 = DatabaseConnectionProvider.Instance(); + var provider2 = DatabaseConnectionProvider.Instance(); + + Assert.Multiple(() => + { + // Assert + Assert.That(provider1, Is.InstanceOf()); + Assert.That(provider2, Is.InstanceOf()); + }); + Assert.That(provider2, Is.SameAs(provider1)); + } + } +} diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Data/PetaPocoExtTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Data/PetaPocoExtTests.cs index 4d0c7ef8e21..5bbd2dbfcb8 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Data/PetaPocoExtTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Data/PetaPocoExtTests.cs @@ -48,7 +48,7 @@ public void NormalizeSql_WithAtCharAndEmptyArguments_EscapesAtCharSuccessfully( }); // Assert - Assert.AreEqual(expected, result); + Assert.That(result, Is.EqualTo(expected)); } } } diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Data/RepositoryBaseTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Data/RepositoryBaseTests.cs index a1b82d7127b..cc3d1a20fae 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Data/RepositoryBaseTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Data/RepositoryBaseTests.cs @@ -44,7 +44,7 @@ public void RepositoryBase_Constructor_Sets_CacheArgs_Null_If_Not_Cacheable() // Assert var baseRepo = repo as RepositoryBase; - Assert.IsNull(Util.GetPrivateMember, CacheItemArgs>(baseRepo, "CacheArgs")); + Assert.That(Util.GetPrivateMember, CacheItemArgs>(baseRepo, "CacheArgs"), Is.Null); } [Test] @@ -57,7 +57,7 @@ public void RepositoryBase_Constructor_Sets_CacheArgs_If_Cacheable() // Assert var baseRepo = repo as RepositoryBase; - Assert.IsNotNull(Util.GetPrivateMember, CacheItemArgs>(baseRepo, "CacheArgs")); + Assert.That(Util.GetPrivateMember, CacheItemArgs>(baseRepo, "CacheArgs"), Is.Not.Null); } [Test] @@ -70,9 +70,12 @@ public void RepositoryBase_Constructor_Sets_Valid_CacheArgs_If_Cacheable() // Assert var cacheArgs = Util.GetPrivateMember, CacheItemArgs>(repo, "CacheArgs"); - Assert.AreEqual(Constants.CACHE_DogsKey, cacheArgs.CacheKey); - Assert.AreEqual(Constants.CACHE_Priority, cacheArgs.CachePriority); - Assert.AreEqual(Constants.CACHE_TimeOut, cacheArgs.CacheTimeOut); + Assert.Multiple(() => + { + Assert.That(cacheArgs.CacheKey, Is.EqualTo(Constants.CACHE_DogsKey)); + Assert.That(cacheArgs.CachePriority, Is.EqualTo(Constants.CACHE_Priority)); + Assert.That(cacheArgs.CacheTimeOut, Is.EqualTo(Constants.CACHE_TimeOut)); + }); } [Test] @@ -85,7 +88,7 @@ public void RepositoryBase_Constructor_Sets_IsCacheable_False_If_Not_Cacheable() // Assert var baseRepo = repo as RepositoryBase; - Assert.IsFalse(Util.GetPrivateMember, bool>(baseRepo, "IsCacheable")); + Assert.That(Util.GetPrivateMember, bool>(baseRepo, "IsCacheable"), Is.False); } [Test] @@ -98,7 +101,7 @@ public void RepositoryBase_Constructor_Sets_IsCacheable_True_If_Cacheable() // Assert var baseRepo = repo as RepositoryBase; - Assert.IsTrue(Util.GetPrivateMember, bool>(baseRepo, "IsCacheable")); + Assert.That(Util.GetPrivateMember, bool>(baseRepo, "IsCacheable"), Is.True); } [Test] @@ -111,7 +114,7 @@ public void RepositoryBase_Constructor_Sets_IsScoped_False_If_Not_Scoped() // Assert var baseRepo = repo as RepositoryBase; - Assert.IsFalse(Util.GetPrivateMember, bool>(baseRepo, "IsScoped")); + Assert.That(Util.GetPrivateMember, bool>(baseRepo, "IsScoped"), Is.False); } [Test] @@ -124,7 +127,7 @@ public void RepositoryBase_Constructor_Sets_IsScoped_False_If_Cacheable_And_Not_ // Assert var baseRepo = repo as RepositoryBase; - Assert.IsFalse(Util.GetPrivateMember, bool>(baseRepo, "IsScoped")); + Assert.That(Util.GetPrivateMember, bool>(baseRepo, "IsScoped"), Is.False); } [Test] @@ -137,7 +140,7 @@ public void RepositoryBase_Constructor_Sets_IsScoped_True_If_Scoped() // Assert var baseRepo = repo as RepositoryBase; - Assert.IsTrue(Util.GetPrivateMember, bool>(baseRepo, "IsScoped")); + Assert.That(Util.GetPrivateMember, bool>(baseRepo, "IsScoped"), Is.True); } [Test] @@ -150,7 +153,7 @@ public void RepositoryBase_Constructor_Sets_IsScoped_True_If_Cacheable_And_Scope // Assert var baseRepo = repo as RepositoryBase; - Assert.IsTrue(Util.GetPrivateMember, bool>(baseRepo, "IsScoped")); + Assert.That(Util.GetPrivateMember, bool>(baseRepo, "IsScoped"), Is.True); } [Test] @@ -163,7 +166,7 @@ public void RepositoryBase_Constructor_Sets_Scope_Empty_If_Not_Scoped() // Assert var baseRepo = repo as RepositoryBase; - Assert.AreEqual(string.Empty, Util.GetPrivateMember, string>(baseRepo, "Scope")); + Assert.That(Util.GetPrivateMember, string>(baseRepo, "Scope"), Is.EqualTo(string.Empty)); } [Test] @@ -176,7 +179,7 @@ public void RepositoryBase_Constructor_Sets_Scope_Empty_If_Cacheable_And_Not_Sco // Assert var baseRepo = repo as RepositoryBase; - Assert.AreEqual(string.Empty, Util.GetPrivateMember, string>(baseRepo, "Scope")); + Assert.That(Util.GetPrivateMember, string>(baseRepo, "Scope"), Is.EqualTo(string.Empty)); } [Test] @@ -189,7 +192,7 @@ public void RepositoryBase_Constructor_Sets_Scope_If_Scoped() // Assert var baseRepo = repo as RepositoryBase; - Assert.AreEqual(Constants.CACHE_ScopeModule, Util.GetPrivateMember, string>(baseRepo, "Scope")); + Assert.That(Util.GetPrivateMember, string>(baseRepo, "Scope"), Is.EqualTo(Constants.CACHE_ScopeModule)); } [Test] @@ -202,7 +205,7 @@ public void RepositoryBase_Constructor_Sets_Scope_If_Cacheable_And_Scoped() // Assert var baseRepo = repo as RepositoryBase; - Assert.AreEqual(Constants.CACHE_ScopeModule, Util.GetPrivateMember, string>(baseRepo, "Scope")); + Assert.That(Util.GetPrivateMember, string>(baseRepo, "Scope"), Is.EqualTo(Constants.CACHE_ScopeModule)); } [Test] @@ -216,7 +219,7 @@ public void RepositoryBase_Initialize_Sets_CacheArgs_Null_If_Not_Cacheable() // Assert var baseRepo = repo as RepositoryBase; - Assert.IsNull(Util.GetPrivateMember, CacheItemArgs>(baseRepo, "CacheArgs")); + Assert.That(Util.GetPrivateMember, CacheItemArgs>(baseRepo, "CacheArgs"), Is.Null); } [Test] @@ -230,7 +233,7 @@ public void RepositoryBase_Initialize_Sets_CacheArgs_If_Cacheable() // Assert var baseRepo = repo as RepositoryBase; - Assert.IsNotNull(Util.GetPrivateMember, CacheItemArgs>(baseRepo, "CacheArgs")); + Assert.That(Util.GetPrivateMember, CacheItemArgs>(baseRepo, "CacheArgs"), Is.Not.Null); } [Test] @@ -244,9 +247,12 @@ public void RepositoryBase_Initialize_Sets_Valid_CacheArgs_If_Cacheable() // Assert var cacheArgs = Util.GetPrivateMember, CacheItemArgs>(repo, "CacheArgs"); - Assert.AreEqual(Constants.CACHE_DogsKey, cacheArgs.CacheKey); - Assert.AreEqual(Constants.CACHE_Priority, cacheArgs.CachePriority); - Assert.AreEqual(Constants.CACHE_TimeOut, cacheArgs.CacheTimeOut); + Assert.Multiple(() => + { + Assert.That(cacheArgs.CacheKey, Is.EqualTo(Constants.CACHE_DogsKey)); + Assert.That(cacheArgs.CachePriority, Is.EqualTo(Constants.CACHE_Priority)); + Assert.That(cacheArgs.CacheTimeOut, Is.EqualTo(Constants.CACHE_TimeOut)); + }); } [Test] @@ -259,7 +265,7 @@ public void RepositoryBase_Initialize_Sets_IsCacheable_False_If_Not_Cacheable() // Assert var baseRepo = repo as RepositoryBase; - Assert.IsFalse(Util.GetPrivateMember, bool>(baseRepo, "IsCacheable")); + Assert.That(Util.GetPrivateMember, bool>(baseRepo, "IsCacheable"), Is.False); } [Test] @@ -273,7 +279,7 @@ public void RepositoryBase_Initialize_Sets_IsCacheable_True_If_Cacheable() // Assert var baseRepo = repo as RepositoryBase; - Assert.IsTrue(Util.GetPrivateMember, bool>(baseRepo, "IsCacheable")); + Assert.That(Util.GetPrivateMember, bool>(baseRepo, "IsCacheable"), Is.True); } [Test] @@ -287,7 +293,7 @@ public void RepositoryBase_Initialize_Sets_IsScoped_False_If_Not_Scoped() // Assert var baseRepo = repo as RepositoryBase; - Assert.IsFalse(Util.GetPrivateMember, bool>(baseRepo, "IsScoped")); + Assert.That(Util.GetPrivateMember, bool>(baseRepo, "IsScoped"), Is.False); } [Test] @@ -301,7 +307,7 @@ public void RepositoryBase_Initialize_Sets_IsScoped_False_If_Cacheable_And_Not_S // Assert var baseRepo = repo as RepositoryBase; - Assert.IsFalse(Util.GetPrivateMember, bool>(baseRepo, "IsScoped")); + Assert.That(Util.GetPrivateMember, bool>(baseRepo, "IsScoped"), Is.False); } [Test] @@ -315,7 +321,7 @@ public void RepositoryBase_Initialize_Sets_IsScoped_True_If_Scoped() // Assert var baseRepo = repo as RepositoryBase; - Assert.IsTrue(Util.GetPrivateMember, bool>(baseRepo, "IsScoped")); + Assert.That(Util.GetPrivateMember, bool>(baseRepo, "IsScoped"), Is.True); } [Test] @@ -329,7 +335,7 @@ public void RepositoryBase_Initialize_Sets_IsScoped_True_If_Cacheable_And_Scoped // Assert var baseRepo = repo as RepositoryBase; - Assert.IsTrue(Util.GetPrivateMember, bool>(baseRepo, "IsScoped")); + Assert.That(Util.GetPrivateMember, bool>(baseRepo, "IsScoped"), Is.True); } [Test] @@ -343,7 +349,7 @@ public void RepositoryBase_Initialize_Sets_Scope_Empty_If_Not_Scoped() // Assert var baseRepo = repo as RepositoryBase; - Assert.AreEqual(string.Empty, Util.GetPrivateMember, string>(baseRepo, "Scope")); + Assert.That(Util.GetPrivateMember, string>(baseRepo, "Scope"), Is.EqualTo(string.Empty)); } [Test] @@ -357,7 +363,7 @@ public void RepositoryBase_Initialize_Sets_Scope_Empty_If_Cacheable_And_Not_Scop // Assert var baseRepo = repo as RepositoryBase; - Assert.AreEqual(string.Empty, Util.GetPrivateMember, string>(baseRepo, "Scope")); + Assert.That(Util.GetPrivateMember, string>(baseRepo, "Scope"), Is.EqualTo(string.Empty)); } [Test] @@ -371,7 +377,7 @@ public void RepositoryBase_Initialize_Sets_Scope_If_Scoped() // Assert var baseRepo = repo as RepositoryBase; - Assert.AreEqual(Constants.CACHE_ScopeModule, Util.GetPrivateMember, string>(baseRepo, "Scope")); + Assert.That(Util.GetPrivateMember, string>(baseRepo, "Scope"), Is.EqualTo(Constants.CACHE_ScopeModule)); } [Test] @@ -385,7 +391,7 @@ public void RepositoryBase_Initialize_Sets_Scope_If_Cacheable_And_Scoped() // Assert var baseRepo = repo as RepositoryBase; - Assert.AreEqual(Constants.CACHE_ScopeModule, Util.GetPrivateMember, string>(baseRepo, "Scope")); + Assert.That(Util.GetPrivateMember, string>(baseRepo, "Scope"), Is.EqualTo(Constants.CACHE_ScopeModule)); } [Test] diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Integration/Data/FluentMapperTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Integration/Data/FluentMapperTests.cs index 471178d1900..25e9d63e8f6 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Integration/Data/FluentMapperTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Integration/Data/FluentMapperTests.cs @@ -24,7 +24,7 @@ public void FluentMapper_Constructor_Initialises_TablePrefix_Property() var mapper = new FluentMapper(Constants.TABLENAME_Prefix); // Assert - Assert.AreEqual(Constants.TABLENAME_Prefix, Util.GetPrivateMember, string>(mapper, "_tablePrefix")); + Assert.That(Util.GetPrivateMember, string>(mapper, "_tablePrefix"), Is.EqualTo(Constants.TABLENAME_Prefix)); } [Test] @@ -37,7 +37,7 @@ public void FluentMapper_GetTableInfo_Returns_TableInfo() var ti = mapper.GetTableInfo(typeof(Dog)); // Assert - Assert.IsInstanceOf(ti); + Assert.That(ti, Is.InstanceOf()); } [Test] @@ -51,7 +51,7 @@ public void FluentMapper_Maps_TableName_To_Value_Provided() var ti = mapper.GetTableInfo(typeof(Dog)); // Assert - Assert.AreEqual(Constants.TABLENAME_Dog, ti.TableName); + Assert.That(ti.TableName, Is.EqualTo(Constants.TABLENAME_Dog)); } [Test] @@ -65,7 +65,7 @@ public void FluentMapper_Adds_TablePrefix_To_Value_Provided() var ti = mapper.GetTableInfo(typeof(Dog)); // Assert - Assert.AreEqual(Constants.TABLENAME_Prefix + Constants.TABLENAME_Dog, ti.TableName); + Assert.That(ti.TableName, Is.EqualTo(Constants.TABLENAME_Prefix + Constants.TABLENAME_Dog)); } [Test] @@ -79,8 +79,8 @@ public void FluentMapper_Does_Not_Map_TableName_To_Attribute() var ti = mapper.GetTableInfo(typeof(Person)); // Assert - Assert.AreNotEqual(Constants.TABLENAME_Person, ti.TableName); - Assert.AreEqual(Constants.TABLENAME_Dog, ti.TableName); + Assert.That(ti.TableName, Is.Not.EqualTo(Constants.TABLENAME_Person)); + Assert.That(ti.TableName, Is.EqualTo(Constants.TABLENAME_Dog)); } [Test] @@ -93,7 +93,7 @@ public void FluentMapper_Sets_TableName_To_Null_If_Not_Provided() var ti = mapper.GetTableInfo(typeof(Person)); // Assert - Assert.IsNull(ti.TableName); + Assert.That(ti.TableName, Is.Null); } [Test] @@ -107,7 +107,7 @@ public void FluentMapper_Sets_PrimaryKey_To_Provided_Value() var ti = mapper.GetTableInfo(typeof(Person)); // Assert - Assert.AreEqual(Constants.TABLENAME_Key, ti.PrimaryKey); + Assert.That(ti.PrimaryKey, Is.EqualTo(Constants.TABLENAME_Key)); } [Test] @@ -121,7 +121,7 @@ public void FluentMapper_Does_Not_Set_PrimaryKey_To_Attribute() var ti = mapper.GetTableInfo(typeof(Person)); // Assert - Assert.AreNotEqual(Constants.TABLENAME_Person_Key, ti.PrimaryKey); + Assert.That(ti.PrimaryKey, Is.Not.EqualTo(Constants.TABLENAME_Person_Key)); } [Test] @@ -134,7 +134,7 @@ public void FluentMapper_Sets_PrimaryKey_To_Null_If_Not_Provided() var ti = mapper.GetTableInfo(typeof(Person)); // Assert - Assert.IsNull(ti.PrimaryKey); + Assert.That(ti.PrimaryKey, Is.Null); } [Test] @@ -147,7 +147,7 @@ public void FluentMapper_Sets_AutoIncrement_To_False() var ti = mapper.GetTableInfo(typeof(Person)); // Assert - Assert.IsFalse(ti.AutoIncrement); + Assert.That(ti.AutoIncrement, Is.False); } [TestCase(true)] @@ -162,7 +162,7 @@ public void FluentMapper_Sets_AutoIncrement_To_Value_Provided(bool autoIncrement var ti = mapper.GetTableInfo(typeof(Person)); // Assert - Assert.AreEqual(autoIncrement, ti.AutoIncrement); + Assert.That(ti.AutoIncrement, Is.EqualTo(autoIncrement)); } [Test] @@ -178,7 +178,7 @@ public void FluentMapper_GetColumnInfo_Returns_Null_If_Not_Provided() var ci = mapper.GetColumnInfo(dogProperty); // Assert - Assert.IsNull(ci); + Assert.That(ci, Is.Null); } [Test] @@ -195,7 +195,7 @@ public void FluentMapper_GetColumnInfo_Returns_ColumnInfo() var ci = mapper.GetColumnInfo(dogProperty); // Assert - Assert.IsInstanceOf(ci); + Assert.That(ci, Is.InstanceOf()); } [Test] @@ -212,7 +212,7 @@ public void FluentMapper_GetColumnInfo_Maps_ColumnName_To_Value_Provided() var ci = mapper.GetColumnInfo(personProperty); // Assert - Assert.AreEqual(Constants.COLUMNNAME_Name, ci.ColumnName); + Assert.That(ci.ColumnName, Is.EqualTo(Constants.COLUMNNAME_Name)); } [Test] @@ -229,7 +229,7 @@ public void FluentMapper_GetColumnInfo_Does_Not_Map_ColumnName_To_Attribute() var ci = mapper.GetColumnInfo(personProperty); // Assert - Assert.AreNotEqual(Constants.COLUMNNAME_PersonName, ci.ColumnName); + Assert.That(ci.ColumnName, Is.Not.EqualTo(Constants.COLUMNNAME_PersonName)); } } } diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Integration/Data/PetaPocoDataContextTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Integration/Data/PetaPocoDataContextTests.cs index f49658d346c..70ab23a041d 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Integration/Data/PetaPocoDataContextTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Integration/Data/PetaPocoDataContextTests.cs @@ -60,7 +60,7 @@ public void PetaPocoDataContext_Constructor_Initialises_Database_Property() var context = new PetaPocoDataContext(connectionStringName); // Assert - Assert.IsInstanceOf(Util.GetPrivateMember(context, "_database")); + Assert.That(Util.GetPrivateMember(context, "_database"), Is.InstanceOf()); } [Test] @@ -72,7 +72,7 @@ public void PetaPocoDataContext_Constructor_Initialises_TablePrefix_Property() var context = new PetaPocoDataContext(connectionStringName, tablePrefix); // Assert - Assert.AreEqual(tablePrefix, context.TablePrefix); + Assert.That(context.TablePrefix, Is.EqualTo(tablePrefix)); } [Test] @@ -81,11 +81,14 @@ public void PetaPocoDataContext_Constructor_Initialises_Mapper_Property() // Arrange // Act - var context = new PetaPocoDataContext(connectionStringName); - - // Assert - Assert.IsInstanceOf(Util.GetPrivateMember(context, "_mapper")); - Assert.IsInstanceOf(Util.GetPrivateMember(context, "_mapper")); + var context = new PetaPocoDataContext(connectionStringName); + + Assert.Multiple(() => + { + // Assert + Assert.That(Util.GetPrivateMember(context, "_mapper"), Is.InstanceOf()); + Assert.That(Util.GetPrivateMember(context, "_mapper"), Is.InstanceOf()); + }); } [Test] @@ -97,8 +100,8 @@ public void PetaPocoDataContext_Constructor_Initialises_FluentMappers_Property() var context = new PetaPocoDataContext(connectionStringName); // Assert - Assert.IsInstanceOf>(context.FluentMappers); - Assert.AreEqual(0, context.FluentMappers.Count); + Assert.That(context.FluentMappers, Is.InstanceOf>()); + Assert.That(context.FluentMappers, Is.Empty); } [Test] @@ -113,7 +116,7 @@ public void PetaPocoDataContext_Constructor_Initialises_Database_Property_With_C Database db = Util.GetPrivateMember(context, "_database"); string connectionString = ConfigurationManager.ConnectionStrings[connectionStringName].ConnectionString; - Assert.AreEqual(connectionString, Util.GetPrivateMember(db, "_connectionString")); + Assert.That(Util.GetPrivateMember(db, "_connectionString"), Is.EqualTo(connectionString)); } [Test] @@ -129,7 +132,7 @@ public void PetaPocoDataContext_BeginTransaction_Increases_Database_Transaction_ context.BeginTransaction(); // Assert - Assert.AreEqual(transactionDepth + 1, Util.GetPrivateMember(db, "_transactionDepth")); + Assert.That(Util.GetPrivateMember(db, "_transactionDepth"), Is.EqualTo(transactionDepth + 1)); } [Test] @@ -145,7 +148,7 @@ public void PetaPocoDataContext_Commit_Decreases_Database_Transaction_Count() context.Commit(); // Assert - Assert.AreEqual(transactionDepth - 1, Util.GetPrivateMember(db, "_transactionDepth")); + Assert.That(Util.GetPrivateMember(db, "_transactionDepth"), Is.EqualTo(transactionDepth - 1)); } [Test] @@ -161,7 +164,7 @@ public void PetaPocoDataContext_Commit_Sets_Database_TransactionCancelled_False( context.Commit(); // Assert - Assert.AreEqual(false, Util.GetPrivateMember(db, "_transactionCancelled")); + Assert.That(Util.GetPrivateMember(db, "_transactionCancelled"), Is.EqualTo(false)); } [Test] @@ -177,7 +180,7 @@ public void PetaPocoDataContext_RollbackTransaction_Decreases_Database_Transacti context.RollbackTransaction(); // Assert - Assert.AreEqual(transactionDepth - 1, Util.GetPrivateMember(db, "_transactionDepth")); + Assert.That(Util.GetPrivateMember(db, "_transactionDepth"), Is.EqualTo(transactionDepth - 1)); } [Test] @@ -193,7 +196,7 @@ public void PetaPocoDataContext_RollbackTransaction_Sets_Database_TransactionCan context.RollbackTransaction(); // Assert - Assert.AreEqual(true, Util.GetPrivateMember(db, "_transactionCancelled")); + Assert.That(Util.GetPrivateMember(db, "_transactionCancelled"), Is.EqualTo(true)); } [Test] @@ -206,8 +209,8 @@ public void PetaPocoDataContext_GetRepository_Returns_Repository() var repo = context.GetRepository(); // Assert - Assert.IsInstanceOf>(repo); - Assert.IsInstanceOf>(repo); + Assert.That(repo, Is.InstanceOf>()); + Assert.That(repo, Is.InstanceOf>()); } [Test] @@ -220,7 +223,7 @@ public void PetaPocoDataContext_GetRepository_Sets_Repository_Database_Property( var repo = (PetaPocoRepository)context.GetRepository(); // Assert - Assert.IsInstanceOf(Util.GetPrivateMember, Database>(repo, "_database")); + Assert.That(Util.GetPrivateMember, Database>(repo, "_database"), Is.InstanceOf()); } [Test] @@ -233,8 +236,8 @@ public void PetaPocoDataContext_GetRepository_Uses_PetaPocoMapper_If_No_FluentMa var repo = (PetaPocoRepository)context.GetRepository(); // Assert - Assert.IsInstanceOf(Util.GetPrivateMember, IMapper>(repo, "_mapper")); - Assert.IsInstanceOf(Util.GetPrivateMember, IMapper>(repo, "_mapper")); + Assert.That(Util.GetPrivateMember, IMapper>(repo, "_mapper"), Is.InstanceOf()); + Assert.That(Util.GetPrivateMember, IMapper>(repo, "_mapper"), Is.InstanceOf()); } [Test] @@ -248,8 +251,8 @@ public void PetaPocoDataContext_GetRepository_Uses_FluentMapper_If_FluentMapper_ var repo = (PetaPocoRepository)context.GetRepository(); // Assert - Assert.IsInstanceOf(Util.GetPrivateMember, IMapper>(repo, "_mapper")); - Assert.IsInstanceOf>(Util.GetPrivateMember, IMapper>(repo, "_mapper")); + Assert.That(Util.GetPrivateMember, IMapper>(repo, "_mapper"), Is.InstanceOf()); + Assert.That(Util.GetPrivateMember, IMapper>(repo, "_mapper"), Is.InstanceOf>()); } // ReSharper restore InconsistentNaming diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Integration/Data/PetaPocoIntegrationTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Integration/Data/PetaPocoIntegrationTests.cs index a4e98438694..7edb130b9e3 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Integration/Data/PetaPocoIntegrationTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Integration/Data/PetaPocoIntegrationTests.cs @@ -85,7 +85,7 @@ public void PetaPoco_Add_Inserts_Item() int actualCount = DataUtil.GetRecordCount( Constants.PETAPOCO_DatabaseName, Constants.PETAPOCO_DogTableName); - Assert.AreEqual(Constants.PETAPOCO_RecordCount + 1, actualCount); + Assert.That(actualCount, Is.EqualTo(Constants.PETAPOCO_RecordCount + 1)); } [Test] @@ -112,7 +112,7 @@ public void PetaPoco_Add_Inserts_Item_Using_FluentMapper() int actualCount = DataUtil.GetRecordCount( Constants.PETAPOCO_DatabaseName, Constants.PETAPOCO_DogTableName); - Assert.AreEqual(Constants.PETAPOCO_RecordCount + 1, actualCount); + Assert.That(actualCount, Is.EqualTo(Constants.PETAPOCO_RecordCount + 1)); } [Test] @@ -140,7 +140,7 @@ public void PetaPoco_Delete_Deletes_Item() int actualCount = DataUtil.GetRecordCount( Constants.PETAPOCO_DatabaseName, Constants.PETAPOCO_DogTableName); - Assert.AreEqual(Constants.PETAPOCO_RecordCount - 1, actualCount); + Assert.That(actualCount, Is.EqualTo(Constants.PETAPOCO_RecordCount - 1)); } [Test] @@ -168,7 +168,7 @@ public void PetaPoco_Delete_Deletes_Item_Using_FluentMapper() int actualCount = DataUtil.GetRecordCount( Constants.PETAPOCO_DatabaseName, Constants.PETAPOCO_DogTableName); - Assert.AreEqual(Constants.PETAPOCO_RecordCount - 1, actualCount); + Assert.That(actualCount, Is.EqualTo(Constants.PETAPOCO_RecordCount - 1)); } [Test] @@ -189,7 +189,7 @@ public void PetaPoco_Delete_Overload_Deletes_Item() int actualCount = DataUtil.GetRecordCount( Constants.PETAPOCO_DatabaseName, Constants.PETAPOCO_DogTableName); - Assert.AreEqual(Constants.PETAPOCO_RecordCount - 1, actualCount); + Assert.That(actualCount, Is.EqualTo(Constants.PETAPOCO_RecordCount - 1)); } [Test] @@ -211,7 +211,7 @@ public void PetaPoco_Find_Returns_Correct_Rows(int count, string sqlCondition, o } // Assert - Assert.AreEqual(count, dogs.Count()); + Assert.That(dogs.Count(), Is.EqualTo(count)); } [Test] @@ -233,7 +233,7 @@ public void PetaPoco_Get_Returns_All_Items(int count) } // Assert - Assert.AreEqual(count, dogs.Count()); + Assert.That(dogs.Count(), Is.EqualTo(count)); } [Test] @@ -255,7 +255,7 @@ public void PetaPoco_GetAll_Overload_Returns_Page_Of_Items(int pageIndex, int pa } // Assert - Assert.AreEqual(pageSize, dogs.PageSize); + Assert.That(dogs.PageSize, Is.EqualTo(pageSize)); } [Test] @@ -274,9 +274,12 @@ public void PetaPoco_GetById_Returns_Single_Item() } // Assert - Assert.IsInstanceOf(dog); - Assert.AreEqual(Constants.PETAPOCO_ValidDogAge, dog.Age); - Assert.AreEqual(Constants.PETAPOCO_ValidDogName, dog.Name); + Assert.That(dog, Is.InstanceOf()); + Assert.Multiple(() => + { + Assert.That(dog.Age, Is.EqualTo(Constants.PETAPOCO_ValidDogAge)); + Assert.That(dog.Name, Is.EqualTo(Constants.PETAPOCO_ValidDogName)); + }); } [Test] @@ -295,9 +298,12 @@ public void PetaPoco_GetById_Returns_Single_Item_Using_FluentMapper() } // Assert - Assert.IsInstanceOf(dog); - Assert.AreEqual(Constants.PETAPOCO_ValidDogAge, dog.Age); - Assert.AreEqual(Constants.PETAPOCO_ValidDogName, dog.Name); + Assert.That(dog, Is.InstanceOf()); + Assert.Multiple(() => + { + Assert.That(dog.Age, Is.EqualTo(Constants.PETAPOCO_ValidDogAge)); + Assert.That(dog.Name, Is.EqualTo(Constants.PETAPOCO_ValidDogName)); + }); } [Test] @@ -325,14 +331,17 @@ public void PetaPoco_Update_Updates_Item() // Assert DataTable table = DataUtil.GetTable(Constants.PETAPOCO_DatabaseName, Constants.PETAPOCO_DogTableName); - Assert.AreEqual(Constants.PETAPOCO_RecordCount, table.Rows.Count); + Assert.That(table.Rows, Has.Count.EqualTo(Constants.PETAPOCO_RecordCount)); foreach (DataRow row in table.Rows) { if ((int)row["ID"] == Constants.PETAPOCO_UpdateDogId) - { - Assert.AreEqual(row["Age"], Constants.PETAPOCO_UpdateDogAge); - Assert.AreEqual(row["Name"], Constants.PETAPOCO_UpdateDogName); + { + Assert.Multiple(() => + { + Assert.That(row["Age"], Is.EqualTo(Constants.PETAPOCO_UpdateDogAge)); + Assert.That(row["Name"], Is.EqualTo(Constants.PETAPOCO_UpdateDogName)); + }); } } } @@ -362,14 +371,17 @@ public void PetaPoco_Update_Updates_Item_Using_FluentMapper() // Assert DataTable table = DataUtil.GetTable(Constants.PETAPOCO_DatabaseName, Constants.PETAPOCO_DogTableName); - Assert.AreEqual(Constants.PETAPOCO_RecordCount, table.Rows.Count); + Assert.That(table.Rows, Has.Count.EqualTo(Constants.PETAPOCO_RecordCount)); foreach (DataRow row in table.Rows) { if ((int)row["ID"] == Constants.PETAPOCO_UpdateDogId) - { - Assert.AreEqual(row["Age"], Constants.PETAPOCO_UpdateDogAge); - Assert.AreEqual(row["Name"], Constants.PETAPOCO_UpdateDogName); + { + Assert.Multiple(() => + { + Assert.That(row["Age"], Is.EqualTo(Constants.PETAPOCO_UpdateDogAge)); + Assert.That(row["Name"], Is.EqualTo(Constants.PETAPOCO_UpdateDogName)); + }); } } } @@ -392,14 +404,17 @@ public void PetaPoco_Update_Overload_Updates_Item() // Assert DataTable table = DataUtil.GetTable(Constants.PETAPOCO_DatabaseName, Constants.PETAPOCO_DogTableName); - Assert.AreEqual(Constants.PETAPOCO_RecordCount, table.Rows.Count); + Assert.That(table.Rows, Has.Count.EqualTo(Constants.PETAPOCO_RecordCount)); foreach (DataRow row in table.Rows) { if ((int)row["ID"] == Constants.PETAPOCO_UpdateDogId) - { - Assert.AreEqual(row["Age"], Constants.PETAPOCO_UpdateDogAge); - Assert.AreEqual(row["Name"], Constants.PETAPOCO_UpdateDogName); + { + Assert.Multiple(() => + { + Assert.That(row["Age"], Is.EqualTo(Constants.PETAPOCO_UpdateDogAge)); + Assert.That(row["Name"], Is.EqualTo(Constants.PETAPOCO_UpdateDogName)); + }); } } } diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Integration/Data/PetaPocoMapperTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Integration/Data/PetaPocoMapperTests.cs index 9dc6e269083..1df8648365e 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Integration/Data/PetaPocoMapperTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Integration/Data/PetaPocoMapperTests.cs @@ -25,7 +25,7 @@ public void PetaPocoMapper_Constructor_Initialises_TablePrefix_Property() var mapper = new PetaPocoMapper(Constants.TABLENAME_Prefix); // Assert - Assert.AreEqual(Constants.TABLENAME_Prefix, Util.GetPrivateMember(mapper, "_tablePrefix")); + Assert.That(Util.GetPrivateMember(mapper, "_tablePrefix"), Is.EqualTo(Constants.TABLENAME_Prefix)); } [Test] @@ -38,7 +38,7 @@ public void PetaPocoMapper_GetTableInfo_Returns_TableInfo() var ti = mapper.GetTableInfo(typeof(Dog)); // Assert - Assert.IsInstanceOf(ti); + Assert.That(ti, Is.InstanceOf()); } [Test] @@ -51,7 +51,7 @@ public void PetaPocoMapper_Maps_TableName_To_Plural_Of_ObjectName() var ti = mapper.GetTableInfo(typeof(Dog)); // Assert - Assert.AreEqual(Constants.TABLENAME_Dog, ti.TableName); + Assert.That(ti.TableName, Is.EqualTo(Constants.TABLENAME_Dog)); } [Test] @@ -64,7 +64,7 @@ public void PetaPocoMapper_Adds_Prefix_To_Plural_Of_ObjectName() var ti = mapper.GetTableInfo(typeof(Dog)); // Assert - Assert.AreEqual(Constants.TABLENAME_Prefix + Constants.TABLENAME_Dog, ti.TableName); + Assert.That(ti.TableName, Is.EqualTo(Constants.TABLENAME_Prefix + Constants.TABLENAME_Dog)); } [Test] @@ -77,7 +77,7 @@ public void PetaPocoMapper_Maps_TableName_To_Attribute() var ti = mapper.GetTableInfo(typeof(Person)); // Assert - Assert.AreEqual(Constants.TABLENAME_Person, ti.TableName); + Assert.That(ti.TableName, Is.EqualTo(Constants.TABLENAME_Person)); } [Test] @@ -90,7 +90,7 @@ public void PetaPocoMapper_Adds_Prefix_To_Attribute() var ti = mapper.GetTableInfo(typeof(Person)); // Assert - Assert.AreEqual(Constants.TABLENAME_Prefix + Constants.TABLENAME_Person, ti.TableName); + Assert.That(ti.TableName, Is.EqualTo(Constants.TABLENAME_Prefix + Constants.TABLENAME_Person)); } [Test] @@ -103,7 +103,7 @@ public void PetaPocoMapper_Sets_PrimaryKey_To_Attribute() var ti = mapper.GetTableInfo(typeof(Person)); // Assert - Assert.AreEqual(Constants.TABLENAME_Person_Key, ti.PrimaryKey); + Assert.That(ti.PrimaryKey, Is.EqualTo(Constants.TABLENAME_Person_Key)); } [Test] @@ -116,7 +116,7 @@ public void PetaPocoMapper_Sets_PrimaryKey_To_ID_If_No_Attribute() var ti = mapper.GetTableInfo(typeof(Dog)); // Assert - Assert.AreEqual(Constants.TABLENAME_Key, ti.PrimaryKey); + Assert.That(ti.PrimaryKey, Is.EqualTo(Constants.TABLENAME_Key)); } [Test] @@ -129,7 +129,7 @@ public void PetaPocoMapper_Sets_AutoIncrement_To_True() var ti = mapper.GetTableInfo(typeof(Dog)); // Assert - Assert.IsTrue(ti.AutoIncrement); + Assert.That(ti.AutoIncrement, Is.True); } [Test] @@ -144,7 +144,7 @@ public void PetaPocoMapper_GetColumnInfo_Returns_ColumnInfo() var ci = mapper.GetColumnInfo(dogProperty); // Assert - Assert.IsInstanceOf(ci); + Assert.That(ci, Is.InstanceOf()); } [Test] @@ -159,7 +159,7 @@ public void PetaPocoMapper_GetColumnInfo_Maps_ColumnName_To_Attribute() var ci = mapper.GetColumnInfo(personProperty); // Assert - Assert.AreEqual(Constants.COLUMNNAME_PersonName, ci.ColumnName); + Assert.That(ci.ColumnName, Is.EqualTo(Constants.COLUMNNAME_PersonName)); } [Test] @@ -174,7 +174,7 @@ public void PetaPocoMapper_GetColumnInfo_Maps_ColumnName_To_PropertyName_If_No_A var ci = mapper.GetColumnInfo(dogProperty); // Assert - Assert.AreEqual(Constants.COLUMNNAME_Name, ci.ColumnName); + Assert.That(ci.ColumnName, Is.EqualTo(Constants.COLUMNNAME_Name)); } // ReSharper restore InconsistentNaming diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Integration/Data/PetaPocoRepositoryTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Integration/Data/PetaPocoRepositoryTests.cs index 39239a1c3bb..b2eb4345faf 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Integration/Data/PetaPocoRepositoryTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Integration/Data/PetaPocoRepositoryTests.cs @@ -71,7 +71,7 @@ public void PetaPocoRepository_Constructor_Registers_Mapper() #pragma warning restore 168 // Assert - Assert.AreSame(mockMapper.Object, Mappers.GetMapper(typeof(Dog), mockMapper.Object)); + Assert.That(Mappers.GetMapper(typeof(Dog), mockMapper.Object), Is.SameAs(mockMapper.Object)); } [Test] @@ -93,7 +93,7 @@ public void PetaPocoRepository_Get_Returns_All_Rows(int count) IEnumerable dogs = repository.Get(); // Assert - Assert.AreEqual(count, dogs.Count()); + Assert.That(dogs.Count(), Is.EqualTo(count)); } [Test] @@ -114,7 +114,7 @@ public void PetaPocoRepository_Get_Returns_List_Of_Models() // Assert for (int i = 0; i < dogs.Count(); i++) { - Assert.IsInstanceOf(dogs[i]); + Assert.That(dogs[i], Is.InstanceOf()); } } @@ -134,9 +134,12 @@ public void PetaPocoRepository_Get_Returns_Models_With_Correct_Properties() var dogs = repository.Get(); // Assert - var dog = dogs.First(); - Assert.AreEqual(this._dogAges[0], dog.Age.ToString()); - Assert.AreEqual(this._dogNames[0], dog.Name); + var dog = dogs.First(); + Assert.Multiple(() => + { + Assert.That(dog.Age.ToString(), Is.EqualTo(this._dogAges[0])); + Assert.That(dog.Name, Is.EqualTo(this._dogNames[0])); + }); } [Test] @@ -158,9 +161,12 @@ public void PetaPocoRepository_Get_Returns_Models_With_Correct_Properties_Using_ var dogs = repository.Get(); // Assert - var dog = dogs.First(); - Assert.AreEqual(this._dogAges[0], dog.Age.ToString()); - Assert.AreEqual(this._dogNames[0], dog.Name); + var dog = dogs.First(); + Assert.Multiple(() => + { + Assert.That(dog.Age.ToString(), Is.EqualTo(this._dogAges[0])); + Assert.That(dog.Name, Is.EqualTo(this._dogNames[0])); + }); } [Test] @@ -179,7 +185,7 @@ public void PetaPocoRepository_GetById_Returns_Instance_Of_Model_If_Valid_Id() var dog = repository.GetById(Constants.PETAPOCO_ValidDogId); // Assert - Assert.IsInstanceOf(dog); + Assert.That(dog, Is.InstanceOf()); } [Test] @@ -198,7 +204,7 @@ public void PetaPocoRepository_GetById_Returns_Null_If_InValid_Id() var dog = repository.GetById(Constants.PETAPOCO_InvalidDogId); // Assert - Assert.IsNull(dog); + Assert.That(dog, Is.Null); } [Test] @@ -222,7 +228,7 @@ public void PetaPocoRepository_GetById_Returns_Null_If_InValid_Id_Using_FluentMa var dog = repository.GetById(Constants.PETAPOCO_InvalidDogId); // Assert - Assert.IsNull(dog); + Assert.That(dog, Is.Null); } [Test] @@ -238,11 +244,14 @@ public void PetaPocoRepository_GetById_Returns_Model_With_Correct_Properties() var repository = new PetaPocoRepository(db, mapper); // Act - var dog = repository.GetById(Constants.PETAPOCO_ValidDogId); - - // Assert - Assert.AreEqual(Constants.PETAPOCO_ValidDogAge, dog.Age); - Assert.AreEqual(Constants.PETAPOCO_ValidDogName, dog.Name); + var dog = repository.GetById(Constants.PETAPOCO_ValidDogId); + + Assert.Multiple(() => + { + // Assert + Assert.That(dog.Age, Is.EqualTo(Constants.PETAPOCO_ValidDogAge)); + Assert.That(dog.Name, Is.EqualTo(Constants.PETAPOCO_ValidDogName)); + }); } [Test] @@ -263,11 +272,14 @@ public void PetaPocoRepository_GetById_Returns_Model_With_Correct_Properties_Usi var repository = new PetaPocoRepository(db, mapper); // Act - var dog = repository.GetById(Constants.PETAPOCO_ValidDogId); - - // Assert - Assert.AreEqual(Constants.PETAPOCO_ValidDogAge, dog.Age); - Assert.AreEqual(Constants.PETAPOCO_ValidDogName, dog.Name); + var dog = repository.GetById(Constants.PETAPOCO_ValidDogId); + + Assert.Multiple(() => + { + // Assert + Assert.That(dog.Age, Is.EqualTo(Constants.PETAPOCO_ValidDogAge)); + Assert.That(dog.Name, Is.EqualTo(Constants.PETAPOCO_ValidDogName)); + }); } [Test] @@ -293,7 +305,7 @@ public void PetaPocoRepository_Add_Inserts_Item_Into_DataBase() int actualCount = DataUtil.GetRecordCount( Constants.PETAPOCO_DatabaseName, Constants.PETAPOCO_DogTableName); - Assert.AreEqual(Constants.PETAPOCO_RecordCount + 1, actualCount); + Assert.That(actualCount, Is.EqualTo(Constants.PETAPOCO_RecordCount + 1)); } [Test] @@ -319,7 +331,7 @@ public void PetaPocoRepository_Add_Inserts_Item_Into_DataBase_With_Correct_ID() int newId = DataUtil.GetLastAddedRecordID( Constants.PETAPOCO_DatabaseName, Constants.PETAPOCO_DogTableName, Constants.TABLENAME_Key); - Assert.AreEqual(Constants.PETAPOCO_RecordCount + 1, newId); + Assert.That(newId, Is.EqualTo(Constants.PETAPOCO_RecordCount + 1)); } [Test] @@ -343,10 +355,13 @@ public void PetaPocoRepository_Add_Inserts_Item_Into_DataBase_With_Correct_Colum // Assert DataTable table = DataUtil.GetTable(Constants.PETAPOCO_DatabaseName, Constants.PETAPOCO_DogTableName); - DataRow row = table.Rows[table.Rows.Count - 1]; - - Assert.AreEqual(Constants.PETAPOCO_InsertDogAge, row["Age"]); - Assert.AreEqual(Constants.PETAPOCO_InsertDogName, row["Name"]); + DataRow row = table.Rows[table.Rows.Count - 1]; + + Assert.Multiple(() => + { + Assert.That(row["Age"], Is.EqualTo(Constants.PETAPOCO_InsertDogAge)); + Assert.That(row["Name"], Is.EqualTo(Constants.PETAPOCO_InsertDogName)); + }); } [Test] @@ -375,10 +390,13 @@ public void PetaPocoRepository_Add_Inserts_Item_Into_DataBase_With_Correct_Colum // Assert DataTable table = DataUtil.GetTable(Constants.PETAPOCO_DatabaseName, Constants.PETAPOCO_DogTableName); - DataRow row = table.Rows[table.Rows.Count - 1]; - - Assert.AreEqual(Constants.PETAPOCO_InsertDogAge, row["Age"]); - Assert.AreEqual(Constants.PETAPOCO_InsertDogName, row["Name"]); + DataRow row = table.Rows[table.Rows.Count - 1]; + + Assert.Multiple(() => + { + Assert.That(row["Age"], Is.EqualTo(Constants.PETAPOCO_InsertDogAge)); + Assert.That(row["Name"], Is.EqualTo(Constants.PETAPOCO_InsertDogName)); + }); } [Test] @@ -405,7 +423,7 @@ public void PetaPocoRepository_Delete_Deletes_Item_From_DataBase() int actualCount = DataUtil.GetRecordCount( Constants.PETAPOCO_DatabaseName, Constants.PETAPOCO_DogTableName); - Assert.AreEqual(Constants.PETAPOCO_RecordCount - 1, actualCount); + Assert.That(actualCount, Is.EqualTo(Constants.PETAPOCO_RecordCount - 1)); } [Test] @@ -432,7 +450,7 @@ public void PetaPocoRepository_Delete_Deletes_Item_From_DataBase_With_Correct_ID DataTable table = DataUtil.GetTable(Constants.PETAPOCO_DatabaseName, Constants.PETAPOCO_DogTableName); foreach (DataRow row in table.Rows) { - Assert.IsFalse((int)row[Constants.TABLENAME_Key] == Constants.PETAPOCO_DeleteDogId); + Assert.That((int)row[Constants.TABLENAME_Key] == Constants.PETAPOCO_DeleteDogId, Is.False); } } @@ -465,7 +483,7 @@ public void PetaPocoRepository_Delete_Deletes_Item_From_DataBase_With_Correct_ID DataTable table = DataUtil.GetTable(Constants.PETAPOCO_DatabaseName, Constants.PETAPOCO_DogTableName); foreach (DataRow row in table.Rows) { - Assert.IsFalse((int)row[Constants.TABLENAME_Key] == Constants.PETAPOCO_DeleteDogId); + Assert.That((int)row[Constants.TABLENAME_Key] == Constants.PETAPOCO_DeleteDogId, Is.False); } } @@ -494,7 +512,7 @@ public void PetaPocoRepository_Delete_Does_Nothing_With_Invalid_ID() int actualCount = DataUtil.GetRecordCount( Constants.PETAPOCO_DatabaseName, Constants.PETAPOCO_DogTableName); - Assert.AreEqual(Constants.PETAPOCO_RecordCount, actualCount); + Assert.That(actualCount, Is.EqualTo(Constants.PETAPOCO_RecordCount)); } [Test] @@ -527,7 +545,7 @@ public void PetaPocoRepository_Delete_Does_Nothing_With_Invalid_ID_Using_FluentM int actualCount = DataUtil.GetRecordCount( Constants.PETAPOCO_DatabaseName, Constants.PETAPOCO_DogTableName); - Assert.AreEqual(Constants.PETAPOCO_RecordCount, actualCount); + Assert.That(actualCount, Is.EqualTo(Constants.PETAPOCO_RecordCount)); } [Test] @@ -548,7 +566,7 @@ public void PetaPocoRepository_Delete_Overload_Deletes_Item_From_DataBase() int actualCount = DataUtil.GetRecordCount( Constants.PETAPOCO_DatabaseName, Constants.PETAPOCO_DogTableName); - Assert.AreEqual(Constants.PETAPOCO_RecordCount - 1, actualCount); + Assert.That(actualCount, Is.EqualTo(Constants.PETAPOCO_RecordCount - 1)); } [Test] @@ -569,7 +587,7 @@ public void PetaPocoRepository_Delete_Overload_Deletes_Item_From_DataBase_With_C DataTable table = DataUtil.GetTable(Constants.PETAPOCO_DatabaseName, Constants.PETAPOCO_DogTableName); foreach (DataRow row in table.Rows) { - Assert.IsFalse((int)row[Constants.TABLENAME_Key] == Constants.PETAPOCO_DeleteDogId); + Assert.That((int)row[Constants.TABLENAME_Key] == Constants.PETAPOCO_DeleteDogId, Is.False); } } @@ -591,7 +609,7 @@ public void PetaPocoRepository_Delete_Overload_Does_Nothing_With_Invalid_ID() int actualCount = DataUtil.GetRecordCount( Constants.PETAPOCO_DatabaseName, Constants.PETAPOCO_DogTableName); - Assert.AreEqual(Constants.PETAPOCO_RecordCount, actualCount); + Assert.That(actualCount, Is.EqualTo(Constants.PETAPOCO_RecordCount)); } [Test] @@ -612,7 +630,7 @@ public void PetaPocoRepository_Find_Returns_Correct_Rows(int count, string sqlCo IEnumerable dogs = repository.Find(sqlCondition, arg); // Assert - Assert.AreEqual(count, dogs.Count()); + Assert.That(dogs.Count(), Is.EqualTo(count)); } [Test] @@ -634,7 +652,7 @@ public void PetaPocoRepository_GetPage_Overload_Returns_Page_Of_Rows(int pageInd var dogs = repository.GetPage(pageIndex, pageSize); // Assert - Assert.AreEqual(pageSize, dogs.PageSize); + Assert.That(dogs.PageSize, Is.EqualTo(pageSize)); } [Test] @@ -655,7 +673,7 @@ public void PetaPocoRepository_GetPage_Overload_Returns_List_Of_Models() // Assert for (int i = 0; i < dogs.Count(); i++) { - Assert.IsInstanceOf(dogs[i]); + Assert.That(dogs[i], Is.InstanceOf()); } } @@ -675,9 +693,12 @@ public void PetaPocoRepository_GetPage_Overload_Returns_Models_With_Correct_Prop var dogs = repository.GetPage(Constants.PAGE_First, Constants.PAGE_RecordCount); // Assert - var dog = dogs.First(); - Assert.AreEqual(this._dogAges[0], dog.Age.ToString()); - Assert.AreEqual(this._dogNames[0], dog.Name); + var dog = dogs.First(); + Assert.Multiple(() => + { + Assert.That(dog.Age.ToString(), Is.EqualTo(this._dogAges[0])); + Assert.That(dog.Name, Is.EqualTo(this._dogNames[0])); + }); } [Test] @@ -700,7 +721,7 @@ public void PetaPocoRepository_GetPage_Overload_Returns_Correct_Page(int pageInd // Assert var dog = dogs.First(); - Assert.AreEqual(firstId, dog.ID); + Assert.That(dog.ID, Is.EqualTo(firstId)); } [Test] @@ -727,7 +748,7 @@ public void PetaPocoRepository_Update_Updates_Item_In_DataBase() int actualCount = DataUtil.GetRecordCount( Constants.PETAPOCO_DatabaseName, Constants.PETAPOCO_DogTableName); - Assert.AreEqual(Constants.PETAPOCO_RecordCount, actualCount); + Assert.That(actualCount, Is.EqualTo(Constants.PETAPOCO_RecordCount)); } [Test] @@ -755,9 +776,12 @@ public void PetaPocoRepository_Update_Updates_Item_With_Correct_ID() foreach (DataRow row in table.Rows) { if ((int)row[Constants.TABLENAME_Key] == Constants.PETAPOCO_UpdateDogId) - { - Assert.AreEqual(Constants.PETAPOCO_UpdateDogAge, row["Age"]); - Assert.AreEqual(Constants.PETAPOCO_UpdateDogName, row["Name"]); + { + Assert.Multiple(() => + { + Assert.That(row["Age"], Is.EqualTo(Constants.PETAPOCO_UpdateDogAge)); + Assert.That(row["Name"], Is.EqualTo(Constants.PETAPOCO_UpdateDogName)); + }); } } } @@ -792,9 +816,12 @@ public void PetaPocoRepository_Update_Updates_Item_With_Correct_ID_Using_FluentM foreach (DataRow row in table.Rows) { if ((int)row[Constants.TABLENAME_Key] == Constants.PETAPOCO_UpdateDogId) - { - Assert.AreEqual(Constants.PETAPOCO_UpdateDogAge, row["Age"]); - Assert.AreEqual(Constants.PETAPOCO_UpdateDogName, row["Name"]); + { + Assert.Multiple(() => + { + Assert.That(row["Age"], Is.EqualTo(Constants.PETAPOCO_UpdateDogAge)); + Assert.That(row["Name"], Is.EqualTo(Constants.PETAPOCO_UpdateDogName)); + }); } } } @@ -817,7 +844,7 @@ public void PetaPocoRepository_Update_Overload_Updates_Item_In_DataBase() int actualCount = DataUtil.GetRecordCount( Constants.PETAPOCO_DatabaseName, Constants.PETAPOCO_DogTableName); - Assert.AreEqual(Constants.PETAPOCO_RecordCount, actualCount); + Assert.That(actualCount, Is.EqualTo(Constants.PETAPOCO_RecordCount)); } [Test] @@ -839,9 +866,12 @@ public void PetaPocoRepository_Update_Overload_Updates_Item_With_Correct_ID() foreach (DataRow row in table.Rows) { if ((int)row[Constants.TABLENAME_Key] == Constants.PETAPOCO_UpdateDogId) - { - Assert.AreEqual(Constants.PETAPOCO_UpdateDogAge, row["Age"]); - Assert.AreEqual(Constants.PETAPOCO_UpdateDogName, row["Name"]); + { + Assert.Multiple(() => + { + Assert.That(row["Age"], Is.EqualTo(Constants.PETAPOCO_UpdateDogAge)); + Assert.That(row["Name"], Is.EqualTo(Constants.PETAPOCO_UpdateDogName)); + }); } } } diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Integration/Modules/DDRMenu/DDRMenuTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Integration/Modules/DDRMenu/DDRMenuTests.cs index 7252d66b213..7a2ebb1552a 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Integration/Modules/DDRMenu/DDRMenuTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Integration/Modules/DDRMenu/DDRMenuTests.cs @@ -2,103 +2,103 @@ // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information -namespace DotNetNuke.Tests.Integration.Modules.DDRMenu -{ - using System.Collections.Generic; - using System.Configuration; - using System.Linq; - - using DNN.Integration.Test.Framework; - using DNN.Integration.Test.Framework.Controllers; - using DNN.Integration.Test.Framework.Helpers; - using DotNetNuke.Common.Utilities; - using DotNetNuke.Tests.Integration.Executers; - using DotNetNuke.Tests.Integration.Executers.Builders; - using DotNetNuke.Tests.Integration.Executers.Dto; - using NUnit.Framework; - - [TestFixture] - public class DDRMenuTests : IntegrationTestBase - { - private readonly string _hostName; - private readonly string _hostPass; - - public DDRMenuTests() - { - var url = ConfigurationManager.AppSettings["siteUrl"]; - this._hostName = ConfigurationManager.AppSettings["hostUsername"]; - this._hostPass = ConfigurationManager.AppSettings["hostPassword"]; - } - - [OneTimeSetUp] - public override void TestFixtureSetUp() - { - base.TestFixtureSetUp(); - } - +namespace DotNetNuke.Tests.Integration.Modules.DDRMenu +{ + using System.Collections.Generic; + using System.Configuration; + using System.Linq; + + using DNN.Integration.Test.Framework; + using DNN.Integration.Test.Framework.Controllers; + using DNN.Integration.Test.Framework.Helpers; + using DotNetNuke.Common.Utilities; + using DotNetNuke.Tests.Integration.Executers; + using DotNetNuke.Tests.Integration.Executers.Builders; + using DotNetNuke.Tests.Integration.Executers.Dto; + using NUnit.Framework; + + [TestFixture] + public class DDRMenuTests : IntegrationTestBase + { + private readonly string _hostName; + private readonly string _hostPass; + + public DDRMenuTests() + { + var url = ConfigurationManager.AppSettings["siteUrl"]; + this._hostName = ConfigurationManager.AppSettings["hostUsername"]; + this._hostPass = ConfigurationManager.AppSettings["hostPassword"]; + } + + [OneTimeSetUp] + public override void TestFixtureSetUp() + { + base.TestFixtureSetUp(); + } + [Test] - public void Page_Should_Able_To_Duplicate_With_Ddr_Menu_On_It() - { - // Create new page with DDR Menu on it - int tabId; - this.CreateNewPage(Null.NullInteger, out tabId); - int moduleId; - this.AddModuleToPage(tabId, "DDRMenu", out moduleId); - - // apply module settings. - ModuleController.SetModuleSettingValue(moduleId, "MenuStyle", "Menus/MainMenu"); - - // Copy Page - int copyTabId; - this.CreateNewPage(tabId, out copyTabId); - } - - private IWebApiConnector CreateNewPage(int templateTabId, out int tabId) - { - var pagesExecuter = new PagesExecuter { Connector = WebApiTestHelper.LoginHost() }; - - var pageSettingsBuilder = new PageSettingsBuilder(); - pageSettingsBuilder.WithPermission(new TabPermissionsBuilder().Build()); - - if (templateTabId > 0) - { - pageSettingsBuilder.WithTemplateTabId(templateTabId); - - var modules = DatabaseHelper.ExecuteQuery($"SELECT ModuleId, ModuleTitle FROM {{objectQualifier}}TabModules WHERE TabId = {templateTabId}"); - pageSettingsBuilder.WithCopyModules(modules.ToList()); - } - - var pageDetail = pagesExecuter.SavePageDetails(pageSettingsBuilder.Build()); - - Assert.NotNull(pageDetail.Page, "The system must create the page and return its details in the response"); - - tabId = (int)pageDetail.Page.id; - - return pagesExecuter.Connector; - } - - private IWebApiConnector AddModuleToPage(int tabId, string moduleName, out int moduleId) - { - var connector = WebApiTestHelper.LoginHost(); - - var desktopModuleId = DatabaseHelper.ExecuteScalar($"SELECT DesktopModuleId FROM {{objectQualifier}}DesktopModules WHERE ModuleName = '{moduleName}'"); - var postData = new - { - Visibility = 0, - Position = -1, - Module = desktopModuleId, - Pane = "ContentPane", - AddExistingModule = false, - CopyModule = false, - Sort = -1, - }; - var headers = new Dictionary { { "TabId", tabId.ToString() } }; - var response = connector.PostJson("API/internalservices/controlbar/AddModule", postData, headers) - .Content.ReadAsStringAsync().Result; - moduleId = Json.Deserialize(response).TabModuleID; - - return connector; - } - } -} + public void Page_Should_Able_To_Duplicate_With_Ddr_Menu_On_It() + { + // Create new page with DDR Menu on it + int tabId; + this.CreateNewPage(Null.NullInteger, out tabId); + int moduleId; + this.AddModuleToPage(tabId, "DDRMenu", out moduleId); + + // apply module settings. + ModuleController.SetModuleSettingValue(moduleId, "MenuStyle", "Menus/MainMenu"); + + // Copy Page + int copyTabId; + this.CreateNewPage(tabId, out copyTabId); + } + + private IWebApiConnector CreateNewPage(int templateTabId, out int tabId) + { + var pagesExecuter = new PagesExecuter { Connector = WebApiTestHelper.LoginHost() }; + + var pageSettingsBuilder = new PageSettingsBuilder(); + pageSettingsBuilder.WithPermission(new TabPermissionsBuilder().Build()); + + if (templateTabId > 0) + { + pageSettingsBuilder.WithTemplateTabId(templateTabId); + + var modules = DatabaseHelper.ExecuteQuery($"SELECT ModuleId, ModuleTitle FROM {{objectQualifier}}TabModules WHERE TabId = {templateTabId}"); + pageSettingsBuilder.WithCopyModules(modules.ToList()); + } + + var pageDetail = pagesExecuter.SavePageDetails(pageSettingsBuilder.Build()); + + Assert.That(pageDetail.Page, Is.Not.Null, "The system must create the page and return its details in the response"); + + tabId = (int)pageDetail.Page.id; + + return pagesExecuter.Connector; + } + + private IWebApiConnector AddModuleToPage(int tabId, string moduleName, out int moduleId) + { + var connector = WebApiTestHelper.LoginHost(); + + var desktopModuleId = DatabaseHelper.ExecuteScalar($"SELECT DesktopModuleId FROM {{objectQualifier}}DesktopModules WHERE ModuleName = '{moduleName}'"); + var postData = new + { + Visibility = 0, + Position = -1, + Module = desktopModuleId, + Pane = "ContentPane", + AddExistingModule = false, + CopyModule = false, + Sort = -1, + }; + var headers = new Dictionary { { "TabId", tabId.ToString() } }; + var response = connector.PostJson("API/internalservices/controlbar/AddModule", postData, headers) + .Content.ReadAsStringAsync().Result; + moduleId = Json.Deserialize(response).TabModuleID; + + return connector; + } + } +} diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Integration/Modules/DigitalAssets/DigitalAssetsTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Integration/Modules/DigitalAssets/DigitalAssetsTests.cs index 8a9788b11c5..70ec080db0c 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Integration/Modules/DigitalAssets/DigitalAssetsTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Integration/Modules/DigitalAssets/DigitalAssetsTests.cs @@ -36,7 +36,7 @@ public void File_Url_Should_Update_After_Rename_Folder() var getUrlApi = "API/DigitalAssets/ContentService/GetUrl"; var fileUrl = connector.PostJson(getUrlApi, new { fileId = fileId }, this.GetRequestHeaders()).Content.ReadAsStringAsync().Result; - Assert.IsTrue(fileUrl.Contains(newFolderName)); + Assert.That(fileUrl.Contains(newFolderName), Is.True); } private int GetRootFolderId() diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Integration/Modules/Journal/PostJournalTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Integration/Modules/Journal/PostJournalTests.cs index 13dad48ab83..c9c088f9ec5 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Integration/Modules/Journal/PostJournalTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Integration/Modules/Journal/PostJournalTests.cs @@ -97,10 +97,13 @@ public void Journal_Should_Not_Able_To_Attach_Files_Upload_By_Other_User() { exceptionThrown = true; exceptionMessage = Json.Deserialize(ex.Body).ExceptionMessage; - } - - Assert.IsTrue(exceptionThrown, "Should throw out exception"); - Assert.AreEqual("you have no permission to attach files not belongs to you.", exceptionMessage); + } + + Assert.Multiple(() => + { + Assert.That(exceptionThrown, Is.True, "Should throw out exception"); + Assert.That(exceptionMessage, Is.EqualTo("you have no permission to attach files not belongs to you.")); + }); } [Test] @@ -131,10 +134,13 @@ public void Journal_Should_Not_Able_To_Post_On_Other_User_Profile_Page() { exceptionThrown = true; exceptionMessage = Json.Deserialize(ex.Body).ExceptionMessage; - } - - Assert.IsTrue(exceptionThrown, "Should throw out exception"); - Assert.AreEqual("you have no permission to post journal on current profile page.", exceptionMessage); + } + + Assert.Multiple(() => + { + Assert.That(exceptionThrown, Is.True, "Should throw out exception"); + Assert.That(exceptionMessage, Is.EqualTo("you have no permission to post journal on current profile page.")); + }); } [Test] @@ -217,10 +223,13 @@ public void Journal_Should_Not_Able_To_Post_On_Group_Not_Join() { exceptionThrown = true; exceptionMessage = Json.Deserialize(ex.Body).ExceptionMessage; - } - - Assert.IsTrue(exceptionThrown, "Should throw out exception"); - Assert.AreEqual("you have no permission to post journal on current group.", exceptionMessage); + } + + Assert.Multiple(() => + { + Assert.That(exceptionThrown, Is.True, "Should throw out exception"); + Assert.That(exceptionMessage, Is.EqualTo("you have no permission to post journal on current group.")); + }); } [Test] @@ -246,9 +255,9 @@ public void Journal_Should_Not_Able_To_Post_Xss_Code_In_ImageUrl() var itemData = DatabaseHelper.ExecuteScalar($"SELECT ItemData FROM {{objectQualifier}}Journal WHERE UserId = {userId}"); var imageUrl = Json.Deserialize(itemData).ImageUrl.ToString(); - Assert.AreEqual(-1, imageUrl.IndexOf("javascript")); - Assert.AreEqual(-1, imageUrl.IndexOf("onerror")); - Assert.AreEqual(-1, imageUrl.IndexOf("alert")); + Assert.That(imageUrl.IndexOf("javascript"), Is.EqualTo(-1)); + Assert.That(imageUrl.IndexOf("onerror"), Is.EqualTo(-1)); + Assert.That(imageUrl.IndexOf("alert"), Is.EqualTo(-1)); } [Test] @@ -274,7 +283,7 @@ public void Journal_Should_Not_Able_To_Post_Xss_Code_In_Url() var itemData = DatabaseHelper.ExecuteScalar($"SELECT ItemData FROM {{objectQualifier}}Journal WHERE UserId = {userId}"); var url = Json.Deserialize(itemData).Url.ToString(); - Assert.AreEqual(-1, url.IndexOf("javascript")); + Assert.That(url.IndexOf("javascript"), Is.EqualTo(-1)); } [Test] @@ -300,7 +309,7 @@ public void Journal_Should_Not_Able_To_Post_Extenal_Link_In_Url() var itemData = DatabaseHelper.ExecuteScalar($"SELECT ItemData FROM {{objectQualifier}}Journal WHERE UserId = {userId}"); var url = Json.Deserialize(itemData).Url.ToString(); - Assert.AreEqual(-1, url.IndexOf("www.dnnsoftware.com")); + Assert.That(url.IndexOf("www.dnnsoftware.com"), Is.EqualTo(-1)); } [Test] @@ -325,11 +334,11 @@ public void Journal_Should_Able_See_By_All_When_Set_Security_To_Everyone() connector.PostJson("/API/Journal/Services/Create", postData, this.GetRequestHeaders()); var response = connector.GetContent($"/Activity-Feed/userId/{userId}").Content.ReadAsStringAsync().Result; - Assert.Greater(response.IndexOf(journalText), 0); + Assert.That(response.IndexOf(journalText), Is.GreaterThan(0)); connector.Logout(); response = connector.GetContent($"/Activity-Feed/userId/{userId}").Content.ReadAsStringAsync().Result; - Assert.Greater(response.IndexOf(journalText), 0); + Assert.That(response.IndexOf(journalText), Is.GreaterThan(0)); } [Test] @@ -355,11 +364,11 @@ public void Journal_Should_Only_Able_See_By_Members_When_Set_Security_To_Communi connector1.PostJson("/API/Journal/Services/Create", postData, this.GetRequestHeaders()); var response = connector2.GetContent($"/Activity-Feed/userId/{userId1}").Content.ReadAsStringAsync().Result; - Assert.Greater(response.IndexOf(journalText), 0); + Assert.That(response.IndexOf(journalText), Is.GreaterThan(0)); connector2.Logout(); response = connector2.GetContent($"/Activity-Feed/userId/{userId1}").Content.ReadAsStringAsync().Result; - Assert.AreEqual(response.IndexOf(journalText), -1); + Assert.That(response.IndexOf(journalText), Is.EqualTo(-1)); } [Test] @@ -392,10 +401,10 @@ public void Journal_Should_Only_Able_See_By_Friends_When_Set_Security_To_Friends connector1.PostJson("/API/Journal/Services/Create", postData, this.GetRequestHeaders()); var response = connector2.GetContent($"/Activity-Feed/userId/{userId1}").Content.ReadAsStringAsync().Result; - Assert.Greater(response.IndexOf(journalText), 0); + Assert.That(response.IndexOf(journalText), Is.GreaterThan(0)); response = connector3.GetContent($"/Activity-Feed/userId/{userId1}").Content.ReadAsStringAsync().Result; - Assert.AreEqual(response.IndexOf(journalText), -1); + Assert.That(response.IndexOf(journalText), Is.EqualTo(-1)); } [Test] @@ -420,11 +429,11 @@ public void Journal_Should_Only_Able_See_By_Himself_When_Set_Security_To_Private connector.PostJson("/API/Journal/Services/Create", postData, this.GetRequestHeaders()); var response = connector.GetContent($"/Activity-Feed/userId/{userId}").Content.ReadAsStringAsync().Result; - Assert.Greater(response.IndexOf(journalText), 0); + Assert.That(response.IndexOf(journalText), Is.GreaterThan(0)); var hostConnector = WebApiTestHelper.LoginHost(); response = hostConnector.GetContent($"/Activity-Feed/userId/{userId}").Content.ReadAsStringAsync().Result; - Assert.AreEqual(response.IndexOf(journalText), -1); + Assert.That(response.IndexOf(journalText), Is.EqualTo(-1)); } private IWebApiConnector PrepareNewUser(out int userId, out string username, out int fileId) diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Integration/PersonaBar/Content/Pages/AddPageTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Integration/PersonaBar/Content/Pages/AddPageTests.cs index dc55b7ace64..46a2de3a8ac 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Integration/PersonaBar/Content/Pages/AddPageTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Integration/PersonaBar/Content/Pages/AddPageTests.cs @@ -38,15 +38,21 @@ public void Add_Multi_Pages_For_Exisitng_Shoul_Return_Results() var connector = WebApiTestHelper.LoginHost(); var response = connector.PostJson(AddBulkPagesApi, addPagesDto).Content.ReadAsStringAsync().Result; var result = JsonConvert.DeserializeObject(response); - Console.WriteLine(@"Add bulk pages ersponse = {0}", response); - Assert.AreEqual(0, result.Status); - Assert.IsNull(result.Response.Pages.First().ErrorMessage); + Console.WriteLine(@"Add bulk pages ersponse = {0}", response); + Assert.Multiple(() => + { + Assert.That(result.Status, Is.EqualTo(0)); + Assert.That(result.Response.Pages.First().ErrorMessage, Is.Null); + }); var response2 = connector.PostJson(VerigyBulkPagesApi, addPagesDto).Content.ReadAsStringAsync().Result; var result2 = JsonConvert.DeserializeObject(response2); - Console.WriteLine(@"Verify bulk pages ersponse = {0}", response2); - Assert.AreEqual(0, int.Parse(result2.Status.ToString())); - Assert.That(result2.Response.Pages.First().ErrorMessage, Is.Not.Null.And.Not.Empty); + Console.WriteLine(@"Verify bulk pages ersponse = {0}", response2); + Assert.Multiple(() => + { + Assert.That(int.Parse(result2.Status.ToString()), Is.EqualTo(0)); + Assert.That(result2.Response.Pages.First().ErrorMessage, Is.Not.Null.And.Not.Empty); + }); } [JsonObject] diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Integration/PersonaBar/Content/Pages/PageUrlsTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Integration/PersonaBar/Content/Pages/PageUrlsTests.cs index ae19da83505..c18a2c7d2c7 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Integration/PersonaBar/Content/Pages/PageUrlsTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Integration/PersonaBar/Content/Pages/PageUrlsTests.cs @@ -52,7 +52,7 @@ public void Page_Url_Should_Able_To_Add_On_English_Disabled_Site() // reset changes ResetChanges(connector, isEnglishEnabled, languageSettings); - Assert.IsTrue(bool.Parse(result.Success.ToString())); + Assert.That(bool.Parse(result.Success.ToString()), Is.True); } private static IWebApiConnector PrepareTest(out bool isEnglishEnabled, out dynamic languageSettings) @@ -124,7 +124,7 @@ private static int CreateNewPage(IWebApiConnector connector) var pageSettingsBuilder = new PageSettingsBuilder(); pageSettingsBuilder.WithPermission(new TabPermissionsBuilder().Build()); var pageDetail = pagesExecuter.SavePageDetails(pageSettingsBuilder.Build()); - Assert.NotNull(pageDetail.Page, "The system must create the page and return its details in the response"); + Assert.That(pageDetail.Page, Is.Not.Null, "The system must create the page and return its details in the response"); return (int)pageDetail.Page.id; } } diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Integration/PersonaBar/Manage/Users/UsersFiltersTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Integration/PersonaBar/Manage/Users/UsersFiltersTests.cs index 62bc39084db..a9ba309aa60 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Integration/PersonaBar/Manage/Users/UsersFiltersTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Integration/PersonaBar/Manage/Users/UsersFiltersTests.cs @@ -48,7 +48,7 @@ public override void TestFixtureSetUp() var makeAdminItem = new { RoleId = 0, UserId = this._userIds[userIdx] }; var response = hostConnector.PostJson(MakeAdminApi, makeAdminItem).Content.ReadAsStringAsync().Result; var result = JsonConvert.DeserializeObject(response); - Assert.AreEqual(this._userNames[userIdx], result.displayName.ToString()); + Assert.That(result.displayName.ToString(), Is.EqualTo(this._userNames[userIdx])); // Unauthorize the next 2 new users for (userIdx = 1; userIdx <= 2; userIdx++) @@ -56,14 +56,14 @@ public override void TestFixtureSetUp() var unauthorizeLink = string.Format(UnauthorizeApi, this._userIds[userIdx]); response = hostConnector.PostJson(unauthorizeLink, string.Empty).Content.ReadAsStringAsync().Result; result = JsonConvert.DeserializeObject(response); - Assert.IsTrue(bool.Parse(result.Success.ToString())); + Assert.That(bool.Parse(result.Success.ToString()), Is.True); } // soft delete the next new user var deleteLink = string.Format(DeleteApi, this._userIds[userIdx]); response = hostConnector.PostJson(deleteLink, string.Empty).Content.ReadAsStringAsync().Result; result = JsonConvert.DeserializeObject(response); - Assert.IsTrue(bool.Parse(result.Success.ToString())); + Assert.That(bool.Parse(result.Success.ToString()), Is.True); } [TestCase("All", MaxUsers, "/API/PersonaBar/Users/GetUsers?searchText=&filter=5&pageIndex=0&pageSize=10&sortColumn=&sortAscending=false&resetIndex=true")] @@ -82,7 +82,7 @@ public void GetUsersAsHostWithVariousFiltersShoudlReturnExpectedResult(string ac // Assert var totalResults = int.Parse(result.TotalResults.ToString()); - Assert.AreEqual(expectedTotal, totalResults, $"Total results {totalResults} is incorrect for action [{actionName}]"); + Assert.That(totalResults, Is.EqualTo(expectedTotal), $"Total results {totalResults} is incorrect for action [{actionName}]"); } [TestCase("All", MaxUsers, "/API/PersonaBar/Users/GetUsers?searchText=&filter=5&pageIndex=0&pageSize=10&sortColumn=&sortAscending=false&resetIndex=true")] @@ -101,7 +101,7 @@ public void GetUsersAsAdminWithVariousFiltersShoudlReturnExpectedResult(string a // Assert var totalResults = int.Parse(result.TotalResults.ToString()); - Assert.AreEqual(expectedTotal, totalResults, $"Total results {totalResults} is incorrect for action [{actionName}]"); + Assert.That(totalResults, Is.EqualTo(expectedTotal), $"Total results {totalResults} is incorrect for action [{actionName}]"); } } } diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Integration/PersonaBar/Pages/PagesManagementTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Integration/PersonaBar/Pages/PagesManagementTests.cs index 97760f64980..224721484e2 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Integration/PersonaBar/Pages/PagesManagementTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Integration/PersonaBar/Pages/PagesManagementTests.cs @@ -2,119 +2,119 @@ // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information -namespace DotNetNuke.Tests.Integration.PersonaBar.Pages -{ - using System.Collections.Generic; - using System.Configuration; - using System.Linq; - using System.Net; - - using DNN.Integration.Test.Framework; - using DNN.Integration.Test.Framework.Helpers; - using DotNetNuke.Common.Utilities; - using DotNetNuke.Tests.Integration.Executers; - using DotNetNuke.Tests.Integration.Executers.Builders; - using DotNetNuke.Tests.Integration.Executers.Dto; - using NUnit.Framework; - - [TestFixture] - public class PagesManagementTests : IntegrationTestBase - { - private readonly string _hostName; - private readonly string _hostPass; - - private readonly int PortalId = 0; - - public PagesManagementTests() - { - var url = ConfigurationManager.AppSettings["siteUrl"]; - this._hostName = ConfigurationManager.AppSettings["hostUsername"]; - this._hostPass = ConfigurationManager.AppSettings["hostPassword"]; - } - - [OneTimeSetUp] - public override void TestFixtureSetUp() - { - base.TestFixtureSetUp(); - - ServicePointManager.ServerCertificateValidationCallback += (sender, cert, chain, sslPolicyErrors) => true; - - this.UpdateSslSettings(true); - - this.UpdateContentLocalization(true); - } - - [OneTimeTearDown] - public override void TestFixtureTearDown() - { - base.TestFixtureTearDown(); - - this.UpdateSslSettings(false); - - this.UpdateContentLocalization(false); - } - - [Test] - public void Page_Marked_As_Secure_Should_Able_To_Management_In_Insecure_Channel() - { - int tabId; - var connector = this.CreateNewSecurePage(out tabId); - - // Try to request the GetLocalization API - var response = connector.GetContent($"API/PersonaBar/Pages/GetTabLocalization?pageId={tabId}", null, true, false); - Assert.AreEqual(HttpStatusCode.OK, response.StatusCode); - } - - private void UpdateContentLocalization(bool enabled) - { - var connector = WebApiTestHelper.LoginHost(); - - var postData = new - { - PortalId = this.PortalId, - ContentLocalizationEnabled = false, - SystemDefaultLanguage = "English (United States)", - SystemDefaultLanguageIcon = "/images/Flags/en-US.gif", - SiteDefaultLanguage = "en-US", - LanguageDisplayMode = "NATIVE", - EnableUrlLanguage = true, - EnableBrowserLanguage = true, - AllowUserUICulture = false, - CultureCode = "en-US", - AllowContentLocalization = enabled, - }; - - connector.PostJson("API/PersonaBar/SiteSettings/UpdateLanguageSettings", postData); - - connector.PostJson( - enabled - ? $"API/PersonaBar/Languages/EnableLocalizedContent?portalId={this.PortalId}&translatePages=false" - : $"API/PersonaBar/Languages/DisableLocalizedContent?portalId={this.PortalId}", new { }); - } - - private void UpdateSslSettings(bool sslEnabled) - { - var connector = WebApiTestHelper.LoginHost(); - - var postData = new { SSLSetup = 2, SSLEnforced = false, SSLURL = string.Empty, STDURL = string.Empty, SSLOffloadHeader = string.Empty }; - connector.PostJson("API/PersonaBar/Security/UpdateSslSettings", postData); - } - - private IWebApiConnector CreateNewSecurePage(out int tabId) - { - var pagesExecuter = new PagesExecuter { Connector = WebApiTestHelper.LoginHost() }; - - var pageSettingsBuilder = new PageSettingsBuilder(); - pageSettingsBuilder.WithPermission(new TabPermissionsBuilder().Build()); - pageSettingsBuilder.WithSecure(true); - - var pageDetail = pagesExecuter.SavePageDetails(pageSettingsBuilder.Build()); - - Assert.NotNull(pageDetail.Page, "The system must create the page and return its details in the response"); - - tabId = (int)pageDetail.Page.id; - - return pagesExecuter.Connector; - } - } -} +namespace DotNetNuke.Tests.Integration.PersonaBar.Pages +{ + using System.Collections.Generic; + using System.Configuration; + using System.Linq; + using System.Net; + + using DNN.Integration.Test.Framework; + using DNN.Integration.Test.Framework.Helpers; + using DotNetNuke.Common.Utilities; + using DotNetNuke.Tests.Integration.Executers; + using DotNetNuke.Tests.Integration.Executers.Builders; + using DotNetNuke.Tests.Integration.Executers.Dto; + using NUnit.Framework; + + [TestFixture] + public class PagesManagementTests : IntegrationTestBase + { + private readonly string _hostName; + private readonly string _hostPass; + + private readonly int PortalId = 0; + + public PagesManagementTests() + { + var url = ConfigurationManager.AppSettings["siteUrl"]; + this._hostName = ConfigurationManager.AppSettings["hostUsername"]; + this._hostPass = ConfigurationManager.AppSettings["hostPassword"]; + } + + [OneTimeSetUp] + public override void TestFixtureSetUp() + { + base.TestFixtureSetUp(); + + ServicePointManager.ServerCertificateValidationCallback += (sender, cert, chain, sslPolicyErrors) => true; + + this.UpdateSslSettings(true); + + this.UpdateContentLocalization(true); + } + + [OneTimeTearDown] + public override void TestFixtureTearDown() + { + base.TestFixtureTearDown(); + + this.UpdateSslSettings(false); + + this.UpdateContentLocalization(false); + } + + [Test] + public void Page_Marked_As_Secure_Should_Able_To_Management_In_Insecure_Channel() + { + int tabId; + var connector = this.CreateNewSecurePage(out tabId); + + // Try to request the GetLocalization API + var response = connector.GetContent($"API/PersonaBar/Pages/GetTabLocalization?pageId={tabId}", null, true, false); + Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.OK)); + } + + private void UpdateContentLocalization(bool enabled) + { + var connector = WebApiTestHelper.LoginHost(); + + var postData = new + { + PortalId = this.PortalId, + ContentLocalizationEnabled = false, + SystemDefaultLanguage = "English (United States)", + SystemDefaultLanguageIcon = "/images/Flags/en-US.gif", + SiteDefaultLanguage = "en-US", + LanguageDisplayMode = "NATIVE", + EnableUrlLanguage = true, + EnableBrowserLanguage = true, + AllowUserUICulture = false, + CultureCode = "en-US", + AllowContentLocalization = enabled, + }; + + connector.PostJson("API/PersonaBar/SiteSettings/UpdateLanguageSettings", postData); + + connector.PostJson( + enabled + ? $"API/PersonaBar/Languages/EnableLocalizedContent?portalId={this.PortalId}&translatePages=false" + : $"API/PersonaBar/Languages/DisableLocalizedContent?portalId={this.PortalId}", new { }); + } + + private void UpdateSslSettings(bool sslEnabled) + { + var connector = WebApiTestHelper.LoginHost(); + + var postData = new { SSLSetup = 2, SSLEnforced = false, SSLURL = string.Empty, STDURL = string.Empty, SSLOffloadHeader = string.Empty }; + connector.PostJson("API/PersonaBar/Security/UpdateSslSettings", postData); + } + + private IWebApiConnector CreateNewSecurePage(out int tabId) + { + var pagesExecuter = new PagesExecuter { Connector = WebApiTestHelper.LoginHost() }; + + var pageSettingsBuilder = new PageSettingsBuilder(); + pageSettingsBuilder.WithPermission(new TabPermissionsBuilder().Build()); + pageSettingsBuilder.WithSecure(true); + + var pageDetail = pagesExecuter.SavePageDetails(pageSettingsBuilder.Build()); + + Assert.That(pageDetail.Page, Is.Not.Null, "The system must create the page and return its details in the response"); + + tabId = (int)pageDetail.Page.id; + + return pagesExecuter.Connector; + } + } +} diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Integration/Services/Installer/XmlMergeTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Integration/Services/Installer/XmlMergeTests.cs index 93bc680bc52..bc61be008ec 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Integration/Services/Installer/XmlMergeTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Integration/Services/Installer/XmlMergeTests.cs @@ -2,648 +2,654 @@ // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information -namespace DotNetNuke.Tests.Integration.Services.Installer -{ - using System; - using System.Diagnostics; - using System.IO; - using System.Reflection; - using System.Xml; - - using DotNetNuke.Instrumentation; - using DotNetNuke.Services.Installer; - using DotNetNuke.Tests.Utilities; - using NUnit.Framework; - - [TestFixture] - public class XmlMergeTests : DnnUnitTest - { - private const bool OutputXml = true; - private readonly Assembly _assembly = typeof(XmlMergeTests).Assembly; - - [SetUp] - public void SetUp() - { - AppDomain.CurrentDomain.SetData("APPBASE", this.WebsitePhysicalAppPath); - - LoggerSource.SetTestableInstance(new TestLogSource()); - } - - // ReSharper disable PossibleNullReferenceException +namespace DotNetNuke.Tests.Integration.Services.Installer +{ + using System; + using System.Diagnostics; + using System.IO; + using System.Reflection; + using System.Xml; + + using DotNetNuke.Instrumentation; + using DotNetNuke.Services.Installer; + using DotNetNuke.Tests.Utilities; + using NUnit.Framework; + + [TestFixture] + public class XmlMergeTests : DnnUnitTest + { + private const bool OutputXml = true; + private readonly Assembly _assembly = typeof(XmlMergeTests).Assembly; + + [SetUp] + public void SetUp() + { + AppDomain.CurrentDomain.SetData("APPBASE", this.WebsitePhysicalAppPath); + + LoggerSource.SetTestableInstance(new TestLogSource()); + } + + // ReSharper disable PossibleNullReferenceException [Test] - public void SimpleUpdate() - { - XmlDocument targetDoc = this.ExecuteMerge(); - - // children are in correct location - XmlNodeList nodes = targetDoc.SelectNodes("/configuration/updateme/children/child"); - Assert.AreEqual(2, nodes.Count); - - // children only inserted once - nodes = targetDoc.SelectNodes("//child"); - Assert.AreEqual(2, nodes.Count); - } - + public void SimpleUpdate() + { + XmlDocument targetDoc = this.ExecuteMerge(); + + // children are in correct location + XmlNodeList nodes = targetDoc.SelectNodes("/configuration/updateme/children/child"); + Assert.That(nodes, Has.Count.EqualTo(2)); + + // children only inserted once + nodes = targetDoc.SelectNodes("//child"); + Assert.That(nodes, Has.Count.EqualTo(2)); + } + [Test] - public void SimpleUpdateInLocation() - { - XmlDocument targetDoc = this.ExecuteMerge("SimpleUpdate"); - - // children are in correct location - XmlNodeList nodes = targetDoc.SelectNodes("/configuration/location/updateme/children/child"); - Assert.AreEqual(2, nodes.Count); - - // children only inserted once - nodes = targetDoc.SelectNodes("//child"); - Assert.AreEqual(2, nodes.Count); - } - + public void SimpleUpdateInLocation() + { + XmlDocument targetDoc = this.ExecuteMerge("SimpleUpdate"); + + // children are in correct location + XmlNodeList nodes = targetDoc.SelectNodes("/configuration/location/updateme/children/child"); + Assert.That(nodes, Has.Count.EqualTo(2)); + + // children only inserted once + nodes = targetDoc.SelectNodes("//child"); + Assert.That(nodes, Has.Count.EqualTo(2)); + } + [Test] - public void SimpleUpdateInLocationWithDistractingLocations() - { - XmlDocument targetDoc = this.ExecuteMerge("SimpleUpdate"); - - // children are in correct location - XmlNodeList nodes = targetDoc.SelectNodes("/configuration/location/updateme/children/child"); - Assert.AreEqual(2, nodes.Count); - - // children only inserted once - nodes = targetDoc.SelectNodes("//child"); - Assert.AreEqual(2, nodes.Count); - } - + public void SimpleUpdateInLocationWithDistractingLocations() + { + XmlDocument targetDoc = this.ExecuteMerge("SimpleUpdate"); + + // children are in correct location + XmlNodeList nodes = targetDoc.SelectNodes("/configuration/location/updateme/children/child"); + Assert.That(nodes, Has.Count.EqualTo(2)); + + // children only inserted once + nodes = targetDoc.SelectNodes("//child"); + Assert.That(nodes, Has.Count.EqualTo(2)); + } + [Test] - public void UpdateWithTargetPath() - { - XmlDocument targetDoc = this.ExecuteMerge(); - - // children are in correct location - XmlNodeList nodes = targetDoc.SelectNodes("/configuration/updateme/children/child"); - Assert.AreEqual(2, nodes.Count); - - // children only inserted once - nodes = targetDoc.SelectNodes("//child"); - Assert.AreEqual(2, nodes.Count); - } - + public void UpdateWithTargetPath() + { + XmlDocument targetDoc = this.ExecuteMerge(); + + // children are in correct location + XmlNodeList nodes = targetDoc.SelectNodes("/configuration/updateme/children/child"); + Assert.That(nodes, Has.Count.EqualTo(2)); + + // children only inserted once + nodes = targetDoc.SelectNodes("//child"); + Assert.That(nodes, Has.Count.EqualTo(2)); + } + [Test] - public void UpdateInLocationWithTargetPath() - { - XmlDocument targetDoc = this.ExecuteMerge("UpdateWithTargetPath"); - - // children are in correct location - XmlNodeList nodes = targetDoc.SelectNodes("/configuration/location/updateme/children/child"); - Assert.AreEqual(2, nodes.Count); - - // children only inserted once - nodes = targetDoc.SelectNodes("//child"); - Assert.AreEqual(2, nodes.Count); - } - + public void UpdateInLocationWithTargetPath() + { + XmlDocument targetDoc = this.ExecuteMerge("UpdateWithTargetPath"); + + // children are in correct location + XmlNodeList nodes = targetDoc.SelectNodes("/configuration/location/updateme/children/child"); + Assert.That(nodes, Has.Count.EqualTo(2)); + + // children only inserted once + nodes = targetDoc.SelectNodes("//child"); + Assert.That(nodes, Has.Count.EqualTo(2)); + } + [Test] - public void UpdateWithDistractingLocationAndTargetPath() - { - XmlDocument targetDoc = this.ExecuteMerge("UpdateWithTargetPath"); - - // children are in correct location - XmlNodeList nodes = targetDoc.SelectNodes("/configuration/updateme/children/child"); - Assert.AreEqual(2, nodes.Count); - - // children only inserted once - nodes = targetDoc.SelectNodes("//child"); - Assert.AreEqual(2, nodes.Count); - } - + public void UpdateWithDistractingLocationAndTargetPath() + { + XmlDocument targetDoc = this.ExecuteMerge("UpdateWithTargetPath"); + + // children are in correct location + XmlNodeList nodes = targetDoc.SelectNodes("/configuration/updateme/children/child"); + Assert.That(nodes, Has.Count.EqualTo(2)); + + // children only inserted once + nodes = targetDoc.SelectNodes("//child"); + Assert.That(nodes, Has.Count.EqualTo(2)); + } + [Test] - public void UpdateInLocationWithDistractingLocationAndTargetPath() - { - XmlDocument targetDoc = this.ExecuteMerge("UpdateWithTargetPath"); - - // children are in correct location - XmlNodeList nodes = targetDoc.SelectNodes("/configuration/location/updateme/children/child"); - Assert.AreEqual(2, nodes.Count); - - // children only inserted once - nodes = targetDoc.SelectNodes("//child"); - Assert.AreEqual(2, nodes.Count); - } - + public void UpdateInLocationWithDistractingLocationAndTargetPath() + { + XmlDocument targetDoc = this.ExecuteMerge("UpdateWithTargetPath"); + + // children are in correct location + XmlNodeList nodes = targetDoc.SelectNodes("/configuration/location/updateme/children/child"); + Assert.That(nodes, Has.Count.EqualTo(2)); + + // children only inserted once + nodes = targetDoc.SelectNodes("//child"); + Assert.That(nodes, Has.Count.EqualTo(2)); + } + [Test] - public void UpdateInFirstLocationWithDistractingLocationAndTargetPath() - { - XmlDocument targetDoc = this.ExecuteMerge("UpdateWithTargetPath"); - - // children are in correct location - // first location/updateme has updated node - XmlNode root = targetDoc.SelectSingleNode("/configuration/location[1]"); - XmlNodeList nodes = root.SelectNodes("updateme/children/child"); - Assert.AreEqual(2, nodes.Count); - - // second location/updateme still empty - root = targetDoc.SelectSingleNode("/configuration/location[2]"); - nodes = root.SelectNodes("updateme/children/child"); - Assert.AreEqual(0, nodes.Count); - - // children only inserted once - nodes = targetDoc.SelectNodes("//child"); - Assert.AreEqual(2, nodes.Count); - - // two instances of location/updateme exist - nodes = targetDoc.SelectNodes("//configuration/location/updateme"); - Assert.AreEqual(2, nodes.Count); - } - + public void UpdateInFirstLocationWithDistractingLocationAndTargetPath() + { + XmlDocument targetDoc = this.ExecuteMerge("UpdateWithTargetPath"); + + // children are in correct location + // first location/updateme has updated node + XmlNode root = targetDoc.SelectSingleNode("/configuration/location[1]"); + XmlNodeList nodes = root.SelectNodes("updateme/children/child"); + Assert.That(nodes, Has.Count.EqualTo(2)); + + // second location/updateme still empty + root = targetDoc.SelectSingleNode("/configuration/location[2]"); + nodes = root.SelectNodes("updateme/children/child"); + Assert.That(nodes, Is.Empty); + + // children only inserted once + nodes = targetDoc.SelectNodes("//child"); + Assert.That(nodes, Has.Count.EqualTo(2)); + + // two instances of location/updateme exist + nodes = targetDoc.SelectNodes("//configuration/location/updateme"); + Assert.That(nodes, Has.Count.EqualTo(2)); + } + [Test] - public void SimpleAdd() - { - XmlDocument targetDoc = this.ExecuteMerge(); - - // children are in correct location - XmlNodeList nodes = targetDoc.SelectNodes("/configuration/updateme/children/child"); - Assert.AreEqual(2, nodes.Count); - } - + public void SimpleAdd() + { + XmlDocument targetDoc = this.ExecuteMerge(); + + // children are in correct location + XmlNodeList nodes = targetDoc.SelectNodes("/configuration/updateme/children/child"); + Assert.That(nodes, Has.Count.EqualTo(2)); + } + [Test] - public void AddWithLocation() - { - XmlDocument targetDoc = this.ExecuteMerge("SimpleAdd"); - - // children are in correct location - XmlNodeList nodes = targetDoc.SelectNodes("/configuration/updateme/children/child"); - Assert.AreEqual(2, nodes.Count); - - // second location/updateme still empty - var root = targetDoc.SelectSingleNode("/configuration/location[2]"); - nodes = root.SelectNodes("updateme/children/child"); - Assert.AreEqual(0, nodes.Count); - - // children only inserted once - nodes = targetDoc.SelectNodes("//child"); - Assert.AreEqual(2, nodes.Count); - - // 1 instance of location/updateme exist - nodes = targetDoc.SelectNodes("//configuration/location/updateme"); - Assert.AreEqual(1, nodes.Count); - } - + public void AddWithLocation() + { + XmlDocument targetDoc = this.ExecuteMerge("SimpleAdd"); + + // children are in correct location + XmlNodeList nodes = targetDoc.SelectNodes("/configuration/updateme/children/child"); + Assert.That(nodes, Has.Count.EqualTo(2)); + + // second location/updateme still empty + var root = targetDoc.SelectSingleNode("/configuration/location[2]"); + nodes = root.SelectNodes("updateme/children/child"); + Assert.That(nodes, Is.Empty); + + // children only inserted once + nodes = targetDoc.SelectNodes("//child"); + Assert.That(nodes, Has.Count.EqualTo(2)); + + // 1 instance of location/updateme exist + nodes = targetDoc.SelectNodes("//configuration/location/updateme"); + Assert.That(nodes, Has.Count.EqualTo(1)); + } + [Test] - public void SimpleInsertBefore() - { - XmlDocument targetDoc = this.ExecuteMerge(); - - // children are in correct location - XmlNodeList nodes = targetDoc.SelectNodes("/configuration/updateme/children/child"); - Assert.AreEqual(2, nodes.Count); - - // inserted before node2 - XmlNode node = targetDoc.SelectSingleNode("/configuration/updateme"); - Assert.AreEqual("node2", node.NextSibling.Name); - } - + public void SimpleInsertBefore() + { + XmlDocument targetDoc = this.ExecuteMerge(); + + // children are in correct location + XmlNodeList nodes = targetDoc.SelectNodes("/configuration/updateme/children/child"); + Assert.That(nodes, Has.Count.EqualTo(2)); + + // inserted before node2 + XmlNode node = targetDoc.SelectSingleNode("/configuration/updateme"); + Assert.That(node.NextSibling.Name, Is.EqualTo("node2")); + } + [Test] - public void InsertBeforeInLocation() - { - XmlDocument targetDoc = this.ExecuteMerge("SimpleInsertBefore"); - - // children are in correct location - XmlNodeList nodes = targetDoc.SelectNodes("/configuration/location/updateme/children/child"); - Assert.AreEqual(2, nodes.Count); - - // inserted before node2 - XmlNode node = targetDoc.SelectSingleNode("/configuration/location/updateme"); - Assert.AreEqual("node2", node.NextSibling.Name); - } - + public void InsertBeforeInLocation() + { + XmlDocument targetDoc = this.ExecuteMerge("SimpleInsertBefore"); + + // children are in correct location + XmlNodeList nodes = targetDoc.SelectNodes("/configuration/location/updateme/children/child"); + Assert.That(nodes, Has.Count.EqualTo(2)); + + // inserted before node2 + XmlNode node = targetDoc.SelectSingleNode("/configuration/location/updateme"); + Assert.That(node.NextSibling.Name, Is.EqualTo("node2")); + } + [Test] - public void SimpleInsertAfter() - { - XmlDocument targetDoc = this.ExecuteMerge(); - - // children are in correct location - XmlNodeList nodes = targetDoc.SelectNodes("/configuration/updateme/children/child"); - Assert.AreEqual(2, nodes.Count); - - // inserted before node2 - XmlNode node = targetDoc.SelectSingleNode("/configuration/updateme"); - Assert.AreEqual("node1", node.PreviousSibling.Name); - } - + public void SimpleInsertAfter() + { + XmlDocument targetDoc = this.ExecuteMerge(); + + // children are in correct location + XmlNodeList nodes = targetDoc.SelectNodes("/configuration/updateme/children/child"); + Assert.That(nodes, Has.Count.EqualTo(2)); + + // inserted before node2 + XmlNode node = targetDoc.SelectSingleNode("/configuration/updateme"); + Assert.That(node.PreviousSibling.Name, Is.EqualTo("node1")); + } + [Test] - public void InsertAfterInLocation() - { - XmlDocument targetDoc = this.ExecuteMerge("SimpleInsertAfter"); - - // children are in correct location - XmlNodeList nodes = targetDoc.SelectNodes("/configuration/location/updateme/children/child"); - Assert.AreEqual(2, nodes.Count); - - // inserted before node2 - XmlNode node = targetDoc.SelectSingleNode("/configuration/location/updateme"); - Assert.AreEqual("node2", node.NextSibling.Name); - } - + public void InsertAfterInLocation() + { + XmlDocument targetDoc = this.ExecuteMerge("SimpleInsertAfter"); + + // children are in correct location + XmlNodeList nodes = targetDoc.SelectNodes("/configuration/location/updateme/children/child"); + Assert.That(nodes, Has.Count.EqualTo(2)); + + // inserted before node2 + XmlNode node = targetDoc.SelectSingleNode("/configuration/location/updateme"); + Assert.That(node.NextSibling.Name, Is.EqualTo("node2")); + } + [Test] - public void SimpleRemove() - { - XmlDocument targetDoc = this.ExecuteMerge(); - - // node is gone - var nodes = targetDoc.SelectNodes("//removeme"); - Assert.AreEqual(0, nodes.Count); - - // other nodes still present - nodes = targetDoc.SelectNodes("/configuration/distraction"); - Assert.AreEqual(1, nodes.Count); - } - + public void SimpleRemove() + { + XmlDocument targetDoc = this.ExecuteMerge(); + + // node is gone + var nodes = targetDoc.SelectNodes("//removeme"); + Assert.That(nodes, Is.Empty); + + // other nodes still present + nodes = targetDoc.SelectNodes("/configuration/distraction"); + Assert.That(nodes, Has.Count.EqualTo(1)); + } + [Test] - public void RemoveFromLocation() - { - XmlDocument targetDoc = this.ExecuteMerge("SimpleRemove"); - - // node is gone - var nodes = targetDoc.SelectNodes("//removeme"); - Assert.AreEqual(0, nodes.Count); - - // other nodes still present - nodes = targetDoc.SelectNodes("/configuration/distraction"); - Assert.AreEqual(1, nodes.Count); - } - + public void RemoveFromLocation() + { + XmlDocument targetDoc = this.ExecuteMerge("SimpleRemove"); + + // node is gone + var nodes = targetDoc.SelectNodes("//removeme"); + Assert.That(nodes, Is.Empty); + + // other nodes still present + nodes = targetDoc.SelectNodes("/configuration/distraction"); + Assert.That(nodes, Has.Count.EqualTo(1)); + } + [Test] - public void SimpleRemoveAttribute() - { - var targetDoc = this.ExecuteMerge(); - - var node = targetDoc.SelectSingleNode("/configuration/updateme"); - Assert.AreEqual(0, node.Attributes.Count); - } - + public void SimpleRemoveAttribute() + { + var targetDoc = this.ExecuteMerge(); + + var node = targetDoc.SelectSingleNode("/configuration/updateme"); + Assert.That(node.Attributes, Is.Empty); + } + [Test] - public void RemoveAttributeFromLocation() - { - var targetDoc = this.ExecuteMerge("SimpleRemoveAttribute"); - - var node = targetDoc.SelectSingleNode("/configuration/location/updateme"); - Assert.AreEqual(0, node.Attributes.Count); - } - + public void RemoveAttributeFromLocation() + { + var targetDoc = this.ExecuteMerge("SimpleRemoveAttribute"); + + var node = targetDoc.SelectSingleNode("/configuration/location/updateme"); + Assert.That(node.Attributes, Is.Empty); + } + [Test] - public void SimpleInsertAttribute() - { - var targetDoc = this.ExecuteMerge(); - - var node = targetDoc.SelectSingleNode("/configuration/updateme"); - Assert.AreEqual(2, node.Attributes.Count); - Assert.AreEqual("fee", node.Attributes["attrib2"].Value); - } - + public void SimpleInsertAttribute() + { + var targetDoc = this.ExecuteMerge(); + + var node = targetDoc.SelectSingleNode("/configuration/updateme"); + Assert.That(node.Attributes, Has.Count.EqualTo(2)); + Assert.That(node.Attributes["attrib2"].Value, Is.EqualTo("fee")); + } + [Test] - public void InsertAttributeInLocation() - { - var targetDoc = this.ExecuteMerge("SimpleInsertAttribute"); - - var node = targetDoc.SelectSingleNode("/configuration/location/updateme"); - Assert.AreEqual(2, node.Attributes.Count); - Assert.AreEqual("fee", node.Attributes["attrib2"].Value); - } - + public void InsertAttributeInLocation() + { + var targetDoc = this.ExecuteMerge("SimpleInsertAttribute"); + + var node = targetDoc.SelectSingleNode("/configuration/location/updateme"); + Assert.That(node.Attributes, Has.Count.EqualTo(2)); + Assert.That(node.Attributes["attrib2"].Value, Is.EqualTo("fee")); + } + [Test] - public void UpdateAttributeInLocation() - { - var targetDoc = this.ExecuteMerge("SimpleInsertAttribute"); - - var node = targetDoc.SelectSingleNode("/configuration/location/updateme"); - Assert.AreEqual(2, node.Attributes.Count); - Assert.AreEqual("fee", node.Attributes["attrib2"].Value); - } - + public void UpdateAttributeInLocation() + { + var targetDoc = this.ExecuteMerge("SimpleInsertAttribute"); + + var node = targetDoc.SelectSingleNode("/configuration/location/updateme"); + Assert.That(node.Attributes, Has.Count.EqualTo(2)); + Assert.That(node.Attributes["attrib2"].Value, Is.EqualTo("fee")); + } + [Test] - public void SimpleUpdateWithKey() - { - var targetDoc = this.ExecuteMerge(); - - // a key was added - var nodes = targetDoc.SelectNodes("/configuration/updateme/add"); - Assert.AreEqual(1, nodes.Count); - - // test attribute is set - var node = nodes[0]; - Assert.AreEqual("foo", node.Attributes["test"].Value); - } - + public void SimpleUpdateWithKey() + { + var targetDoc = this.ExecuteMerge(); + + // a key was added + var nodes = targetDoc.SelectNodes("/configuration/updateme/add"); + Assert.That(nodes, Has.Count.EqualTo(1)); + + // test attribute is set + var node = nodes[0]; + Assert.That(node.Attributes["test"].Value, Is.EqualTo("foo")); + } + [Test] - public void UpdateWithKeyInLocation() - { - var targetDoc = this.ExecuteMerge("SimpleUpdateWithKey"); - - // a key was added - var nodes = targetDoc.SelectNodes("/configuration/location/updateme/add"); - Assert.AreEqual(1, nodes.Count); - - // test attribute is set - var node = nodes[0]; - Assert.AreEqual("foo", node.Attributes["test"].Value); - } - + public void UpdateWithKeyInLocation() + { + var targetDoc = this.ExecuteMerge("SimpleUpdateWithKey"); + + // a key was added + var nodes = targetDoc.SelectNodes("/configuration/location/updateme/add"); + Assert.That(nodes, Has.Count.EqualTo(1)); + + // test attribute is set + var node = nodes[0]; + Assert.That(node.Attributes["test"].Value, Is.EqualTo("foo")); + } + [Test] - public void NoChangeOnOverwrite() - { - XmlMerge merge = this.GetXmlMerge(nameof(this.NoChangeOnOverwrite)); - XmlDocument targetDoc = this.LoadTargetDoc(nameof(this.NoChangeOnOverwrite)); - - merge.UpdateConfig(targetDoc); - - this.WriteToDebug(targetDoc); - - var nodes = targetDoc.SelectNodes("/configuration/appSettings/add"); - Assert.AreEqual(3, nodes.Count); - - Assert.False(merge.ConfigUpdateChangedNodes); - } - + public void NoChangeOnOverwrite() + { + XmlMerge merge = this.GetXmlMerge(nameof(this.NoChangeOnOverwrite)); + XmlDocument targetDoc = this.LoadTargetDoc(nameof(this.NoChangeOnOverwrite)); + + merge.UpdateConfig(targetDoc); + + this.WriteToDebug(targetDoc); + + var nodes = targetDoc.SelectNodes("/configuration/appSettings/add"); + Assert.Multiple(() => + { + Assert.That(nodes, Has.Count.EqualTo(3)); + + Assert.That(merge.ConfigUpdateChangedNodes, Is.False); + }); + } + [Test] - public void ShouldChangeOnOverwrite() - { - XmlMerge merge = this.GetXmlMerge(nameof(this.ShouldChangeOnOverwrite)); - XmlDocument targetDoc = this.LoadTargetDoc(nameof(this.ShouldChangeOnOverwrite)); - - merge.UpdateConfig(targetDoc); - - this.WriteToDebug(targetDoc); - - var nodes = targetDoc.SelectNodes("/configuration/appSettings/add"); - Assert.AreEqual(3, nodes.Count); - - Assert.True(merge.ConfigUpdateChangedNodes); - } - + public void ShouldChangeOnOverwrite() + { + XmlMerge merge = this.GetXmlMerge(nameof(this.ShouldChangeOnOverwrite)); + XmlDocument targetDoc = this.LoadTargetDoc(nameof(this.ShouldChangeOnOverwrite)); + + merge.UpdateConfig(targetDoc); + + this.WriteToDebug(targetDoc); + + var nodes = targetDoc.SelectNodes("/configuration/appSettings/add"); + Assert.Multiple(() => + { + Assert.That(nodes, Has.Count.EqualTo(3)); + + Assert.That(merge.ConfigUpdateChangedNodes, Is.True); + }); + } + [Test] - public void ShouldPreserveEmptyNamespaceOnSave() - { - var targetDoc = this.ExecuteMerge(); - - var ns = new XmlNamespaceManager(targetDoc.NameTable); - ns.AddNamespace("ab", "urn:schemas-microsoft-com:asm.v1"); - - // removed the existing node, since it matched targetpath attribute - var nodesWithNamespace = targetDoc.SelectNodes("/configuration/runtime/ab:assemblyBinding/ab:dependentAssembly", ns); - Assert.AreEqual(0, nodesWithNamespace.Count); - - // added a new node with xmlns="" - var nodesWithoutNamespace = targetDoc.SelectNodes("/configuration/runtime/ab:assemblyBinding/dependentAssembly", ns); - Assert.AreEqual(1, nodesWithoutNamespace.Count); - - // non-namespaced node has newVersion from merge - var dependentAssembly = nodesWithoutNamespace[0]; - var bindingRedirect = dependentAssembly.SelectSingleNode("bindingRedirect", ns); - Assert.AreEqual("4.1.0.0", bindingRedirect.Attributes["newVersion"].Value); - } - - /// Merges the Merge and Target files based on the name of the calling method. - /// xml files must be embedded resources in the MergeFiles folder named {method}Merge.xml and {method}Target.xml. - /// XmlDocument with the result of the merge operation. - private XmlDocument ExecuteMerge() - { - return this.ExecuteMerge(null); - } - - /// As ExecuteMerge but allows the merge file prefix to be specified. - private XmlDocument ExecuteMerge(string mergeName) - { - string testMethodName = this.GetTestMethodName(); - - XmlMerge merge = this.GetXmlMerge(mergeName ?? testMethodName); - XmlDocument targetDoc = this.LoadTargetDoc(testMethodName); - - merge.UpdateConfig(targetDoc); - - this.WriteToDebug(targetDoc); - - return targetDoc; - } - - private string GetTestMethodName() - { - var st = new StackTrace(2); - - string name; - int i = 0; - do - { - name = st.GetFrame(i).GetMethod().Name; - i++; - } - while (name == "ExecuteMerge"); - - return name; - } - - private XmlDocument LoadTargetDoc(string testMethodName) - { - using (Stream targetStream = - this._assembly.GetManifestResourceStream(string.Format( - "DotNetNuke.Tests.Integration.Services.Installer.MergeFiles.{0}Target.xml", - testMethodName))) - { - Debug.Assert( - targetStream != null, - string.Format("Unable to location embedded resource for {0}Target.xml", testMethodName)); - var targetDoc = new XmlDocument { XmlResolver = null }; - targetDoc.Load(targetStream); - return targetDoc; - } - } - - private XmlMerge GetXmlMerge(string fileName) - { - using (Stream mergeStream = - this._assembly.GetManifestResourceStream(string.Format( - "DotNetNuke.Tests.Integration.Services.Installer.MergeFiles.{0}Merge.xml", - fileName))) - { - Debug.Assert( - mergeStream != null, - string.Format("Unable to location embedded resource for {0}Merge.xml", fileName)); - var merge = new XmlMerge(mergeStream, "version", "sender"); - return merge; - } - } - - private void WriteToDebug(XmlDocument targetDoc) - { - // ReSharper disable ConditionIsAlwaysTrueOrFalse - if (OutputXml) - - // ReSharper restore ConditionIsAlwaysTrueOrFalse - { - using (var writer = new StreamWriter(new MemoryStream())) - { - targetDoc.Save(writer); - writer.BaseStream.Seek(0, SeekOrigin.Begin); - using (var sr = new StreamReader(writer.BaseStream)) - { - Debug.WriteLine("{0}", sr.ReadToEnd()); - } - } - } - } - - // ReSharper restore PossibleNullReferenceException - } - - internal class TestLogger : ILog - { - public bool IsDebugEnabled - { - get { return false; } - } - - public bool IsErrorEnabled - { - get { return false; } - } - - public bool IsFatalEnabled - { - get { return false; } - } - - public bool IsInfoEnabled - { - get { return false; } - } - - public bool IsTraceEnabled - { - get { return false; } - } - - public bool IsWarnEnabled - { - get { return false; } - } - - public void Debug(object message, Exception exception) - { - } - - public void Debug(object message) - { - } - - public void DebugFormat(IFormatProvider provider, string format, params object[] args) - { - } - - public void DebugFormat(string format, params object[] args) - { - } - - public void Error(object message, Exception exception) - { - } - - public void Error(object message) - { - } - - public void ErrorFormat(IFormatProvider provider, string format, params object[] args) - { - } - - public void ErrorFormat(string format, params object[] args) - { - } - - public void Fatal(object message, Exception exception) - { - } - - public void Fatal(object message) - { - } - - public void FatalFormat(IFormatProvider provider, string format, params object[] args) - { - } - - public void FatalFormat(string format, params object[] args) - { - } - - public void Info(object message, Exception exception) - { - } - - public void Info(object message) - { - } - - public void InfoFormat(IFormatProvider provider, string format, params object[] args) - { - } - - public void InfoFormat(string format, params object[] args) - { - } - - public void Trace(object message, Exception exception) - { - } - - public void Trace(object message) - { - } - - public void TraceFormat(IFormatProvider provider, string format, params object[] args) - { - } - - public void TraceFormat(string format, params object[] args) - { - } - - public void Warn(object message, Exception exception) - { - } - - public void Warn(object message) - { - } - - public void WarnFormat(IFormatProvider provider, string format, params object[] args) - { - } - - public void WarnFormat(string format, params object[] args) - { - } - } -} + public void ShouldPreserveEmptyNamespaceOnSave() + { + var targetDoc = this.ExecuteMerge(); + + var ns = new XmlNamespaceManager(targetDoc.NameTable); + ns.AddNamespace("ab", "urn:schemas-microsoft-com:asm.v1"); + + // removed the existing node, since it matched targetpath attribute + var nodesWithNamespace = targetDoc.SelectNodes("/configuration/runtime/ab:assemblyBinding/ab:dependentAssembly", ns); + Assert.That(nodesWithNamespace, Is.Empty); + + // added a new node with xmlns="" + var nodesWithoutNamespace = targetDoc.SelectNodes("/configuration/runtime/ab:assemblyBinding/dependentAssembly", ns); + Assert.That(nodesWithoutNamespace, Has.Count.EqualTo(1)); + + // non-namespaced node has newVersion from merge + var dependentAssembly = nodesWithoutNamespace[0]; + var bindingRedirect = dependentAssembly.SelectSingleNode("bindingRedirect", ns); + Assert.That(bindingRedirect.Attributes["newVersion"].Value, Is.EqualTo("4.1.0.0")); + } + + /// Merges the Merge and Target files based on the name of the calling method. + /// xml files must be embedded resources in the MergeFiles folder named {method}Merge.xml and {method}Target.xml. + /// XmlDocument with the result of the merge operation. + private XmlDocument ExecuteMerge() + { + return this.ExecuteMerge(null); + } + + /// As ExecuteMerge but allows the merge file prefix to be specified. + private XmlDocument ExecuteMerge(string mergeName) + { + string testMethodName = this.GetTestMethodName(); + + XmlMerge merge = this.GetXmlMerge(mergeName ?? testMethodName); + XmlDocument targetDoc = this.LoadTargetDoc(testMethodName); + + merge.UpdateConfig(targetDoc); + + this.WriteToDebug(targetDoc); + + return targetDoc; + } + + private string GetTestMethodName() + { + var st = new StackTrace(2); + + string name; + int i = 0; + do + { + name = st.GetFrame(i).GetMethod().Name; + i++; + } + while (name == "ExecuteMerge"); + + return name; + } + + private XmlDocument LoadTargetDoc(string testMethodName) + { + using (Stream targetStream = + this._assembly.GetManifestResourceStream(string.Format( + "DotNetNuke.Tests.Integration.Services.Installer.MergeFiles.{0}Target.xml", + testMethodName))) + { + Debug.Assert( + targetStream != null, + string.Format("Unable to location embedded resource for {0}Target.xml", testMethodName)); + var targetDoc = new XmlDocument { XmlResolver = null }; + targetDoc.Load(targetStream); + return targetDoc; + } + } + + private XmlMerge GetXmlMerge(string fileName) + { + using (Stream mergeStream = + this._assembly.GetManifestResourceStream(string.Format( + "DotNetNuke.Tests.Integration.Services.Installer.MergeFiles.{0}Merge.xml", + fileName))) + { + Debug.Assert( + mergeStream != null, + string.Format("Unable to location embedded resource for {0}Merge.xml", fileName)); + var merge = new XmlMerge(mergeStream, "version", "sender"); + return merge; + } + } + + private void WriteToDebug(XmlDocument targetDoc) + { + // ReSharper disable ConditionIsAlwaysTrueOrFalse + if (OutputXml) + + // ReSharper restore ConditionIsAlwaysTrueOrFalse + { + using (var writer = new StreamWriter(new MemoryStream())) + { + targetDoc.Save(writer); + writer.BaseStream.Seek(0, SeekOrigin.Begin); + using (var sr = new StreamReader(writer.BaseStream)) + { + Debug.WriteLine("{0}", sr.ReadToEnd()); + } + } + } + } + + // ReSharper restore PossibleNullReferenceException + } + + internal class TestLogger : ILog + { + public bool IsDebugEnabled + { + get { return false; } + } + + public bool IsErrorEnabled + { + get { return false; } + } + + public bool IsFatalEnabled + { + get { return false; } + } + + public bool IsInfoEnabled + { + get { return false; } + } + + public bool IsTraceEnabled + { + get { return false; } + } + + public bool IsWarnEnabled + { + get { return false; } + } + + public void Debug(object message, Exception exception) + { + } + + public void Debug(object message) + { + } + + public void DebugFormat(IFormatProvider provider, string format, params object[] args) + { + } + + public void DebugFormat(string format, params object[] args) + { + } + + public void Error(object message, Exception exception) + { + } + + public void Error(object message) + { + } + + public void ErrorFormat(IFormatProvider provider, string format, params object[] args) + { + } + + public void ErrorFormat(string format, params object[] args) + { + } + + public void Fatal(object message, Exception exception) + { + } + + public void Fatal(object message) + { + } + + public void FatalFormat(IFormatProvider provider, string format, params object[] args) + { + } + + public void FatalFormat(string format, params object[] args) + { + } + + public void Info(object message, Exception exception) + { + } + + public void Info(object message) + { + } + + public void InfoFormat(IFormatProvider provider, string format, params object[] args) + { + } + + public void InfoFormat(string format, params object[] args) + { + } + + public void Trace(object message, Exception exception) + { + } + + public void Trace(object message) + { + } + + public void TraceFormat(IFormatProvider provider, string format, params object[] args) + { + } + + public void TraceFormat(string format, params object[] args) + { + } + + public void Warn(object message, Exception exception) + { + } + + public void Warn(object message) + { + } + + public void WarnFormat(IFormatProvider provider, string format, params object[] args) + { + } + + public void WarnFormat(string format, params object[] args) + { + } + } +} diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Integration/Tests/DotNetNukeWeb/DotNetNukeWebTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Integration/Tests/DotNetNukeWeb/DotNetNukeWebTests.cs index 9fa39e36dee..e68ff21126c 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Integration/Tests/DotNetNukeWeb/DotNetNukeWebTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Integration/Tests/DotNetNukeWeb/DotNetNukeWebTests.cs @@ -38,7 +38,7 @@ public void CallingHelperForAnonymousUserShouldReturnSuccess(string query) var result = this._httpClient.GetAsync(query + HttpUtility.UrlEncode("ViewProfile")).Result; var content = result.Content.ReadAsStringAsync().Result; LogText(@"content => " + content); - Assert.AreEqual(HttpStatusCode.OK, result.StatusCode); + Assert.That(result.StatusCode, Is.EqualTo(HttpStatusCode.OK)); } } } diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Integration/Tests/FriendsTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Integration/Tests/FriendsTests.cs index d717d1d7104..648f3a0bdfc 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Integration/Tests/FriendsTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Integration/Tests/FriendsTests.cs @@ -74,7 +74,7 @@ public void Friend_Request_Should_Match_Target_User_Culture() var notificationTitle = this.GetNotificationTitle(userId1); // the notification should use french language: testuser8836 veut être amis avec vous - Assert.AreEqual($"{userName1} veut être amis", notificationTitle); + Assert.That(notificationTitle, Is.EqualTo($"{userName1} veut être amis")); } private void UpdateUserProfile(int userId, string propertyName, string propertyValue) diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Integration/Tests/Jwt/JwtAuthTest.cs b/DNN Platform/Tests/DotNetNuke.Tests.Integration/Tests/Jwt/JwtAuthTest.cs index 1fadadfdd6a..c3290f3ee18 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Integration/Tests/Jwt/JwtAuthTest.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Integration/Tests/Jwt/JwtAuthTest.cs @@ -2,481 +2,510 @@ // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information -namespace DotNetNuke.Tests.Integration.Tests.Jwt -{ - using System; - using System.Configuration; - using System.Net; - using System.Net.Http; - using System.Net.Http.Headers; - using System.Text; - using System.Threading; - using System.Web; - - using DNN.Integration.Test.Framework; - using DNN.Integration.Test.Framework.Helpers; - using Newtonsoft.Json; - using NUnit.Framework; - - [TestFixture] - public class JwtAuthTest : IntegrationTestBase +namespace DotNetNuke.Tests.Integration.Tests.Jwt +{ + using System; + using System.Configuration; + using System.Net; + using System.Net.Http; + using System.Net.Http.Headers; + using System.Text; + using System.Threading; + using System.Web; + + using DNN.Integration.Test.Framework; + using DNN.Integration.Test.Framework.Helpers; + using Newtonsoft.Json; + using NUnit.Framework; + + [TestFixture] + public class JwtAuthTest : IntegrationTestBase { - public const string ExtendTokenQuery = "/API/JwtAuth/mobile/extendtoken"; - - private const string LoginQuery = "/API/JwtAuth/mobile/login"; - private const string LogoutQuery = "/API/JwtAuth/mobile/logout"; - private const string TestGetQuery = "/API/JwtAuth/mobile/testget"; - private const string TestPostQuery = "/API/JwtAuth/mobile/testpost"; - private const string GetMonikerQuery = "/API/web/mobilehelper/monikers?moduleList="; - private const string GetModuleDetailsQuery = "/API/web/mobilehelper/moduledetails?moduleList="; - private static readonly Encoding TextEncoder = Encoding.UTF8; - private readonly string _hostName; - private readonly string _hostPass; - private readonly HttpClient _httpClient; -#if DEBUG - // for degugging and setting breakpoints - private readonly TimeSpan _timeout = TimeSpan.FromSeconds(300); -#else - private readonly TimeSpan _timeout = TimeSpan.FromSeconds(30); -#endif - - public JwtAuthTest() - { - var url = ConfigurationManager.AppSettings["siteUrl"]; - var siteUri = new Uri(url); - this._httpClient = new HttpClient { BaseAddress = siteUri, Timeout = this._timeout }; - this._hostName = ConfigurationManager.AppSettings["hostUsername"]; - this._hostPass = ConfigurationManager.AppSettings["hostPassword"]; - } - - [OneTimeSetUp] - public override void TestFixtureSetUp() - { - base.TestFixtureSetUp(); - try - { + public const string ExtendTokenQuery = "/API/JwtAuth/mobile/extendtoken"; + + private const string LoginQuery = "/API/JwtAuth/mobile/login"; + private const string LogoutQuery = "/API/JwtAuth/mobile/logout"; + private const string TestGetQuery = "/API/JwtAuth/mobile/testget"; + private const string TestPostQuery = "/API/JwtAuth/mobile/testpost"; + private const string GetMonikerQuery = "/API/web/mobilehelper/monikers?moduleList="; + private const string GetModuleDetailsQuery = "/API/web/mobilehelper/moduledetails?moduleList="; + private static readonly Encoding TextEncoder = Encoding.UTF8; + private readonly string _hostName; + private readonly string _hostPass; + private readonly HttpClient _httpClient; +#if DEBUG + // for degugging and setting breakpoints + private readonly TimeSpan _timeout = TimeSpan.FromSeconds(300); +#else + private readonly TimeSpan _timeout = TimeSpan.FromSeconds(30); +#endif + + public JwtAuthTest() + { + var url = ConfigurationManager.AppSettings["siteUrl"]; + var siteUri = new Uri(url); + this._httpClient = new HttpClient { BaseAddress = siteUri, Timeout = this._timeout }; + this._hostName = ConfigurationManager.AppSettings["hostUsername"]; + this._hostPass = ConfigurationManager.AppSettings["hostPassword"]; + } + + [OneTimeSetUp] + public override void TestFixtureSetUp() + { + base.TestFixtureSetUp(); + try + { if (string.IsNullOrEmpty(Environment.GetEnvironmentVariable("TEAMCITY_VERSION"))) { DatabaseHelper.ExecuteNonQuery("TRUNCATE TABLE {objectQualifier}JsonWebTokens"); } - } - catch (Exception) - { - // ignored - } + } + catch (Exception) + { + // ignored + } + } + + [Test] + public void InvalidUserLoginShouldFail() + { + var credentials = new { u = this._hostName, p = this._hostPass + "." }; + var result = this._httpClient.PostAsJsonAsync(LoginQuery, credentials).Result; + var content = result.Content.ReadAsStringAsync().Result; + LogText(@"content => " + content); + Assert.That(result.StatusCode, Is.EqualTo(HttpStatusCode.Unauthorized)); + } + + [Test] + public void ValidUserLoginShouldPass() + { + var token = this.GetAuthorizationTokenFor(this._hostName, this._hostPass); + Assert.Multiple(() => + { + Assert.That(token.AccessToken, Is.Not.Null); + Assert.That(token.DisplayName, Is.Not.Null); + Assert.That(token.RenewalToken, Is.Not.Null); + }); + + var parts = token.AccessToken.Split('.'); + var decoded = DecodeBase64(parts[1]); + dynamic claims = JsonConvert.DeserializeObject(decoded); + long claimExpiry = claims.exp; + var expiryInToken = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc).AddSeconds(claimExpiry); + Assert.Multiple(() => + { + Assert.That(DateTime.UtcNow, Is.LessThan(expiryInToken)); + Assert.That(expiryInToken, Is.LessThanOrEqualTo(DateTime.UtcNow.AddHours(1))); + }); + } + + [Test] + public void RequestUsingInvaldatedTokenAfterLogoutShouldFail() + { + var token = this.GetAuthorizationTokenFor(this._hostName, this._hostPass); + + this.SetAuthHeaderToken(token.AccessToken); + var result1 = this._httpClient.GetAsync(TestGetQuery).Result; + var content1 = result1.Content.ReadAsStringAsync().Result; + LogText(@"content1 => " + content1); + Assert.That(result1.StatusCode, Is.EqualTo(HttpStatusCode.OK)); + + this.LogoutUser(token.AccessToken); + + this.SetAuthHeaderToken(token.AccessToken); + var result2 = this._httpClient.GetAsync(TestGetQuery).Result; + var content2 = result2.Content.ReadAsStringAsync().Result; + LogText(@"content2 => " + content2); + Assert.That(result2.StatusCode, Is.EqualTo(HttpStatusCode.Unauthorized)); + } + + [Test] + public void RequestWithoutTokenShouldFail() + { + var result = this._httpClient.GetAsync(TestGetQuery).Result; + var content = result.Content.ReadAsStringAsync().Result; + LogText(@"content => " + content); + Assert.That(result.StatusCode, Is.EqualTo(HttpStatusCode.Unauthorized)); + } + + [Test] + public void ValidatedUserGetRequestShouldPass() + { + var token = this.GetAuthorizationTokenFor(this._hostName, this._hostPass); + this.SetAuthHeaderToken(token.AccessToken); + var result = this._httpClient.GetAsync(TestGetQuery).Result; + var content = result.Content.ReadAsStringAsync().Result; + LogText(@"content => " + content); + Assert.Multiple(() => + { + Assert.That(result.StatusCode, Is.EqualTo(HttpStatusCode.OK)); + Assert.That(content.IndexOf("You are authenticated through JWT", StringComparison.Ordinal), Is.GreaterThanOrEqualTo(0)); + }); + } + + [Test] + public void ValidatedUserPostRequestShouldPass() + { + var token = this.GetAuthorizationTokenFor(this._hostName, this._hostPass); + this.SetAuthHeaderToken(token.AccessToken); + var result = this._httpClient.PostAsJsonAsync(TestPostQuery, new { text = "Integraton Testing Rocks!" }).Result; + var content = result.Content.ReadAsStringAsync().Result; + LogText(@"content => " + content); + Assert.Multiple(() => + { + Assert.That(result.StatusCode, Is.EqualTo(HttpStatusCode.OK)); + Assert.That(content.IndexOf("You are authenticated through JWT", StringComparison.Ordinal), Is.GreaterThanOrEqualTo(0)); + Assert.That(content.IndexOf("You said: (Integraton Testing Rocks!)", StringComparison.Ordinal), Is.GreaterThanOrEqualTo(0)); + }); + } + + [Test] + public void RenewValidTokenShouldPass() + { + var token1 = this.GetAuthorizationTokenFor(this._hostName, this._hostPass); + var token2 = this.RenewAuthorizationToken(token1); + Assert.Multiple(() => + { + Assert.That(token2.AccessToken, Is.Not.EqualTo(token1.AccessToken)); + Assert.That(token2.RenewalToken, Is.EqualTo(token1.RenewalToken)); + Assert.That(token2.DisplayName, Is.EqualTo(token1.DisplayName)); + }); + } + + [Test] + public void UsingOriginalAccessTokenAfterRenewalShouldFail() + { + var token1 = this.GetAuthorizationTokenFor(this._hostName, this._hostPass); + var token2 = this.RenewAuthorizationToken(token1); + Assert.Multiple(() => + { + Assert.That(token2.AccessToken, Is.Not.EqualTo(token1.AccessToken)); + Assert.That(token2.RenewalToken, Is.EqualTo(token1.RenewalToken)); + Assert.That(token2.DisplayName, Is.EqualTo(token1.DisplayName)); + }); + + this.SetAuthHeaderToken(token1.AccessToken); + var result = this._httpClient.GetAsync(TestGetQuery).Result; + var content = result.Content.ReadAsStringAsync().Result; + LogText(@"content => " + content); + Assert.That(result.StatusCode, Is.EqualTo(HttpStatusCode.Unauthorized)); + } + + [Test] + public void TryingToRenewUsingSameTokenMoreTHanOneTimeShouldFail() + { + var token1 = this.GetAuthorizationTokenFor(this._hostName, this._hostPass); + this.RenewAuthorizationToken(token1); + + this.SetAuthHeaderToken(token1.AccessToken); + var result = this._httpClient.PostAsJsonAsync(ExtendTokenQuery, new { rtoken = token1.RenewalToken }).Result; + Assert.That(result.StatusCode, Is.EqualTo(HttpStatusCode.Unauthorized)); + } + + [Test] + public void RenewMultipleTimesShouldPass() + { + this.RenewAuthorizationToken( + this.RenewAuthorizationToken( + this.RenewAuthorizationToken( + this.GetAuthorizationTokenFor(this._hostName, this._hostPass)))); + } + + [Test] + public void UsingTheNewAccessTokenAfterRenewalShouldPass() + { + var token1 = this.GetAuthorizationTokenFor(this._hostName, this._hostPass); + var token2 = this.RenewAuthorizationToken(token1); + Assert.Multiple(() => + { + Assert.That(token2.AccessToken, Is.Not.EqualTo(token1.AccessToken)); + Assert.That(token2.RenewalToken, Is.EqualTo(token1.RenewalToken)); + Assert.That(token2.DisplayName, Is.EqualTo(token1.DisplayName)); + }); + + this.SetAuthHeaderToken(token2.AccessToken); + var result = this._httpClient.GetAsync(TestGetQuery).Result; + var content = result.Content.ReadAsStringAsync().Result; + LogText(@"content => " + content); + Assert.That(result.StatusCode, Is.EqualTo(HttpStatusCode.OK)); + } + + [Test] + public void TamperedTokenShouldFail() + { + var token1 = this.GetAuthorizationTokenFor(this._hostName, this._hostPass); + + // tampered header + this.SetAuthHeaderToken("x" + token1.AccessToken); + var result = this._httpClient.GetAsync(TestGetQuery).Result; + var content = result.Content.ReadAsStringAsync().Result; + LogText(@"content => " + content); + Assert.That(result.StatusCode, Is.EqualTo(HttpStatusCode.Unauthorized)); + + // tampered signature + this.SetAuthHeaderToken(token1.AccessToken + "y"); + result = this._httpClient.GetAsync(TestGetQuery).Result; + content = result.Content.ReadAsStringAsync().Result; + LogText(@"content => " + content); + Assert.That(result.StatusCode, Is.EqualTo(HttpStatusCode.Unauthorized)); + + // tampered claims + var idx = token1.AccessToken.IndexOf('.'); + var tampered = token1.AccessToken.Substring(0, idx + 10) + "z" + token1.AccessToken.Substring(idx + 10); + this.SetAuthHeaderToken(tampered); + result = this._httpClient.GetAsync(TestGetQuery).Result; + content = result.Content.ReadAsStringAsync().Result; + LogText(@"content => " + content); + Assert.That(result.StatusCode, Is.EqualTo(HttpStatusCode.Unauthorized)); } - [Test] - public void InvalidUserLoginShouldFail() - { - var credentials = new { u = this._hostName, p = this._hostPass + "." }; - var result = this._httpClient.PostAsJsonAsync(LoginQuery, credentials).Result; - var content = result.Content.ReadAsStringAsync().Result; - LogText(@"content => " + content); - Assert.AreEqual(HttpStatusCode.Unauthorized, result.StatusCode); - } - - [Test] - public void ValidUserLoginShouldPass() - { - var token = this.GetAuthorizationTokenFor(this._hostName, this._hostPass); - Assert.IsNotNull(token.UserId); - Assert.IsNotNull(token.AccessToken); - Assert.IsNotNull(token.DisplayName); - Assert.IsNotNull(token.RenewalToken); - - var parts = token.AccessToken.Split('.'); - var decoded = DecodeBase64(parts[1]); - dynamic claims = JsonConvert.DeserializeObject(decoded); - long claimExpiry = claims.exp; - var expiryInToken = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc).AddSeconds(claimExpiry); - Assert.Less(DateTime.UtcNow, expiryInToken); - Assert.LessOrEqual(expiryInToken, DateTime.UtcNow.AddHours(1)); - } - - [Test] - public void RequestUsingInvaldatedTokenAfterLogoutShouldFail() - { - var token = this.GetAuthorizationTokenFor(this._hostName, this._hostPass); - - this.SetAuthHeaderToken(token.AccessToken); - var result1 = this._httpClient.GetAsync(TestGetQuery).Result; - var content1 = result1.Content.ReadAsStringAsync().Result; - LogText(@"content1 => " + content1); - Assert.AreEqual(HttpStatusCode.OK, result1.StatusCode); - - this.LogoutUser(token.AccessToken); - - this.SetAuthHeaderToken(token.AccessToken); - var result2 = this._httpClient.GetAsync(TestGetQuery).Result; - var content2 = result2.Content.ReadAsStringAsync().Result; - LogText(@"content2 => " + content2); - Assert.AreEqual(HttpStatusCode.Unauthorized, result2.StatusCode); - } - - [Test] - public void RequestWithoutTokenShouldFail() - { - var result = this._httpClient.GetAsync(TestGetQuery).Result; - var content = result.Content.ReadAsStringAsync().Result; - LogText(@"content => " + content); - Assert.AreEqual(HttpStatusCode.Unauthorized, result.StatusCode); - } - - [Test] - public void ValidatedUserGetRequestShouldPass() - { - var token = this.GetAuthorizationTokenFor(this._hostName, this._hostPass); - this.SetAuthHeaderToken(token.AccessToken); - var result = this._httpClient.GetAsync(TestGetQuery).Result; - var content = result.Content.ReadAsStringAsync().Result; - LogText(@"content => " + content); - Assert.AreEqual(HttpStatusCode.OK, result.StatusCode); - Assert.Less(0, content.IndexOf("You are authenticated through JWT", StringComparison.Ordinal)); - } - - [Test] - public void ValidatedUserPostRequestShouldPass() - { - var token = this.GetAuthorizationTokenFor(this._hostName, this._hostPass); - this.SetAuthHeaderToken(token.AccessToken); - var result = this._httpClient.PostAsJsonAsync(TestPostQuery, new { text = "Integraton Testing Rocks!" }).Result; - var content = result.Content.ReadAsStringAsync().Result; - LogText(@"content => " + content); - Assert.AreEqual(HttpStatusCode.OK, result.StatusCode); - Assert.Less(0, content.IndexOf("You are authenticated through JWT", StringComparison.Ordinal)); - Assert.Less(0, content.IndexOf("You said: (Integraton Testing Rocks!)", StringComparison.Ordinal)); - } - - [Test] - public void RenewValidTokenShouldPass() - { - var token1 = this.GetAuthorizationTokenFor(this._hostName, this._hostPass); - var token2 = this.RenewAuthorizationToken(token1); - Assert.AreNotEqual(token1.AccessToken, token2.AccessToken); - Assert.AreEqual(token1.RenewalToken, token2.RenewalToken); - Assert.AreEqual(token1.DisplayName, token2.DisplayName); - } - - [Test] - public void UsingOriginalAccessTokenAfterRenewalShouldFail() - { - var token1 = this.GetAuthorizationTokenFor(this._hostName, this._hostPass); - var token2 = this.RenewAuthorizationToken(token1); - Assert.AreNotEqual(token1.AccessToken, token2.AccessToken); - Assert.AreEqual(token1.RenewalToken, token2.RenewalToken); - Assert.AreEqual(token1.DisplayName, token2.DisplayName); - - this.SetAuthHeaderToken(token1.AccessToken); - var result = this._httpClient.GetAsync(TestGetQuery).Result; - var content = result.Content.ReadAsStringAsync().Result; - LogText(@"content => " + content); - Assert.AreEqual(HttpStatusCode.Unauthorized, result.StatusCode); - } - - [Test] - public void TryingToRenewUsingSameTokenMoreTHanOneTimeShouldFail() - { - var token1 = this.GetAuthorizationTokenFor(this._hostName, this._hostPass); - this.RenewAuthorizationToken(token1); - - this.SetAuthHeaderToken(token1.AccessToken); - var result = this._httpClient.PostAsJsonAsync(ExtendTokenQuery, new { rtoken = token1.RenewalToken }).Result; - Assert.AreEqual(HttpStatusCode.Unauthorized, result.StatusCode); - } - - [Test] - public void RenewMultipleTimesShouldPass() - { - this.RenewAuthorizationToken( - this.RenewAuthorizationToken( - this.RenewAuthorizationToken( - this.GetAuthorizationTokenFor(this._hostName, this._hostPass)))); - } - - [Test] - public void UsingTheNewAccessTokenAfterRenewalShouldPass() - { - var token1 = this.GetAuthorizationTokenFor(this._hostName, this._hostPass); - var token2 = this.RenewAuthorizationToken(token1); - Assert.AreNotEqual(token1.AccessToken, token2.AccessToken); - Assert.AreEqual(token1.RenewalToken, token2.RenewalToken); - Assert.AreEqual(token1.DisplayName, token2.DisplayName); - - this.SetAuthHeaderToken(token2.AccessToken); - var result = this._httpClient.GetAsync(TestGetQuery).Result; - var content = result.Content.ReadAsStringAsync().Result; - LogText(@"content => " + content); - Assert.AreEqual(HttpStatusCode.OK, result.StatusCode); - } - - [Test] - public void TamperedTokenShouldFail() - { - var token1 = this.GetAuthorizationTokenFor(this._hostName, this._hostPass); - - // tampered header - this.SetAuthHeaderToken("x" + token1.AccessToken); - var result = this._httpClient.GetAsync(TestGetQuery).Result; - var content = result.Content.ReadAsStringAsync().Result; - LogText(@"content => " + content); - Assert.AreEqual(HttpStatusCode.Unauthorized, result.StatusCode); - - // tampered signature - this.SetAuthHeaderToken(token1.AccessToken + "y"); - result = this._httpClient.GetAsync(TestGetQuery).Result; - content = result.Content.ReadAsStringAsync().Result; - LogText(@"content => " + content); - Assert.AreEqual(HttpStatusCode.Unauthorized, result.StatusCode); - - // tampered claims - var idx = token1.AccessToken.IndexOf('.'); - var tampered = token1.AccessToken.Substring(0, idx + 10) + "z" + token1.AccessToken.Substring(idx + 10); - this.SetAuthHeaderToken(tampered); - result = this._httpClient.GetAsync(TestGetQuery).Result; - content = result.Content.ReadAsStringAsync().Result; - LogText(@"content => " + content); - Assert.AreEqual(HttpStatusCode.Unauthorized, result.StatusCode); - } - - [Test] - public void ExtendingTokenWithinLastHourExtendsUpToRenewalExpiry() - { - var token1 = this.GetAuthorizationTokenFor(this._hostName, this._hostPass); - var parts = token1.AccessToken.Split('.'); - var decoded = DecodeBase64(parts[1]); - dynamic claims = JsonConvert.DeserializeObject(decoded); - string sessionId = claims.sid; - var query = "UPDATE {objectQualifier}JsonWebTokens SET RenewalExpiry=" + - $"'{DateTime.UtcNow.AddMinutes(30).ToString("yyyy-MM-dd HH:mm:ss")}' WHERE TokenId='{sessionId}';"; - DatabaseHelper.ExecuteNonQuery(query); - WebApiTestHelper.ClearHostCache(); - - var token2 = this.RenewAuthorizationToken(token1); - parts = token2.AccessToken.Split('.'); - decoded = DecodeBase64(parts[1]); - claims = JsonConvert.DeserializeObject(decoded); - long claimExpiry = claims.exp; - var expiryInToken = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc).AddSeconds(claimExpiry); - Assert.Less(DateTime.UtcNow, expiryInToken); - Assert.LessOrEqual(expiryInToken, DateTime.UtcNow.AddMinutes(31)); // appears the library rounds the time - - var record = DatabaseHelper.GetRecordById("JsonWebTokens", "TokenId", sessionId); - var accessExpiry = (DateTime)record["TokenExpiry"]; - var renewalExpiry = (DateTime)record["RenewalExpiry"]; - Assert.AreEqual(accessExpiry, renewalExpiry); - Assert.Less(DateTime.UtcNow, renewalExpiry); - Assert.LessOrEqual(renewalExpiry, DateTime.UtcNow.AddMinutes(31)); - Assert.AreEqual(accessExpiry, expiryInToken); - } - - [Test] - public void UsingExpiredAccessTokenShouldFail() - { - var token1 = this.GetAuthorizationTokenFor(this._hostName, this._hostPass); - var parts = token1.AccessToken.Split('.'); - var decoded = DecodeBase64(parts[1]); - dynamic claims = JsonConvert.DeserializeObject(decoded); - string sessionId = claims.sid; - var query = "UPDATE {objectQualifier}JsonWebTokens SET TokenExpiry=" + - $"'{DateTime.UtcNow.AddMinutes(-1).ToString("yyyy-MM-dd HH:mm:ss")}' WHERE TokenId='{sessionId}';"; - DatabaseHelper.ExecuteNonQuery(query); - WebApiTestHelper.ClearHostCache(); - - this.SetAuthHeaderToken(token1.AccessToken); - var result = this._httpClient.GetAsync(TestGetQuery).Result; - var content = result.Content.ReadAsStringAsync().Result; - LogText(@"content => " + content); - Assert.AreEqual(HttpStatusCode.Unauthorized, result.StatusCode); - } - - [Test] - public void UsingExpiredRenewalTokenShouldFail() - { - var token1 = this.GetAuthorizationTokenFor(this._hostName, this._hostPass); - var parts = token1.AccessToken.Split('.'); - var decoded = DecodeBase64(parts[1]); - dynamic claims = JsonConvert.DeserializeObject(decoded); - string sessionId = claims.sid; - var query = "UPDATE {objectQualifier}JsonWebTokens SET RenewalExpiry=" + - $"'{DateTime.UtcNow.AddMinutes(-1).ToString("yyyy-MM-dd HH:mm:ss")}' WHERE TokenId='{sessionId}';"; - DatabaseHelper.ExecuteNonQuery(query); - WebApiTestHelper.ClearHostCache(); - - this.SetAuthHeaderToken(token1.AccessToken); - var result = this._httpClient.GetAsync(TestGetQuery).Result; - var content = result.Content.ReadAsStringAsync().Result; - LogText(@"content => " + content); - Assert.AreEqual(HttpStatusCode.Unauthorized, result.StatusCode); - } - - [Test] - public void TryingToRenewUsingAnExpiredRenewalTokenShouldFail() - { - var token1 = this.GetAuthorizationTokenFor(this._hostName, this._hostPass); - var parts = token1.AccessToken.Split('.'); - var decoded = DecodeBase64(parts[1]); - dynamic claims = JsonConvert.DeserializeObject(decoded); - string sessionId = claims.sid; - var query = "UPDATE {objectQualifier}JsonWebTokens SET RenewalExpiry=" + - $"'{DateTime.UtcNow.AddMinutes(-1).ToString("yyyy-MM-dd HH:mm:ss")}' WHERE TokenId='{sessionId}';"; - DatabaseHelper.ExecuteNonQuery(query); - WebApiTestHelper.ClearHostCache(); - - this.SetAuthHeaderToken(token1.AccessToken); - var result = this._httpClient.PostAsJsonAsync(ExtendTokenQuery, new { rtoken = token1.RenewalToken }).Result; - Assert.AreEqual(HttpStatusCode.Unauthorized, result.StatusCode); - } - - [Test] - [TestCase(GetMonikerQuery)] - [TestCase(GetModuleDetailsQuery)] - public void CallingHelperForLoggedinUserShouldReturnSuccess(string query) - { - var token = this.GetAuthorizationTokenFor(this._hostName, this._hostPass); - this.SetAuthHeaderToken(token.AccessToken); - var result = this._httpClient.GetAsync(query + HttpUtility.UrlEncode("ViewProfile")).Result; - var content = result.Content.ReadAsStringAsync().Result; - LogText(@"content => " + content); - Assert.NotNull(content); - Assert.AreEqual(HttpStatusCode.OK, result.StatusCode); - } - - [Test] - public void ValidatingSuccessWhenUsingExistingMoniker() - { - // Arrange - const string query1 = - @"SELECT TOP(1) TabModuleId FROM {objectQualifier}TabModules - WHERE TabId IN (SELECT TabId FROM {objectQualifier}Tabs WHERE TabName='Activity Feed') - AND ModuleTitle='Journal';"; - var tabModuleId = DatabaseHelper.ExecuteScalar(query1); - Assert.Greater(tabModuleId, 0); - - // These will set a moniker for the Activity Feed module of the user profile - DatabaseHelper.ExecuteNonQuery(@"EXEC {objectQualifier}DeleteTabModuleSetting " + tabModuleId + @", 'Moniker'"); - DatabaseHelper.ExecuteNonQuery(@"EXEC {objectQualifier}UpdateTabModuleSetting " + tabModuleId + @", 'Moniker', 'myjournal', 1"); - WebApiTestHelper.ClearHostCache(); - - // Act - var token = this.GetAuthorizationTokenFor(this._hostName, this._hostPass); - this.SetAuthHeaderToken(token.AccessToken); - this.SetMonikerHeader("myjournal"); - var postItem = new { ProfileId = 1, GroupId = -1, RowIndex = 0, MaxRows = 1 }; - var result = this._httpClient.PostAsJsonAsync( - "/API/Journal/Services/GetListForProfile", postItem).Result; - var content = result.Content.ReadAsStringAsync().Result; - LogText(@"content => " + content); - Assert.AreEqual(HttpStatusCode.OK, result.StatusCode); - } - - [Test] - public void ValidatingFailureWhenUsingNonExistingMoniker() - { - // Arrange - const string query1 = - @"SELECT TOP(1) TabModuleId FROM {objectQualifier}TabModules - WHERE TabId IN (SELECT TabId FROM {objectQualifier}Tabs WHERE TabName='Activity Feed') - AND ModuleTitle='Journal';"; - var tabModuleId = DatabaseHelper.ExecuteScalar(query1); - Assert.Greater(tabModuleId, 0); - - // These will set a moniker for the Activity Feed module of the user profile - DatabaseHelper.ExecuteNonQuery(@"EXEC {objectQualifier}DeleteTabModuleSetting " + tabModuleId + @", 'Moniker'"); - WebApiTestHelper.ClearHostCache(); - - // Act - var token = this.GetAuthorizationTokenFor(this._hostName, this._hostPass); - this.SetAuthHeaderToken(token.AccessToken); - this.SetMonikerHeader("myjournal"); - var postItem = new { ProfileId = 1, GroupId = -1, RowIndex = 0, MaxRows = 1 }; - var result = this._httpClient.PostAsJsonAsync( - "/API/Journal/Services/GetListForProfile", postItem).Result; - var content = result.Content.ReadAsStringAsync().Result; - LogText(@"content => " + content); - Assert.AreEqual(HttpStatusCode.Unauthorized, result.StatusCode); + [Test] + public void ExtendingTokenWithinLastHourExtendsUpToRenewalExpiry() + { + var token1 = this.GetAuthorizationTokenFor(this._hostName, this._hostPass); + var parts = token1.AccessToken.Split('.'); + var decoded = DecodeBase64(parts[1]); + dynamic claims = JsonConvert.DeserializeObject(decoded); + string sessionId = claims.sid; + var query = "UPDATE {objectQualifier}JsonWebTokens SET RenewalExpiry=" + + $"'{DateTime.UtcNow.AddMinutes(30).ToString("yyyy-MM-dd HH:mm:ss")}' WHERE TokenId='{sessionId}';"; + DatabaseHelper.ExecuteNonQuery(query); + WebApiTestHelper.ClearHostCache(); + + var token2 = this.RenewAuthorizationToken(token1); + parts = token2.AccessToken.Split('.'); + decoded = DecodeBase64(parts[1]); + claims = JsonConvert.DeserializeObject(decoded); + long claimExpiry = claims.exp; + var expiryInToken = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc).AddSeconds(claimExpiry); + Assert.Multiple(() => + { + Assert.That(DateTime.UtcNow, Is.LessThan(expiryInToken)); + Assert.That(expiryInToken, Is.LessThanOrEqualTo(DateTime.UtcNow.AddMinutes(31))); // appears the library rounds the time + }); + + var record = DatabaseHelper.GetRecordById("JsonWebTokens", "TokenId", sessionId); + var accessExpiry = (DateTime)record["TokenExpiry"]; + var renewalExpiry = (DateTime)record["RenewalExpiry"]; + Assert.Multiple(() => + { + Assert.That(renewalExpiry, Is.EqualTo(accessExpiry)); + Assert.That(DateTime.UtcNow, Is.LessThan(renewalExpiry)); + }); + Assert.That(renewalExpiry, Is.LessThanOrEqualTo(DateTime.UtcNow.AddMinutes(31))); + Assert.That(expiryInToken, Is.EqualTo(accessExpiry)); } - - private static string DecodeBase64(string b64Str) - { - // fix Base64 string padding - var mod = b64Str.Length % 4; + + [Test] + public void UsingExpiredAccessTokenShouldFail() + { + var token1 = this.GetAuthorizationTokenFor(this._hostName, this._hostPass); + var parts = token1.AccessToken.Split('.'); + var decoded = DecodeBase64(parts[1]); + dynamic claims = JsonConvert.DeserializeObject(decoded); + string sessionId = claims.sid; + var query = "UPDATE {objectQualifier}JsonWebTokens SET TokenExpiry=" + + $"'{DateTime.UtcNow.AddMinutes(-1).ToString("yyyy-MM-dd HH:mm:ss")}' WHERE TokenId='{sessionId}';"; + DatabaseHelper.ExecuteNonQuery(query); + WebApiTestHelper.ClearHostCache(); + + this.SetAuthHeaderToken(token1.AccessToken); + var result = this._httpClient.GetAsync(TestGetQuery).Result; + var content = result.Content.ReadAsStringAsync().Result; + LogText(@"content => " + content); + Assert.That(result.StatusCode, Is.EqualTo(HttpStatusCode.Unauthorized)); + } + + [Test] + public void UsingExpiredRenewalTokenShouldFail() + { + var token1 = this.GetAuthorizationTokenFor(this._hostName, this._hostPass); + var parts = token1.AccessToken.Split('.'); + var decoded = DecodeBase64(parts[1]); + dynamic claims = JsonConvert.DeserializeObject(decoded); + string sessionId = claims.sid; + var query = "UPDATE {objectQualifier}JsonWebTokens SET RenewalExpiry=" + + $"'{DateTime.UtcNow.AddMinutes(-1).ToString("yyyy-MM-dd HH:mm:ss")}' WHERE TokenId='{sessionId}';"; + DatabaseHelper.ExecuteNonQuery(query); + WebApiTestHelper.ClearHostCache(); + + this.SetAuthHeaderToken(token1.AccessToken); + var result = this._httpClient.GetAsync(TestGetQuery).Result; + var content = result.Content.ReadAsStringAsync().Result; + LogText(@"content => " + content); + Assert.That(result.StatusCode, Is.EqualTo(HttpStatusCode.Unauthorized)); + } + + [Test] + public void TryingToRenewUsingAnExpiredRenewalTokenShouldFail() + { + var token1 = this.GetAuthorizationTokenFor(this._hostName, this._hostPass); + var parts = token1.AccessToken.Split('.'); + var decoded = DecodeBase64(parts[1]); + dynamic claims = JsonConvert.DeserializeObject(decoded); + string sessionId = claims.sid; + var query = "UPDATE {objectQualifier}JsonWebTokens SET RenewalExpiry=" + + $"'{DateTime.UtcNow.AddMinutes(-1).ToString("yyyy-MM-dd HH:mm:ss")}' WHERE TokenId='{sessionId}';"; + DatabaseHelper.ExecuteNonQuery(query); + WebApiTestHelper.ClearHostCache(); + + this.SetAuthHeaderToken(token1.AccessToken); + var result = this._httpClient.PostAsJsonAsync(ExtendTokenQuery, new { rtoken = token1.RenewalToken }).Result; + Assert.That(result.StatusCode, Is.EqualTo(HttpStatusCode.Unauthorized)); + } + + [Test] + [TestCase(GetMonikerQuery)] + [TestCase(GetModuleDetailsQuery)] + public void CallingHelperForLoggedinUserShouldReturnSuccess(string query) + { + var token = this.GetAuthorizationTokenFor(this._hostName, this._hostPass); + this.SetAuthHeaderToken(token.AccessToken); + var result = this._httpClient.GetAsync(query + HttpUtility.UrlEncode("ViewProfile")).Result; + var content = result.Content.ReadAsStringAsync().Result; + LogText(@"content => " + content); + Assert.Multiple(() => + { + Assert.That(content, Is.Not.Null); + Assert.That(result.StatusCode, Is.EqualTo(HttpStatusCode.OK)); + }); + } + + [Test] + public void ValidatingSuccessWhenUsingExistingMoniker() + { + // Arrange + const string query1 = + @"SELECT TOP(1) TabModuleId FROM {objectQualifier}TabModules + WHERE TabId IN (SELECT TabId FROM {objectQualifier}Tabs WHERE TabName='Activity Feed') + AND ModuleTitle='Journal';"; + var tabModuleId = DatabaseHelper.ExecuteScalar(query1); + Assert.That(tabModuleId, Is.GreaterThan(0)); + + // These will set a moniker for the Activity Feed module of the user profile + DatabaseHelper.ExecuteNonQuery(@"EXEC {objectQualifier}DeleteTabModuleSetting " + tabModuleId + @", 'Moniker'"); + DatabaseHelper.ExecuteNonQuery(@"EXEC {objectQualifier}UpdateTabModuleSetting " + tabModuleId + @", 'Moniker', 'myjournal', 1"); + WebApiTestHelper.ClearHostCache(); + + // Act + var token = this.GetAuthorizationTokenFor(this._hostName, this._hostPass); + this.SetAuthHeaderToken(token.AccessToken); + this.SetMonikerHeader("myjournal"); + var postItem = new { ProfileId = 1, GroupId = -1, RowIndex = 0, MaxRows = 1 }; + var result = this._httpClient.PostAsJsonAsync( + "/API/Journal/Services/GetListForProfile", postItem).Result; + var content = result.Content.ReadAsStringAsync().Result; + LogText(@"content => " + content); + Assert.That(result.StatusCode, Is.EqualTo(HttpStatusCode.OK)); + } + + [Test] + public void ValidatingFailureWhenUsingNonExistingMoniker() + { + // Arrange + const string query1 = + @"SELECT TOP(1) TabModuleId FROM {objectQualifier}TabModules + WHERE TabId IN (SELECT TabId FROM {objectQualifier}Tabs WHERE TabName='Activity Feed') + AND ModuleTitle='Journal';"; + var tabModuleId = DatabaseHelper.ExecuteScalar(query1); + Assert.That(tabModuleId, Is.GreaterThan(0)); + + // These will set a moniker for the Activity Feed module of the user profile + DatabaseHelper.ExecuteNonQuery(@"EXEC {objectQualifier}DeleteTabModuleSetting " + tabModuleId + @", 'Moniker'"); + WebApiTestHelper.ClearHostCache(); + + // Act + var token = this.GetAuthorizationTokenFor(this._hostName, this._hostPass); + this.SetAuthHeaderToken(token.AccessToken); + this.SetMonikerHeader("myjournal"); + var postItem = new { ProfileId = 1, GroupId = -1, RowIndex = 0, MaxRows = 1 }; + var result = this._httpClient.PostAsJsonAsync( + "/API/Journal/Services/GetListForProfile", postItem).Result; + var content = result.Content.ReadAsStringAsync().Result; + LogText(@"content => " + content); + Assert.That(result.StatusCode, Is.EqualTo(HttpStatusCode.Unauthorized)); + } + + private static string DecodeBase64(string b64Str) + { + // fix Base64 string padding + var mod = b64Str.Length % 4; if (mod != 0) { b64Str += new string('=', 4 - mod); } - return TextEncoder.GetString(Convert.FromBase64String(b64Str)); + return TextEncoder.GetString(Convert.FromBase64String(b64Str)); } // template to help in copy/paste of new test methods - /* - [Test] - public void TemplateMethod() - { - Assert.Fail(); - } + /* + [Test] + public void TemplateMethod() + { + Assert.Fail(); + } */ - private LoginResultData GetAuthorizationTokenFor(string uname, string upass) - { - var credentials = new { u = uname, p = upass }; - var result = this._httpClient.PostAsJsonAsync(LoginQuery, credentials).Result; - Assert.AreEqual(HttpStatusCode.OK, result.StatusCode); - var token = result.Content.ReadAsAsync().Result; - Assert.IsNotNull(token); - LogText(@"AuthToken => " + JsonConvert.SerializeObject(token)); - this._httpClient.DefaultRequestHeaders.Clear(); - return token; - } - - private LoginResultData RenewAuthorizationToken(LoginResultData currentToken) - { - Thread.Sleep(1000); // must delay at least 1 second so the expiry time is different - this.SetAuthHeaderToken(currentToken.AccessToken); - var result = this._httpClient.PostAsJsonAsync(ExtendTokenQuery, new { rtoken = currentToken.RenewalToken }).Result; - Assert.AreEqual(HttpStatusCode.OK, result.StatusCode); - var token = result.Content.ReadAsAsync().Result; - Assert.IsNotNull(token); - LogText(@"RenewedToken => " + JsonConvert.SerializeObject(token)); - return token; - } - - private void LogoutUser(string accessToken) - { - this.SetAuthHeaderToken(accessToken); - var result = this._httpClient.GetAsync(LogoutQuery).Result; - Assert.AreEqual(HttpStatusCode.OK, result.StatusCode); - var content = result.Content.ReadAsStringAsync().Result; - dynamic response = !string.IsNullOrEmpty(content) ? JsonConvert.DeserializeObject(content) : null; - Assert.IsTrue(Convert.ToBoolean(response?.success)); - } - - private void SetAuthHeaderToken(string token, string scheme = "Bearer") - { - this._httpClient.DefaultRequestHeaders.Authorization = - AuthenticationHeaderValue.Parse(scheme.Trim() + " " + token.Trim()); - } - - private void SetMonikerHeader(string monikerValue) - { - this._httpClient.DefaultRequestHeaders.Add("X-DNN-MONIKER", monikerValue); - } - - [JsonObject] - public class LoginResultData - { - [JsonProperty("userId")] - public int UserId { get; set; } - - [JsonProperty("displayName")] - public string DisplayName { get; set; } - - [JsonProperty("accessToken")] - public string AccessToken { get; set; } - - [JsonProperty("renewalToken")] - public string RenewalToken { get; set; } + private LoginResultData GetAuthorizationTokenFor(string uname, string upass) + { + var credentials = new { u = uname, p = upass }; + var result = this._httpClient.PostAsJsonAsync(LoginQuery, credentials).Result; + Assert.That(result.StatusCode, Is.EqualTo(HttpStatusCode.OK)); + var token = result.Content.ReadAsAsync().Result; + Assert.That(token, Is.Not.Null); + LogText(@"AuthToken => " + JsonConvert.SerializeObject(token)); + this._httpClient.DefaultRequestHeaders.Clear(); + return token; + } + + private LoginResultData RenewAuthorizationToken(LoginResultData currentToken) + { + Thread.Sleep(1000); // must delay at least 1 second so the expiry time is different + this.SetAuthHeaderToken(currentToken.AccessToken); + var result = this._httpClient.PostAsJsonAsync(ExtendTokenQuery, new { rtoken = currentToken.RenewalToken }).Result; + Assert.That(result.StatusCode, Is.EqualTo(HttpStatusCode.OK)); + var token = result.Content.ReadAsAsync().Result; + Assert.That(token, Is.Not.Null); + LogText(@"RenewedToken => " + JsonConvert.SerializeObject(token)); + return token; + } + + private void LogoutUser(string accessToken) + { + this.SetAuthHeaderToken(accessToken); + var result = this._httpClient.GetAsync(LogoutQuery).Result; + Assert.That(result.StatusCode, Is.EqualTo(HttpStatusCode.OK)); + var content = result.Content.ReadAsStringAsync().Result; + dynamic response = !string.IsNullOrEmpty(content) ? JsonConvert.DeserializeObject(content) : null; + Assert.That(Convert.ToBoolean(response?.success), Is.True); + } + + private void SetAuthHeaderToken(string token, string scheme = "Bearer") + { + this._httpClient.DefaultRequestHeaders.Authorization = + AuthenticationHeaderValue.Parse(scheme.Trim() + " " + token.Trim()); + } + + private void SetMonikerHeader(string monikerValue) + { + this._httpClient.DefaultRequestHeaders.Add("X-DNN-MONIKER", monikerValue); + } + + [JsonObject] + public class LoginResultData + { + [JsonProperty("userId")] + public int UserId { get; set; } + + [JsonProperty("displayName")] + public string DisplayName { get; set; } + + [JsonProperty("accessToken")] + public string AccessToken { get; set; } + + [JsonProperty("renewalToken")] + public string RenewalToken { get; set; } } - } -} + } +} diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Integration/Tests/Library/ImageHandlerTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Integration/Tests/Library/ImageHandlerTests.cs index d7d68c54d85..e92b0052e91 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Integration/Tests/Library/ImageHandlerTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Integration/Tests/Library/ImageHandlerTests.cs @@ -24,7 +24,7 @@ public void Using_Image_Handler_For_Foreign_Site_ShouldFail() var relativeUrl = string.Format(HandlerPath, "https://google.com"); var response = session.GetContent(relativeUrl).Content.ReadAsStringAsync().Result; - Assert.IsTrue(response.StartsWith("�PNG\r\n"), $"Content = {response}"); + Assert.That(response.StartsWith("�PNG\r\n"), Is.True, $"Content = {response}"); } [Test] @@ -34,7 +34,7 @@ public void Using_Image_Handler_For_Main_Alias_ShouldPass() var relativeUrl = string.Format(HandlerPath, AppConfigHelper.SiteUrl); var response = session.GetContent(relativeUrl).Content.ReadAsStringAsync().Result; - Assert.IsTrue(response.StartsWith("GIF89a"), $"Content = {response}"); + Assert.That(response.StartsWith("GIF89a"), Is.True, $"Content = {response}"); } [Test] @@ -70,7 +70,7 @@ public void Using_Image_Handler_From_All_Alias_ShouldPass() LogText("Getting image from " + absoluteUrl); var response = session.GetContent(absoluteUrl).Content.ReadAsStringAsync().Result; - Assert.IsTrue(response.StartsWith("GIF89a"), $"Url: {absoluteUrl} / Content = {response}"); + Assert.That(response.StartsWith("GIF89a"), Is.True, $"Url: {absoluteUrl} / Content = {response}"); } } @@ -82,7 +82,7 @@ public void Using_Image_Handler_For_Images_with_max_size_ShouldPass(string maxWi var session = WebApiTestHelper.GetAnnonymousConnector(); var relativeUrl = $"/DnnImageHandler.ashx?mode=securefile&fileId={fileId}&MaxWidth={maxWidth}&MaxHeight={maxHeight}"; var response = session.GetContent(relativeUrl); - Assert.IsTrue(response.StatusCode == System.Net.HttpStatusCode.OK); + Assert.That(response.StatusCode == System.Net.HttpStatusCode.OK, Is.True); } } } diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Integration/Tests/Portals/PortalInfoTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Integration/Tests/Portals/PortalInfoTests.cs index e814a0d81bf..9dbfdb26f0c 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Integration/Tests/Portals/PortalInfoTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Integration/Tests/Portals/PortalInfoTests.cs @@ -2,45 +2,48 @@ // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information -namespace DotNetNuke.Tests.Integration.Tests.Portals -{ - using System; - using System.Linq; - - using DNN.Integration.Test.Framework.Helpers; - using DotNetNuke.Common.Utilities; - using DotNetNuke.Entities.Host; - using DotNetNuke.Entities.Portals; - using DotNetNuke.Tests.Utilities; - using NUnit.Framework; - - [TestFixture] - public class PortalInfoTests : DnnWebTest - { - public PortalInfoTests() - : base(Constants.PORTAL_Zero) - { - } - +namespace DotNetNuke.Tests.Integration.Tests.Portals +{ + using System; + using System.Linq; + + using DNN.Integration.Test.Framework.Helpers; + using DotNetNuke.Common.Utilities; + using DotNetNuke.Entities.Host; + using DotNetNuke.Entities.Portals; + using DotNetNuke.Tests.Utilities; + using NUnit.Framework; + + [TestFixture] + public class PortalInfoTests : DnnWebTest + { + public PortalInfoTests() + : base(Constants.PORTAL_Zero) + { + } + [Test] - public void Processor_Password_In_DB_Must_Be_Encrypted() - { - var firstPortal = PortalController.Instance.GetPortals().OfType().FirstOrDefault(); - Assert.NotNull(firstPortal); - - var newPassword = "StringToEncrypt_" + new Random().Next(1, 100); - firstPortal.ProcessorPassword = newPassword; - PortalController.Instance.UpdatePortalInfo(firstPortal); - - var result = DatabaseHelper.ExecuteScalar( - @"SELECT TOP(1) COALESCE(ProcessorPassword, '') FROM {objectQualifier}Portals WHERE PortalID=" + this.PortalId); - - var decrypted = DotNetNuke.Security.FIPSCompliant.DecryptAES(result, Config.GetDecryptionkey(), Host.GUID); - - Assert.AreNotEqual(result, string.Empty); - Assert.AreNotEqual(result, decrypted); - Assert.AreEqual(decrypted, newPassword); - } - } -} + public void Processor_Password_In_DB_Must_Be_Encrypted() + { + var firstPortal = PortalController.Instance.GetPortals().OfType().FirstOrDefault(); + Assert.That(firstPortal, Is.Not.Null); + + var newPassword = "StringToEncrypt_" + new Random().Next(1, 100); + firstPortal.ProcessorPassword = newPassword; + PortalController.Instance.UpdatePortalInfo(firstPortal); + + var result = DatabaseHelper.ExecuteScalar( + @"SELECT TOP(1) COALESCE(ProcessorPassword, '') FROM {objectQualifier}Portals WHERE PortalID=" + this.PortalId); + + var decrypted = DotNetNuke.Security.FIPSCompliant.DecryptAES(result, Config.GetDecryptionkey(), Host.GUID); + + Assert.Multiple(() => + { + Assert.That(result, Is.Not.EqualTo(string.Empty)); + Assert.That(decrypted, Is.Not.EqualTo(result)); + Assert.That(newPassword, Is.EqualTo(decrypted)); + }); + } + } +} diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Integration/Tests/Portals/PortalSettingsTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Integration/Tests/Portals/PortalSettingsTests.cs index 5b02fe51410..ee819e30127 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Integration/Tests/Portals/PortalSettingsTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Integration/Tests/Portals/PortalSettingsTests.cs @@ -40,8 +40,8 @@ public void Saving_Non_Secure_Value_Doesnt_Encrypt_It() var result = PortalController.GetPortalSetting(this._settingName, this.PortalId, string.Empty); // Assert - Assert.AreNotEqual(result, string.Empty); - Assert.AreEqual(this._settingValue, result); + Assert.That(result, Is.Not.EqualTo(string.Empty)); + Assert.That(result, Is.EqualTo(this._settingValue)); } [Test] @@ -55,9 +55,12 @@ public void Saving_Secure_Value_Encrypts_It() var decrypted = DotNetNuke.Security.FIPSCompliant.DecryptAES(result, Config.GetDecryptionkey(), Host.GUID); // Assert - Assert.AreNotEqual(result, string.Empty); - Assert.AreNotEqual(this._settingValue, result); - Assert.AreEqual(decrypted, this._settingValue); + Assert.That(result, Is.Not.EqualTo(string.Empty)); + Assert.Multiple(() => + { + Assert.That(result, Is.Not.EqualTo(this._settingValue)); + Assert.That(this._settingValue, Is.EqualTo(decrypted)); + }); } } } diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Integration/Tests/Security/AuthCookieTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Integration/Tests/Security/AuthCookieTests.cs index 2867fdae58c..740da8a98a1 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Integration/Tests/Security/AuthCookieTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Integration/Tests/Security/AuthCookieTests.cs @@ -21,7 +21,7 @@ public class AuthCookieTests : IntegrationTestBase public void Using_Logged_Out_Cookie_Should_Be_Unauthorized() { var session = WebApiTestHelper.LoginHost(); - Assert.IsTrue(session.IsLoggedIn); + Assert.That(session.IsLoggedIn, Is.True); // clone the cookies as after closing they will be removed from the container var cookies = new CookieContainer(); @@ -29,17 +29,23 @@ public void Using_Logged_Out_Cookie_Should_Be_Unauthorized() // make sure the request succeeds when the user is logged in // var result1 = session.GetContent(GetPortaslApi, null, false); -- use same method to validate - var result1 = this.SendDirectGetRequest(session.Domain, GetPortaslApi, session.Timeout, cookies); - Assert.IsTrue(result1.IsSuccessStatusCode); - Assert.AreEqual(HttpStatusCode.OK, result1.StatusCode); + var result1 = this.SendDirectGetRequest(session.Domain, GetPortaslApi, session.Timeout, cookies); + Assert.Multiple(() => + { + Assert.That(result1.IsSuccessStatusCode, Is.True); + Assert.That(result1.StatusCode, Is.EqualTo(HttpStatusCode.OK)); + }); session.Logout(); - Assert.IsFalse(session.IsLoggedIn); + Assert.That(session.IsLoggedIn, Is.False); // make sure the request fails when using the same cookies before logging out - var result2 = this.SendDirectGetRequest(session.Domain, GetPortaslApi, session.Timeout, cookies); - Assert.IsFalse(result2.IsSuccessStatusCode); - Assert.AreEqual(HttpStatusCode.Unauthorized, result2.StatusCode); + var result2 = this.SendDirectGetRequest(session.Domain, GetPortaslApi, session.Timeout, cookies); + Assert.Multiple(() => + { + Assert.That(result2.IsSuccessStatusCode, Is.False); + Assert.That(result2.StatusCode, Is.EqualTo(HttpStatusCode.Unauthorized)); + }); } private static HttpClient CreateHttpClient(Uri domain, TimeSpan timeout, CookieContainer cookies) diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Mail/SmtpOAuthControllerTest.cs b/DNN Platform/Tests/DotNetNuke.Tests.Mail/SmtpOAuthControllerTest.cs index f5892e84c83..1419eb1fae3 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Mail/SmtpOAuthControllerTest.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Mail/SmtpOAuthControllerTest.cs @@ -20,7 +20,7 @@ public void Google_OAuth_Provider_Should_Exists() { var provider = CreateSmtpOAuthController().GetOAuthProvider("GoogleMail"); - Assert.NotNull(provider); + Assert.That(provider, Is.Not.Null); } [Test] @@ -28,7 +28,7 @@ public void Exchange_OAuth_Provider_Should_Exists() { var provider = CreateSmtpOAuthController().GetOAuthProvider("ExchangeOnline"); - Assert.NotNull(provider); + Assert.That(provider, Is.Not.Null); } [Test] @@ -36,7 +36,7 @@ public void NonExistent_OAuth_Provider_Should_Be_Null() { var provider = CreateSmtpOAuthController().GetOAuthProvider("AnotherProvider"); - Assert.Null(provider); + Assert.That(provider, Is.Null); } private static SmtpOAuthController CreateSmtpOAuthController() diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Modules/Html/HtmlTextControllerTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Modules/Html/HtmlTextControllerTests.cs index ad7e795e4e1..a3d15d5562e 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Modules/Html/HtmlTextControllerTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Modules/Html/HtmlTextControllerTests.cs @@ -17,7 +17,7 @@ public void ManageRelativePaths_DoesNotChangePlainHtml() "/portals/0/", "src", 0); - Assert.AreEqual("

Hello

", actual); + Assert.That(actual, Is.EqualTo("

Hello

")); } [Test] @@ -28,7 +28,7 @@ public void ManageRelativePaths_AdjustsRelativeImgSrc() "/portals/0/", "src", 0); - Assert.AreEqual("", actual); + Assert.That(actual, Is.EqualTo("")); } [Test] @@ -39,7 +39,7 @@ public void ManageRelativePaths_DoesNotAdjustImgSrcWithCorrectPathCaseInsensitiv "/portals/0/", "src", 0); - Assert.AreEqual("", actual); + Assert.That(actual, Is.EqualTo("")); } [Test] @@ -50,7 +50,7 @@ public void ManageRelativePaths_DoesNotAdjustImgSrcWithAbsoluteUrl() "/portals/0/", "src", 0); - Assert.AreEqual("", actual); + Assert.That(actual, Is.EqualTo("")); } [Test] @@ -61,7 +61,7 @@ public void ManageRelativePaths_DoesNotAdjustImgSrcWithAbsoluteUrlInContent() "/portals/0/", "src", 0); - Assert.AreEqual("src=\"https://example.com/image.jpg\" is how you indicate a URL", actual); + Assert.That(actual, Is.EqualTo("src=\"https://example.com/image.jpg\" is how you indicate a URL")); } [Test] @@ -72,7 +72,7 @@ public void ManageRelativePaths_DoesNotAdjustContentEndingInImgSrc() "/portals/0/", "src", 0); - Assert.AreEqual("src=\"image.jpg\"", actual); + Assert.That(actual, Is.EqualTo("src=\"image.jpg\"")); } [Test] @@ -83,7 +83,7 @@ public void ManageRelativePaths_DoesNotAdjustContentEndingInUnclosedImgSrc() "/portals/0/", "src", 0); - Assert.AreEqual("src=\"image.jpg", actual); + Assert.That(actual, Is.EqualTo("src=\"image.jpg")); } [Test] @@ -95,7 +95,7 @@ public void ManageRelativePaths_DoesAdjustImgSrcWithRelativeUrlInContent() "/portals/0/", "src", 0); - Assert.AreEqual("src=\"/portals/0/image.jpg\" is how you indicate a URL", actual); + Assert.That(actual, Is.EqualTo("src=\"/portals/0/image.jpg\" is how you indicate a URL")); } [Test] @@ -106,7 +106,7 @@ public void ManageRelativePaths_DoesNotAdjustImgSrcWithDataUrl() "/portals/0/", "src", 0); - Assert.AreEqual("", actual); + Assert.That(actual, Is.EqualTo("")); } [Test] @@ -138,7 +138,7 @@ public void ManageRelativePaths_AdjustsNonRootedRelativePathsAndDoesNotAdjustOth "; - Assert.AreEqual(Expected, actual); + Assert.That(actual, Is.EqualTo(Expected)); } } } diff --git a/DNN Platform/Tests/DotNetNuke.Tests.UI/Validation/DataAnnotationsObjectValidatorTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.UI/Validation/DataAnnotationsObjectValidatorTests.cs index 71ba015a73d..567fc81ae85 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.UI/Validation/DataAnnotationsObjectValidatorTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.UI/Validation/DataAnnotationsObjectValidatorTests.cs @@ -36,7 +36,7 @@ public void ValidateObject_Returns_Successful_Result_If_All_Attributes_On_All_Pr ValidationResult result = validator.ValidateObject(cls); // Assert - Assert.IsTrue(result.IsValid); + Assert.That(result.IsValid, Is.True); } [Test] @@ -50,7 +50,7 @@ public void ValidateObject_Returns_Failed_Result_If_Any_Attribute_Does_Not_Valid ValidationResult result = validator.ValidateObject(cls); // Assert - Assert.IsFalse(result.IsValid); + Assert.That(result.IsValid, Is.False); } [Test] @@ -61,12 +61,15 @@ public void ValidateObject_Collects_Error_Messages_From_Validation_Attributes() DataAnnotationsObjectValidator validator = new DataAnnotationsObjectValidator(); // Act - ValidationResult result = validator.ValidateObject(cls); - - // Assert - Assert.IsFalse(result.IsValid); - Assert.AreEqual("Dude, you forgot to enter a Foo", result.Errors.Where(e => e.PropertyName == "Foo").Single().ErrorMessage); - Assert.AreEqual("Yo, you have to specify 5 characters for Bar", result.Errors.Where(e => e.PropertyName == "Bar").Single().ErrorMessage); + ValidationResult result = validator.ValidateObject(cls); + + Assert.Multiple(() => + { + // Assert + Assert.That(result.IsValid, Is.False); + Assert.That(result.Errors.Where(e => e.PropertyName == "Foo").Single().ErrorMessage, Is.EqualTo("Dude, you forgot to enter a Foo")); + Assert.That(result.Errors.Where(e => e.PropertyName == "Bar").Single().ErrorMessage, Is.EqualTo("Yo, you have to specify 5 characters for Bar")); + }); } [Test] @@ -77,12 +80,15 @@ public void ValidateObject_Collects_ValidationAttribute_Objects_From_Failed_Vali DataAnnotationsObjectValidator validator = new DataAnnotationsObjectValidator(); // Act - ValidationResult result = validator.ValidateObject(cls); - - // Assert - Assert.IsFalse(result.IsValid); - Assert.IsInstanceOf(result.Errors.Single(e => e.PropertyName == "Foo").Validator); - Assert.IsInstanceOf(result.Errors.Single(e => e.PropertyName == "Bar").Validator); + ValidationResult result = validator.ValidateObject(cls); + + Assert.Multiple(() => + { + // Assert + Assert.That(result.IsValid, Is.False); + Assert.That(result.Errors.Single(e => e.PropertyName == "Foo").Validator, Is.InstanceOf()); + Assert.That(result.Errors.Single(e => e.PropertyName == "Bar").Validator, Is.InstanceOf()); + }); } public class TestClass diff --git a/DNN Platform/Tests/DotNetNuke.Tests.UI/Validation/ValidatorTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.UI/Validation/ValidatorTests.cs index 6a018e31888..183e8a539a4 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.UI/Validation/ValidatorTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.UI/Validation/ValidatorTests.cs @@ -30,7 +30,7 @@ public void ValidateObject_Returns_Successful_Result_If_All_Validators_Return_Su ValidationResult result = validator.ValidateObject(target); // Assert - Assert.IsTrue(result.IsValid); + Assert.That(result.IsValid, Is.True); } [Test] @@ -45,7 +45,7 @@ public void ValidateObject_Returns_Failed_Result_If_Any_Validator_Returns_Failed ValidationResult result = validator.ValidateObject(target); // Assert - Assert.IsFalse(result.IsValid); + Assert.That(result.IsValid, Is.False); } [Test] @@ -57,11 +57,14 @@ public void ValidateObject_Collects_Errors_From_All_Validators() SetupValidators(validator, target, ValidationResult.Successful, FailedResult, AnotherFailedResult, ValidationResult.Successful); // Act - ValidationResult result = validator.ValidateObject(target); - - // Assert - Assert.IsFalse(result.IsValid); - Assert.AreEqual(2, result.Errors.Count()); + ValidationResult result = validator.ValidateObject(target); + + Assert.Multiple(() => + { + // Assert + Assert.That(result.IsValid, Is.False); + Assert.That(result.Errors.Count(), Is.EqualTo(2)); + }); EnumerableAssert.ElementsMatch(new[] { FailedResult, AnotherFailedResult }, result.Errors, (e, a) => ReferenceEquals(e.Errors.First(), a)); } diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Urls/ExtensionUrlProviderControllerTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Urls/ExtensionUrlProviderControllerTests.cs index 7189c0d4612..abe8d2a7391 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Urls/ExtensionUrlProviderControllerTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Urls/ExtensionUrlProviderControllerTests.cs @@ -48,8 +48,8 @@ public void GetModuleProviders_ExcludeSingleProviderWithTypeThatDoesNotExist() var providers = ExtensionUrlProviderController.GetModuleProviders(Constants.PORTAL_ValidPortalId); - Assert.IsNotNull(providers, "Providers list should be empty, not null"); - Assert.IsEmpty(providers, "Providers list should be empty, since there is only an invalid entry"); + Assert.That(providers, Is.Not.Null, "Providers list should be empty, not null"); + Assert.That(providers, Is.Empty, "Providers list should be empty, since there is only an invalid entry"); } [Test] @@ -64,9 +64,9 @@ public void GetModuleProviders_OnlyExcludeProviderWithTypeThatDoesNotExistButInc var providers = ExtensionUrlProviderController.GetModuleProviders(Constants.PORTAL_ValidPortalId); - Assert.IsNotNull(providers, "Providers list should be empty, not null"); - Assert.AreEqual(1, providers.Count, "Providers list should have the one valid entry, but not the invalid entry"); - Assert.AreEqual("Working Provider", providers[0].ProviderConfig.ProviderName, "Providers list should have the valid entry"); + Assert.That(providers, Is.Not.Null, "Providers list should be empty, not null"); + Assert.That(providers, Has.Count.EqualTo(1), "Providers list should have the one valid entry, but not the invalid entry"); + Assert.That(providers[0].ProviderConfig.ProviderName, Is.EqualTo("Working Provider"), "Providers list should have the valid entry"); } private static void SetupGetModuleProvidersCall(IDataReader getExtensionUrlProvidersReader) diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Urls/FriendlyUrlTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Urls/FriendlyUrlTests.cs index aeaf7a1e6cd..29e8e1b129a 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Urls/FriendlyUrlTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Urls/FriendlyUrlTests.cs @@ -460,7 +460,7 @@ private void ExecuteTestForTab(string test, TabInfo tab, FriendlyUrlSettings set Guid.Empty); } - Assert.IsTrue(expectedResult.Equals(testUrl, StringComparison.InvariantCultureIgnoreCase)); + Assert.That(expectedResult.Equals(testUrl, StringComparison.InvariantCultureIgnoreCase), Is.True); } private void UpdateTabName(int tabId, string newName) diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Urls/UrlRewriteTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Urls/UrlRewriteTests.cs index ef0aa8cedf1..7e263d139bd 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Urls/UrlRewriteTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Urls/UrlRewriteTests.cs @@ -624,7 +624,7 @@ private void ExecuteTestForTab(TabInfo tab, FriendlyUrlSettings settings, Dictio this.ProcessRequest(settings, testHelper); // Test expected response status - Assert.AreEqual(expectedStatus, testHelper.Response.StatusCode); + Assert.That(testHelper.Response.StatusCode, Is.EqualTo(expectedStatus)); switch (expectedStatus) { @@ -632,15 +632,15 @@ private void ExecuteTestForTab(TabInfo tab, FriendlyUrlSettings settings, Dictio // Test expected rewrite path if (!string.IsNullOrEmpty(expectedResult)) { - Assert.AreEqual(expectedResult, testHelper.Result.RewritePath.TrimStart('/')); + Assert.That(testHelper.Result.RewritePath.TrimStart('/'), Is.EqualTo(expectedResult)); } break; case 301: case 302: // Test for final Url if redirected - Assert.IsTrue(expectedRedirectUrl.Equals(testHelper.Result.FinalUrl.TrimStart('/'), StringComparison.InvariantCultureIgnoreCase)); - Assert.AreEqual(redirectReason, testHelper.Result.Reason.ToString(), "Redirect reason incorrect"); + Assert.That(expectedRedirectUrl.Equals(testHelper.Result.FinalUrl.TrimStart('/'), StringComparison.InvariantCultureIgnoreCase), Is.True); + Assert.That(testHelper.Result.Reason.ToString(), Is.EqualTo(redirectReason), "Redirect reason incorrect"); break; } } diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Utilities/EnumerableAssert.cs b/DNN Platform/Tests/DotNetNuke.Tests.Utilities/EnumerableAssert.cs index 6cdcb69f8ea..95a412df281 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Utilities/EnumerableAssert.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Utilities/EnumerableAssert.cs @@ -42,9 +42,12 @@ public static void ElementsMatch(IEnumerable expe IEnumerator actualEnumerator = actual.GetEnumerator(); while (actualEnumerator.MoveNext()) - { - Assert.IsTrue(expectedEnumerator.MoveNext()); - Assert.IsTrue(matcher(expectedEnumerator.Current, actualEnumerator.Current), message, args); + { + Assert.Multiple(() => + { + Assert.That(expectedEnumerator.MoveNext(), Is.True); + Assert.That(matcher(expectedEnumerator.Current, actualEnumerator.Current), Is.True, () => string.Format(message, args)); + }); } } } diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Utilities/FileAssert.cs b/DNN Platform/Tests/DotNetNuke.Tests.Utilities/FileAssert.cs index 44141d2adc5..7a696883b72 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Utilities/FileAssert.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Utilities/FileAssert.cs @@ -2,37 +2,37 @@ // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information -namespace DotNetNuke.Tests.Utilities -{ - using System; - using System.IO; +namespace DotNetNuke.Tests.Utilities +{ + using System; + using System.IO; - using NUnit.Framework; + using NUnit.Framework; - public static class FileAssert - { - public static void TextFilesAreEqual(string expectedFile, string actualFile) - { - TextFilesAreEqual(expectedFile, actualFile, string.Empty); - } - - public static void TextFilesAreEqual(string expectedFile, string actualFile, string message) - { - string expectedContent = File.ReadAllText(expectedFile); - string actualContent = File.ReadAllText(actualFile); - Assert.AreEqual(expectedContent, actualContent, message); - } - - public static void BinaryFilesAreEqual(string expectedFile, string actualFile) - { - BinaryFilesAreEqual(expectedFile, actualFile, string.Empty); - } - - public static void BinaryFilesAreEqual(string expectedFile, string actualFile, string message) - { - byte[] expectedContent = File.ReadAllBytes(expectedFile); - byte[] actualContent = File.ReadAllBytes(actualFile); - CollectionAssert.AreEqual(expectedContent, actualContent, message); - } - } -} + public static class FileAssert + { + public static void TextFilesAreEqual(string expectedFile, string actualFile) + { + TextFilesAreEqual(expectedFile, actualFile, string.Empty); + } + + public static void TextFilesAreEqual(string expectedFile, string actualFile, string message) + { + string expectedContent = File.ReadAllText(expectedFile); + string actualContent = File.ReadAllText(actualFile); + Assert.That(actualContent, Is.EqualTo(expectedContent), message); + } + + public static void BinaryFilesAreEqual(string expectedFile, string actualFile) + { + BinaryFilesAreEqual(expectedFile, actualFile, string.Empty); + } + + public static void BinaryFilesAreEqual(string expectedFile, string actualFile, string message) + { + byte[] expectedContent = File.ReadAllBytes(expectedFile); + byte[] actualContent = File.ReadAllBytes(actualFile); + Assert.That(actualContent, Is.EqualTo(expectedContent).AsCollection, message); + } + } +} diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Utilities/HttpSimulator/HttpSimulatorTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Utilities/HttpSimulator/HttpSimulatorTests.cs index da64e927536..a4c0493d2ae 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Utilities/HttpSimulator/HttpSimulatorTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Utilities/HttpSimulator/HttpSimulatorTests.cs @@ -2,342 +2,372 @@ // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information -namespace UnitTests.Subtext -{ - using System; - using System.Collections.Specialized; - using System.Reflection; - using System.Web; - using System.Web.Hosting; - - using DotNetNuke.Tests.Instance.Utilities.HttpSimulator; - using NUnit.Framework; - - ////[TestFixture] - public class HttpSimulatorTests - { - ////[Test] - public void CanGetSetSession() - { - using (new HttpSimulator("/", @"c:\inetpub\").SimulateRequest()) - { - HttpContext.Current.Session["Test"] = "Success"; - Assert.AreEqual("Success", HttpContext.Current.Session["Test"], "Was not able to retrieve session variable."); - } - } - - ////[Test] - public void CanGetSetApplicationVariables() - { - using (new HttpSimulator("/", @"c:\inetpub\").SimulateRequest()) - { - HttpContext.Current.Application["Test"] = "Success"; - Assert.AreEqual("Success", HttpContext.Current.Application["Test"], "Was not able to retrieve application variable."); - } - } - - ////[Test] - public void TestHttpHandlerWritesCorrectResponse() - { - using (var simulator = new HttpSimulator("/", @"c:\inetpub\")) - { - simulator.SetFormVariable("username", "phil") - .SetReferer(new Uri("http://example.com/1/")) - .SimulateRequest(new Uri("http://localhost/MyHandler.ashx?id=1234")); - - var handler = new TestHttpHandler(); - handler.ProcessRequest(HttpContext.Current); - HttpContext.Current.Response.Flush(); - - const string expected = @"c:\inetpub\MyHandler.ashx:phil:1234:http://example.com/1/"; - Assert.AreEqual(expected, simulator.ResponseText, "The Expected Response is all wrong."); - } // HttpContext.Current is set to null again. - } - - ////[Test] - public void CanDispose() - { - using (var simulator = new HttpSimulator()) - { - simulator.SimulateRequest(); - Assert.IsNotNull(HttpContext.Current); - } - - Assert.IsNull(HttpContext.Current); - } - - /*//[RowTest] - ////[Row("http://localhost/Test/Default.aspx", "/Test", "/Test")] - ////[Row("http://localhost/Test/Default.aspx", "/Test/", "/Test")] - ////[Row("http://localhost/Test/Default.aspx", "//Test//", "/Test")] - ////[Row("http://localhost/Test/Subtest/Default.aspx", "/Test", "/Test")] - ////[Row("http://localhost/Test/Subtest/Default.aspx", "/Test/", "/Test")] - ////[Row("http://localhost/Test/Subtest/Default.aspx", "//Test//", "/Test")] - ////[Row("http://localhost/Test/Default.aspx", "", "/")] - ////[Row("http://localhost/Test/Default.aspx", "/", "/")] - ////[Row("http://localhost/Test/Default.aspx", null, "/")]*/ - public void CanSetApplicationPathCorrectly(string url, string appPath, string expectedAppPath) - { - var simulator = new HttpSimulator(appPath, @"c:\inetpub\wwwroot\site1\test"); - Assert.AreEqual(expectedAppPath, simulator.ApplicationPath); - simulator.SimulateRequest(new Uri(url)); - Assert.AreEqual(expectedAppPath, HttpContext.Current.Request.ApplicationPath); - Assert.AreEqual(expectedAppPath, HttpRuntime.AppDomainAppVirtualPath); - Assert.AreEqual(expectedAppPath, HostingEnvironment.ApplicationVirtualPath); - } - - /*//[RowTest] - ////[Row("http://localhost/Test/default.aspx", "/Test", @"c:\projects\test", @"c:\projects\test\", @"c:\projects\test\default.aspx")] - ////[Row("http://localhost/Test/Subtest/default.aspx", "/Test", @"c:\projects\test", @"c:\projects\test\", @"c:\projects\test\Subtest\default.aspx")] - ////[Row("http://localhost/test/default.aspx", "/", @"c:\inetpub\wwwroot\", @"c:\inetpub\wwwroot\", @"c:\inetpub\wwwroot\test\default.aspx")] - ////[Row("http://localhost/test/default.aspx", "/", @"c:\inetpub\wwwroot", @"c:\inetpub\wwwroot\", @"c:\inetpub\wwwroot\test\default.aspx")]*/ - public void CanSetAppPhysicalPathCorrectly(string url, string appPath, string appPhysicalPath, string expectedPhysicalAppPath, string expectedPhysicalPath) - { - var simulator = new HttpSimulator(appPath, appPhysicalPath); - Assert.AreEqual(expectedPhysicalAppPath, simulator.PhysicalApplicationPath); - simulator.SimulateRequest(new Uri(url), HttpVerb.GET); - - Assert.AreEqual(expectedPhysicalPath, simulator.PhysicalPath); - Assert.AreEqual(expectedPhysicalAppPath, HttpRuntime.AppDomainAppPath); - Assert.AreEqual(expectedPhysicalAppPath, HostingEnvironment.ApplicationPhysicalPath); - Assert.AreEqual(expectedPhysicalPath, HttpContext.Current.Request.PhysicalPath); - } - - ////[Test] - public void CanGetQueryString() - { - var simulator = new HttpSimulator(); - simulator.SimulateRequest(new Uri("http://localhost/Test.aspx?param1=value1¶m2=value2¶m3=value3")); - for (var i = 1; i <= 3; i++) - { - Assert.AreEqual("value" + i, HttpContext.Current.Request.QueryString["param" + i], "Could not find query string field 'param{0}'", i); - } - - simulator.SimulateRequest(new Uri("http://localhost/Test.aspx?param1=new-value1¶m2=new-value2¶m3=new-value3¶m4=new-value4")); - for (var i = 1; i <= 4; i++) - { - Assert.AreEqual("new-value" + i, HttpContext.Current.Request.QueryString["param" + i], "Could not find query string field 'param{0}'", i); - } - - simulator.SimulateRequest(new Uri("http://localhost/Test.aspx?")); - Assert.AreEqual(string.Empty, HttpContext.Current.Request.QueryString.ToString()); - Assert.AreEqual(0, HttpContext.Current.Request.QueryString.Count); - - simulator.SimulateRequest(new Uri("http://localhost/Test.aspx")); - Assert.AreEqual(string.Empty, HttpContext.Current.Request.QueryString.ToString()); - Assert.AreEqual(0, HttpContext.Current.Request.QueryString.Count); - - simulator.SimulateRequest(new Uri("http://localhost/Test.aspx?param-name")); - Assert.AreEqual("param-name", HttpContext.Current.Request.QueryString.ToString()); - Assert.AreEqual(1, HttpContext.Current.Request.QueryString.Count); - Assert.IsNull(HttpContext.Current.Request.QueryString["param-name"]); - } - - // //[Test] - public void CanSimulateFormPost() - { - using (var simulator = new HttpSimulator()) - { - var form = new NameValueCollection { { "Test1", "Value1" }, { "Test2", "Value2" } }; - simulator.SimulateRequest(new Uri("http://localhost/Test.aspx"), form); - - Assert.AreEqual("Value1", HttpContext.Current.Request.Form["Test1"]); - Assert.AreEqual("Value2", HttpContext.Current.Request.Form["Test2"]); - } - - using (var simulator = new HttpSimulator()) - { - simulator.SetFormVariable("Test1", "Value1") - .SetFormVariable("Test2", "Value2") - .SimulateRequest(new Uri("http://localhost/Test.aspx")); - - Assert.AreEqual("Value1", HttpContext.Current.Request.Form["Test1"]); - Assert.AreEqual("Value2", HttpContext.Current.Request.Form["Test2"]); - } - } - - // //[Test] - public void CanGetResponse() - { - var simulator = new HttpSimulator(); - simulator.SimulateRequest(); - HttpContext.Current.Response.Write("Hello World!"); - HttpContext.Current.Response.Flush(); - Assert.AreEqual("Hello World!", simulator.ResponseText); - } - - // //[Test] - public void CanGetReferer() - { - var simulator = new HttpSimulator(); - simulator.SetReferer(new Uri("http://example.com/Blah.aspx")).SimulateRequest(); - Assert.AreEqual(new Uri("http://example.com/Blah.aspx"), HttpContext.Current.Request.UrlReferrer); - - simulator = new HttpSimulator(); - simulator.SimulateRequest().SetReferer(new Uri("http://x.example.com/Blah.aspx")); - Assert.AreEqual(new Uri("http://x.example.com/Blah.aspx"), HttpContext.Current.Request.UrlReferrer); - } - - /*//[RowTest] - ////[Row("http://localhost:60653/Test.aspx", null, null, "localhost", 60653, "/", "/Test.aspx", @"c:\InetPub\wwwRoot\")] - ////[Row("http://localhost:60653/Test.aspx?test=true", null, null, "localhost", 60653, "/", "/Test.aspx", @"c:\InetPub\wwwRoot\")] - ////[Row("http://localhost:60653/Test.aspx", "/", @"c:\InetPub\wwwRoot\", "localhost", 60653, "/", "/Test.aspx", @"c:\InetPub\wwwRoot\")] - ////[Row("http://localhost:60653/Test/Test.aspx", "/", @"c:\InetPub\wwwRoot\", "localhost", 60653, "/", "/Test/Test.aspx", @"c:\InetPub\wwwRoot\")] - ////[Row("http://localhost:60653/AppPath/Test.aspx", "/AppPath", @"c:\InetPub\wwwRoot\AppPath\", "localhost", 60653, "/AppPath", "/AppPath/Test.aspx", @"c:\InetPub\wwwRoot\AppPath\")] - ////[Row("http://localhost:60653/AppPath/Test.aspx", "/AppPath/", @"c:\InetPub\wwwRoot\AppPath\", "localhost", 60653, "/AppPath", "/AppPath/Test.aspx", @"c:\InetPub\wwwRoot\AppPath\")]*/ - public void CanParseRequestUrl(string url, string appPath, string physicalPath, string expectedHost, int expectedPort, string expectedAppPath, string expectedPage, string expectedAppDomainAppPath) - { - var simulator = new HttpSimulator(appPath, physicalPath); - Assert.AreEqual(expectedAppPath, simulator.ApplicationPath); - Assert.AreEqual(expectedAppDomainAppPath, simulator.PhysicalApplicationPath); - } - - // [RowTest] - ////[Row("http://localhost/AppPath/default.aspx", "/AppPath", "/AppPath/default.aspx")] - ////[Row("http://localhost/AppPath/default.aspx", "/", "/AppPath/default.aspx")] - public void CanGetLocalPathCorrectly(string url, string appPath, string expectedLocalPath) - { - var simulator = new HttpSimulator(appPath, @"c:\inetpub\wwwroot\AppPath\"); - simulator.SimulateRequest(new Uri(url)); - Assert.AreEqual(expectedLocalPath, HttpContext.Current.Request.Path); - Assert.AreEqual(expectedLocalPath, HttpContext.Current.Request.Url.LocalPath); - } - - // [RowTest] - //////[Row("http://localhost:60653/Test.aspx", null, null, "localhost", 60653, "/", "/Test.aspx", @"c:\InetPub\wwwRoot\")] - //////[Row("http://localhost:60653/Test.aspx", "/", @"c:\InetPub\wwwRoot\", "localhost", 60653, "/", "/Test.aspx", @"c:\InetPub\wwwRoot\")] - //////[Row("http://localhost:60653/Test/Test.aspx", "/", @"c:\InetPub\wwwRoot\", "localhost", 60653, "/", "/Test/Test.aspx", @"c:\InetPub\wwwRoot\")] - //////[Row("http://localhost:60653/AppPath/Test.aspx", "/AppPath", @"c:\InetPub\wwwRoot\AppPath\", "localhost", 60653, "/AppPath", "/AppPath/Test.aspx", @"c:\InetPub\wwwRoot\AppPath\")] - //////[Row("http://localhost:60653/AppPath/Test.aspx", "/AppPath/", @"c:\InetPub\wwwRoot\AppPath\", "localhost", 60653, "/AppPath", "/AppPath/Test.aspx", @"c:\InetPub\wwwRoot\AppPath\")] - public void CanSimulateRequest(string url, string appPath, string physicalPath, string expectedHost, int expectedPort, string expectedAppPath, string expectedLocalPath, string expectedPhysicalPath) - { - var simulator = new HttpSimulator(appPath, physicalPath); - simulator.SimulateRequest(new Uri(url)); - - Assert.AreEqual(expectedHost, HttpContext.Current.Request.Url.Host); - Assert.AreEqual(expectedPort, HttpContext.Current.Request.Url.Port); - Assert.AreEqual(expectedAppPath, HttpContext.Current.Request.ApplicationPath); - Assert.AreEqual(expectedPhysicalPath, HttpContext.Current.Request.PhysicalApplicationPath); - Assert.AreEqual(expectedLocalPath, HttpContext.Current.Request.Url.LocalPath); - } - - // [RowTest] - ////[Row("/", "/", @"c:\inetpub\wwwroot\")] - ////[Row("/Test/Test.aspx", "/", @"c:\inetpub\wwwroot\Test\Test.aspx")] - ////[Row("/Test/Blah/Test.aspx", "/", @"c:\inetpub\wwwroot\Test\Blah\Test.aspx")] - ////[Row("/Test", "/Test", @"c:\inetpub\wwwroot")] - ////[Row("/Test/", "/Test", @"c:\inetpub\wwwroot\")] - public void CanMapPath(string virtualPath, string appPath, string expectedMapPath) - { - var url = new Uri("http://localhost/Test/Test.aspx"); - var simulator = new HttpSimulator(appPath, @"c:\inetpub\wwwroot\"); - simulator.SimulateRequest(url); - - // Create a virtual path object. - var vpath = ReflectionHelper.Instantiate("System.Web.VirtualPath, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", new[] { typeof(string) }, virtualPath); - Assert.IsNotNull(vpath); - - var environment = HttpSimulatorTester.CallGetEnvironment(); - - var vpathString = ReflectionHelper.InvokeProperty(vpath, "VirtualPathString"); - var appVirtPath = ReflectionHelper.GetPrivateInstanceFieldValue("_appVirtualPath", environment); - Assert.IsNotNull(appVirtPath); - Console.WriteLine("VPATH: " + vpath); - Console.WriteLine("App-VPATH: " + appVirtPath); - - Console.WriteLine("vpath.VirtualPathString == '{0}'", vpathString); - - var mapping = ReflectionHelper.InvokeNonPublicMethod(typeof(HostingEnvironment), "GetVirtualPathToFileMapping", vpath); - Console.WriteLine("GetVirtualPathToFileMapping: --->{0}<---", mapping ?? "{NULL}"); - - var o = ReflectionHelper.GetPrivateInstanceFieldValue("_configMapPath", environment); - Console.WriteLine("_configMapPath: {0}", o ?? "{null}"); - - var mappedPath = ReflectionHelper.InvokeNonPublicMethod(environment, "MapPathActual", vpath, false); - Console.WriteLine("MAPPED: " + mappedPath); - Assert.AreEqual(expectedMapPath, HttpContext.Current.Request.MapPath(virtualPath)); - } - - // [Test] - public void CanInstantiateVirtualPath() - { - var virtualPathType = Type.GetType("System.Web.VirtualPath, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", true); - var constructor = virtualPathType.GetConstructor(BindingFlags.NonPublic | BindingFlags.Instance, null, new[] { typeof(string) }, null); - Assert.IsNotNull(constructor); - } - - // [Test] - public void CanGetHostingEnvironment() - { - var environment = HttpSimulatorTester.CallGetEnvironment(); - Assert.IsNotNull(environment); - environment = HttpSimulatorTester.CallGetEnvironment(); - Assert.IsNotNull(environment); - } - - // [RowTest] - ////[Row("/", "/")] - ////[Row("", "/")] - ////[Row("/test", "/test")] - ////[Row("test/", "/test")] - ////[Row("/test/", "/test")] - ////[Row("/test/////", "/test")] - ////[Row("////test/", "/test")] - ////[Row("/test/test////", "/test/test")] - ////[Row("/////test/test////", "/test/test")] - ////[Row("/////test///test////", "/test/test")] - public void CanNormalizeSlashes(string s, string expected) - { - Assert.AreEqual(expected, HttpSimulatorTester.CallNormalizeSlashes(s)); - } - - // [Test] - public void CanStripTrailing() - { - Assert.AreEqual(@"c:\blah\blah2", HttpSimulatorTester.CallStripTrailingBackSlashes(@"c:\blah\blah2\")); - } - - internal class TestHttpHandler : IHttpHandler - { - public bool IsReusable - { - get { return true; } - } - - public void ProcessRequest(HttpContext context) - { - var physicalPath = context.Request.MapPath("/MyHandler.ashx"); - var username = context.Request.Form["username"]; - var id = context.Request.QueryString["id"]; - if (context.Request.UrlReferrer == null) - { - return; - } - - var referer = context.Request.UrlReferrer.ToString(); - - // Imagine, if you will, a bunch of complex interesting - // and fascinating logic here. - context.Response.Write(physicalPath + ":" + username + ":" + id + ":" + referer); - } - } - } - - internal class HttpSimulatorTester : HttpSimulator - { - public static string CallNormalizeSlashes(string s) - { - return NormalizeSlashes(s); - } - - public static string CallStripTrailingBackSlashes(string s) - { - return StripTrailingBackSlashes(s); - } - - public static HostingEnvironment CallGetEnvironment() - { - return GetHostingEnvironment(); - } - } -} +namespace UnitTests.Subtext +{ + using System; + using System.Collections.Specialized; + using System.Reflection; + using System.Web; + using System.Web.Hosting; + + using DotNetNuke.Tests.Instance.Utilities.HttpSimulator; + using NUnit.Framework; + + ////[TestFixture] + public class HttpSimulatorTests + { + ////[Test] + public void CanGetSetSession() + { + using (new HttpSimulator("/", @"c:\inetpub\").SimulateRequest()) + { + HttpContext.Current.Session["Test"] = "Success"; + Assert.That(HttpContext.Current.Session["Test"], Is.EqualTo("Success"), "Was not able to retrieve session variable."); + } + } + + ////[Test] + public void CanGetSetApplicationVariables() + { + using (new HttpSimulator("/", @"c:\inetpub\").SimulateRequest()) + { + HttpContext.Current.Application["Test"] = "Success"; + Assert.That(HttpContext.Current.Application["Test"], Is.EqualTo("Success"), "Was not able to retrieve application variable."); + } + } + + ////[Test] + public void TestHttpHandlerWritesCorrectResponse() + { + using (var simulator = new HttpSimulator("/", @"c:\inetpub\")) + { + simulator.SetFormVariable("username", "phil") + .SetReferer(new Uri("http://example.com/1/")) + .SimulateRequest(new Uri("http://localhost/MyHandler.ashx?id=1234")); + + var handler = new TestHttpHandler(); + handler.ProcessRequest(HttpContext.Current); + HttpContext.Current.Response.Flush(); + + const string expected = @"c:\inetpub\MyHandler.ashx:phil:1234:http://example.com/1/"; + Assert.That(simulator.ResponseText, Is.EqualTo(expected), "The Expected Response is all wrong."); + } // HttpContext.Current is set to null again. + } + + ////[Test] + public void CanDispose() + { + using (var simulator = new HttpSimulator()) + { + simulator.SimulateRequest(); + Assert.That(HttpContext.Current, Is.Not.Null); + } + + Assert.That(HttpContext.Current, Is.Null); + } + + /*//[RowTest] + ////[Row("http://localhost/Test/Default.aspx", "/Test", "/Test")] + ////[Row("http://localhost/Test/Default.aspx", "/Test/", "/Test")] + ////[Row("http://localhost/Test/Default.aspx", "//Test//", "/Test")] + ////[Row("http://localhost/Test/Subtest/Default.aspx", "/Test", "/Test")] + ////[Row("http://localhost/Test/Subtest/Default.aspx", "/Test/", "/Test")] + ////[Row("http://localhost/Test/Subtest/Default.aspx", "//Test//", "/Test")] + ////[Row("http://localhost/Test/Default.aspx", "", "/")] + ////[Row("http://localhost/Test/Default.aspx", "/", "/")] + ////[Row("http://localhost/Test/Default.aspx", null, "/")]*/ + public void CanSetApplicationPathCorrectly(string url, string appPath, string expectedAppPath) + { + var simulator = new HttpSimulator(appPath, @"c:\inetpub\wwwroot\site1\test"); + Assert.That(simulator.ApplicationPath, Is.EqualTo(expectedAppPath)); + simulator.SimulateRequest(new Uri(url)); + Assert.Multiple(() => + { + Assert.That(HttpContext.Current.Request.ApplicationPath, Is.EqualTo(expectedAppPath)); + Assert.That(HttpRuntime.AppDomainAppVirtualPath, Is.EqualTo(expectedAppPath)); + Assert.That(HostingEnvironment.ApplicationVirtualPath, Is.EqualTo(expectedAppPath)); + }); + } + + /*//[RowTest] + ////[Row("http://localhost/Test/default.aspx", "/Test", @"c:\projects\test", @"c:\projects\test\", @"c:\projects\test\default.aspx")] + ////[Row("http://localhost/Test/Subtest/default.aspx", "/Test", @"c:\projects\test", @"c:\projects\test\", @"c:\projects\test\Subtest\default.aspx")] + ////[Row("http://localhost/test/default.aspx", "/", @"c:\inetpub\wwwroot\", @"c:\inetpub\wwwroot\", @"c:\inetpub\wwwroot\test\default.aspx")] + ////[Row("http://localhost/test/default.aspx", "/", @"c:\inetpub\wwwroot", @"c:\inetpub\wwwroot\", @"c:\inetpub\wwwroot\test\default.aspx")]*/ + public void CanSetAppPhysicalPathCorrectly(string url, string appPath, string appPhysicalPath, string expectedPhysicalAppPath, string expectedPhysicalPath) + { + var simulator = new HttpSimulator(appPath, appPhysicalPath); + Assert.That(simulator.PhysicalApplicationPath, Is.EqualTo(expectedPhysicalAppPath)); + simulator.SimulateRequest(new Uri(url), HttpVerb.GET); + + Assert.Multiple(() => + { + Assert.That(simulator.PhysicalPath, Is.EqualTo(expectedPhysicalPath)); + Assert.That(HttpRuntime.AppDomainAppPath, Is.EqualTo(expectedPhysicalAppPath)); + Assert.That(HostingEnvironment.ApplicationPhysicalPath, Is.EqualTo(expectedPhysicalAppPath)); + Assert.That(HttpContext.Current.Request.PhysicalPath, Is.EqualTo(expectedPhysicalPath)); + }); + } + + ////[Test] + public void CanGetQueryString() + { + var simulator = new HttpSimulator(); + simulator.SimulateRequest(new Uri("http://localhost/Test.aspx?param1=value1¶m2=value2¶m3=value3")); + for (var i = 1; i <= 3; i++) + { + Assert.That(HttpContext.Current.Request.QueryString["param" + i], Is.EqualTo("value" + i), $"Could not find query string field 'param{i}'"); + } + + simulator.SimulateRequest(new Uri("http://localhost/Test.aspx?param1=new-value1¶m2=new-value2¶m3=new-value3¶m4=new-value4")); + for (var i = 1; i <= 4; i++) + { + Assert.That(HttpContext.Current.Request.QueryString["param" + i], Is.EqualTo("new-value" + i), $"Could not find query string field 'param{i}'"); + } + + simulator.SimulateRequest(new Uri("http://localhost/Test.aspx?")); + Assert.Multiple(() => + { + Assert.That(HttpContext.Current.Request.QueryString.ToString(), Is.EqualTo(string.Empty)); + Assert.That(HttpContext.Current.Request.QueryString, Is.Empty); + }); + + simulator.SimulateRequest(new Uri("http://localhost/Test.aspx")); + Assert.Multiple(() => + { + Assert.That(HttpContext.Current.Request.QueryString.ToString(), Is.EqualTo(string.Empty)); + Assert.That(HttpContext.Current.Request.QueryString, Is.Empty); + }); + + simulator.SimulateRequest(new Uri("http://localhost/Test.aspx?param-name")); + Assert.Multiple(() => + { + Assert.That(HttpContext.Current.Request.QueryString.ToString(), Is.EqualTo("param-name")); + Assert.That(HttpContext.Current.Request.QueryString, Has.Count.EqualTo(1)); + }); + Assert.That(HttpContext.Current.Request.QueryString["param-name"], Is.Null); + } + + // //[Test] + public void CanSimulateFormPost() + { + using (var simulator = new HttpSimulator()) + { + var form = new NameValueCollection { { "Test1", "Value1" }, { "Test2", "Value2" } }; + simulator.SimulateRequest(new Uri("http://localhost/Test.aspx"), form); + + Assert.Multiple(() => + { + Assert.That(HttpContext.Current.Request.Form["Test1"], Is.EqualTo("Value1")); + Assert.That(HttpContext.Current.Request.Form["Test2"], Is.EqualTo("Value2")); + }); + } + + using (var simulator = new HttpSimulator()) + { + simulator.SetFormVariable("Test1", "Value1") + .SetFormVariable("Test2", "Value2") + .SimulateRequest(new Uri("http://localhost/Test.aspx")); + + Assert.Multiple(() => + { + Assert.That(HttpContext.Current.Request.Form["Test1"], Is.EqualTo("Value1")); + Assert.That(HttpContext.Current.Request.Form["Test2"], Is.EqualTo("Value2")); + }); + } + } + + // //[Test] + public void CanGetResponse() + { + var simulator = new HttpSimulator(); + simulator.SimulateRequest(); + HttpContext.Current.Response.Write("Hello World!"); + HttpContext.Current.Response.Flush(); + Assert.That(simulator.ResponseText, Is.EqualTo("Hello World!")); + } + + // //[Test] + public void CanGetReferer() + { + var simulator = new HttpSimulator(); + simulator.SetReferer(new Uri("http://example.com/Blah.aspx")).SimulateRequest(); + Assert.That(HttpContext.Current.Request.UrlReferrer, Is.EqualTo(new Uri("http://example.com/Blah.aspx"))); + + simulator = new HttpSimulator(); + simulator.SimulateRequest().SetReferer(new Uri("http://x.example.com/Blah.aspx")); + Assert.That(HttpContext.Current.Request.UrlReferrer, Is.EqualTo(new Uri("http://x.example.com/Blah.aspx"))); + } + + /*//[RowTest] + ////[Row("http://localhost:60653/Test.aspx", null, null, "localhost", 60653, "/", "/Test.aspx", @"c:\InetPub\wwwRoot\")] + ////[Row("http://localhost:60653/Test.aspx?test=true", null, null, "localhost", 60653, "/", "/Test.aspx", @"c:\InetPub\wwwRoot\")] + ////[Row("http://localhost:60653/Test.aspx", "/", @"c:\InetPub\wwwRoot\", "localhost", 60653, "/", "/Test.aspx", @"c:\InetPub\wwwRoot\")] + ////[Row("http://localhost:60653/Test/Test.aspx", "/", @"c:\InetPub\wwwRoot\", "localhost", 60653, "/", "/Test/Test.aspx", @"c:\InetPub\wwwRoot\")] + ////[Row("http://localhost:60653/AppPath/Test.aspx", "/AppPath", @"c:\InetPub\wwwRoot\AppPath\", "localhost", 60653, "/AppPath", "/AppPath/Test.aspx", @"c:\InetPub\wwwRoot\AppPath\")] + ////[Row("http://localhost:60653/AppPath/Test.aspx", "/AppPath/", @"c:\InetPub\wwwRoot\AppPath\", "localhost", 60653, "/AppPath", "/AppPath/Test.aspx", @"c:\InetPub\wwwRoot\AppPath\")]*/ + public void CanParseRequestUrl(string url, string appPath, string physicalPath, string expectedHost, int expectedPort, string expectedAppPath, string expectedPage, string expectedAppDomainAppPath) + { + var simulator = new HttpSimulator(appPath, physicalPath); + Assert.Multiple(() => + { + Assert.That(simulator.ApplicationPath, Is.EqualTo(expectedAppPath)); + Assert.That(simulator.PhysicalApplicationPath, Is.EqualTo(expectedAppDomainAppPath)); + }); + } + + // [RowTest] + ////[Row("http://localhost/AppPath/default.aspx", "/AppPath", "/AppPath/default.aspx")] + ////[Row("http://localhost/AppPath/default.aspx", "/", "/AppPath/default.aspx")] + public void CanGetLocalPathCorrectly(string url, string appPath, string expectedLocalPath) + { + var simulator = new HttpSimulator(appPath, @"c:\inetpub\wwwroot\AppPath\"); + simulator.SimulateRequest(new Uri(url)); + Assert.Multiple(() => + { + Assert.That(HttpContext.Current.Request.Path, Is.EqualTo(expectedLocalPath)); + Assert.That(HttpContext.Current.Request.Url.LocalPath, Is.EqualTo(expectedLocalPath)); + }); + } + + // [RowTest] + //////[Row("http://localhost:60653/Test.aspx", null, null, "localhost", 60653, "/", "/Test.aspx", @"c:\InetPub\wwwRoot\")] + //////[Row("http://localhost:60653/Test.aspx", "/", @"c:\InetPub\wwwRoot\", "localhost", 60653, "/", "/Test.aspx", @"c:\InetPub\wwwRoot\")] + //////[Row("http://localhost:60653/Test/Test.aspx", "/", @"c:\InetPub\wwwRoot\", "localhost", 60653, "/", "/Test/Test.aspx", @"c:\InetPub\wwwRoot\")] + //////[Row("http://localhost:60653/AppPath/Test.aspx", "/AppPath", @"c:\InetPub\wwwRoot\AppPath\", "localhost", 60653, "/AppPath", "/AppPath/Test.aspx", @"c:\InetPub\wwwRoot\AppPath\")] + //////[Row("http://localhost:60653/AppPath/Test.aspx", "/AppPath/", @"c:\InetPub\wwwRoot\AppPath\", "localhost", 60653, "/AppPath", "/AppPath/Test.aspx", @"c:\InetPub\wwwRoot\AppPath\")] + public void CanSimulateRequest(string url, string appPath, string physicalPath, string expectedHost, int expectedPort, string expectedAppPath, string expectedLocalPath, string expectedPhysicalPath) + { + var simulator = new HttpSimulator(appPath, physicalPath); + simulator.SimulateRequest(new Uri(url)); + + Assert.Multiple(() => + { + Assert.That(HttpContext.Current.Request.Url.Host, Is.EqualTo(expectedHost)); + Assert.That(HttpContext.Current.Request.Url.Port, Is.EqualTo(expectedPort)); + Assert.That(HttpContext.Current.Request.ApplicationPath, Is.EqualTo(expectedAppPath)); + Assert.That(HttpContext.Current.Request.PhysicalApplicationPath, Is.EqualTo(expectedPhysicalPath)); + Assert.That(HttpContext.Current.Request.Url.LocalPath, Is.EqualTo(expectedLocalPath)); + }); + } + + // [RowTest] + ////[Row("/", "/", @"c:\inetpub\wwwroot\")] + ////[Row("/Test/Test.aspx", "/", @"c:\inetpub\wwwroot\Test\Test.aspx")] + ////[Row("/Test/Blah/Test.aspx", "/", @"c:\inetpub\wwwroot\Test\Blah\Test.aspx")] + ////[Row("/Test", "/Test", @"c:\inetpub\wwwroot")] + ////[Row("/Test/", "/Test", @"c:\inetpub\wwwroot\")] + public void CanMapPath(string virtualPath, string appPath, string expectedMapPath) + { + var url = new Uri("http://localhost/Test/Test.aspx"); + var simulator = new HttpSimulator(appPath, @"c:\inetpub\wwwroot\"); + simulator.SimulateRequest(url); + + // Create a virtual path object. + var vpath = ReflectionHelper.Instantiate("System.Web.VirtualPath, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", new[] { typeof(string) }, virtualPath); + Assert.That(vpath, Is.Not.Null); + + var environment = HttpSimulatorTester.CallGetEnvironment(); + + var vpathString = ReflectionHelper.InvokeProperty(vpath, "VirtualPathString"); + var appVirtPath = ReflectionHelper.GetPrivateInstanceFieldValue("_appVirtualPath", environment); + Assert.That(appVirtPath, Is.Not.Null); + Console.WriteLine("VPATH: " + vpath); + Console.WriteLine("App-VPATH: " + appVirtPath); + + Console.WriteLine("vpath.VirtualPathString == '{0}'", vpathString); + + var mapping = ReflectionHelper.InvokeNonPublicMethod(typeof(HostingEnvironment), "GetVirtualPathToFileMapping", vpath); + Console.WriteLine("GetVirtualPathToFileMapping: --->{0}<---", mapping ?? "{NULL}"); + + var o = ReflectionHelper.GetPrivateInstanceFieldValue("_configMapPath", environment); + Console.WriteLine("_configMapPath: {0}", o ?? "{null}"); + + var mappedPath = ReflectionHelper.InvokeNonPublicMethod(environment, "MapPathActual", vpath, false); + Console.WriteLine("MAPPED: " + mappedPath); + Assert.That(HttpContext.Current.Request.MapPath(virtualPath), Is.EqualTo(expectedMapPath)); + } + + // [Test] + public void CanInstantiateVirtualPath() + { + var virtualPathType = Type.GetType("System.Web.VirtualPath, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", true); + var constructor = virtualPathType.GetConstructor(BindingFlags.NonPublic | BindingFlags.Instance, null, new[] { typeof(string) }, null); + Assert.That(constructor, Is.Not.Null); + } + + // [Test] + public void CanGetHostingEnvironment() + { + var environment = HttpSimulatorTester.CallGetEnvironment(); + Assert.That(environment, Is.Not.Null); + environment = HttpSimulatorTester.CallGetEnvironment(); + Assert.That(environment, Is.Not.Null); + } + + // [RowTest] + ////[Row("/", "/")] + ////[Row("", "/")] + ////[Row("/test", "/test")] + ////[Row("test/", "/test")] + ////[Row("/test/", "/test")] + ////[Row("/test/////", "/test")] + ////[Row("////test/", "/test")] + ////[Row("/test/test////", "/test/test")] + ////[Row("/////test/test////", "/test/test")] + ////[Row("/////test///test////", "/test/test")] + public void CanNormalizeSlashes(string s, string expected) + { + Assert.That(HttpSimulatorTester.CallNormalizeSlashes(s), Is.EqualTo(expected)); + } + + // [Test] + public void CanStripTrailing() + { + Assert.That(HttpSimulatorTester.CallStripTrailingBackSlashes(@"c:\blah\blah2\"), Is.EqualTo(@"c:\blah\blah2")); + } + + internal class TestHttpHandler : IHttpHandler + { + public bool IsReusable + { + get { return true; } + } + + public void ProcessRequest(HttpContext context) + { + var physicalPath = context.Request.MapPath("/MyHandler.ashx"); + var username = context.Request.Form["username"]; + var id = context.Request.QueryString["id"]; + if (context.Request.UrlReferrer == null) + { + return; + } + + var referer = context.Request.UrlReferrer.ToString(); + + // Imagine, if you will, a bunch of complex interesting + // and fascinating logic here. + context.Response.Write(physicalPath + ":" + username + ":" + id + ":" + referer); + } + } + } + + internal class HttpSimulatorTester : HttpSimulator + { + public static string CallNormalizeSlashes(string s) + { + return NormalizeSlashes(s); + } + + public static string CallStripTrailingBackSlashes(string s) + { + return StripTrailingBackSlashes(s); + } + + public static HostingEnvironment CallGetEnvironment() + { + return GetHostingEnvironment(); + } + } +} diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Utilities/MailAssert.cs b/DNN Platform/Tests/DotNetNuke.Tests.Utilities/MailAssert.cs index 2adcc933c46..09fb94c9241 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Utilities/MailAssert.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Utilities/MailAssert.cs @@ -17,21 +17,21 @@ public static void Base64EncodedContentLineContains(string expectedValue, string { var contentLine = ConvertEmailContentFromBase64ToUnicode(GetEmailFileName(toAddress, findByText)); - Assert.IsTrue(contentLine.Contains(expectedValue)); + Assert.That(contentLine.Contains(expectedValue), Is.True); } public static void ContentLineContains(string expectedValue, string toAddress, string findByText) { var contentLine = FindContentUsingRegex(expectedValue, GetEmailFileName(toAddress, findByText)); - Assert.IsFalse(string.IsNullOrEmpty(contentLine)); + Assert.That(string.IsNullOrEmpty(contentLine), Is.False); } public static void FromLineContains(string expectedValue, string toAddress, string findByText) { string fromLine = FindEmailLineUsingRegex("From", GetEmailFileName(toAddress, findByText)); - Assert.IsTrue(fromLine.Contains(expectedValue)); + Assert.That(fromLine.Contains(expectedValue), Is.True); } public static void MessageSent(string expectedValue, string toAddress, string message) @@ -43,21 +43,21 @@ public static void ReplyToLineContains(string expectedValue, string toAddress, s { string replyToLine = FindEmailLineUsingRegex("Reply-To", GetEmailFileName(toAddress, findByText)); - Assert.IsTrue(replyToLine.Contains(expectedValue)); + Assert.That(replyToLine.Contains(expectedValue), Is.True); } public static void SubjectLineContains(string expectedValue, string toAddress, string findByText) { string subjectLine = FindEmailLineUsingRegex("Subject", GetEmailFileName(toAddress, findByText)); - Assert.IsTrue(subjectLine.Contains(expectedValue)); + Assert.That(subjectLine.Contains(expectedValue), Is.True); } public static void ToLineContains(string expectedValue, string toAddress, string findByText) { string toLine = FindEmailLineUsingRegex("To", GetEmailFileName(toAddress, findByText)); - Assert.IsTrue(toLine.Contains(expectedValue)); + Assert.That(toLine.Contains(expectedValue), Is.True); } private static string ConvertEmailContentFromBase64ToUnicode(string emailFileName) @@ -67,7 +67,7 @@ private static string ConvertEmailContentFromBase64ToUnicode(string emailFileNam // Separate the content from the EmailAddress information const string contentLineRegex = "(base64)(.*(\n)+)+"; Match match = Regex.Match(@emailContent, contentLineRegex, RegexOptions.Singleline); - Assert.IsTrue(match.Success, "Could not find content Line! Looking in file: " + emailFileName); + Assert.That(match.Success, Is.True, "Could not find content Line! Looking in file: " + emailFileName); // Convert the EmailAddress content emailContent = match.Groups[2].Value.Replace("\r\n", string.Empty); @@ -82,7 +82,7 @@ private static string FindContentUsingRegex(string content, string emailFileName string emailContent = File.ReadAllText(emailFileName); string contentLineRegex = @content + ".*"; Match match = Regex.Match(@emailContent, @contentLineRegex); - Assert.IsTrue(match.Success, "Could not find content Line! Looking in file: " + emailFileName); + Assert.That(match.Success, Is.True, "Could not find content Line! Looking in file: " + emailFileName); string contentLine = match.Value; return contentLine; } @@ -92,7 +92,7 @@ private static string FindEmailLineUsingRegex(string linePrefix, string emailFil string emailContent = File.ReadAllText(emailFileName); string lineRegex = @"^(" + linePrefix + @"): (.+)"; Match match = Regex.Match(@emailContent, @lineRegex, RegexOptions.Multiline); - Assert.IsTrue(match.Success, "Could not find " + linePrefix + " Line! Looking in file: " + emailFileName); + Assert.That(match.Success, Is.True, "Could not find " + linePrefix + " Line! Looking in file: " + emailFileName); string line = match.Value; return line; } @@ -102,7 +102,7 @@ private static string FindLineUsingRegex(string linePrefix, string emailFileName string emailContent = File.ReadAllText(emailFileName); string lineRegex = linePrefix + @": .*"; Match match = Regex.Match(@emailContent, @lineRegex); - Assert.IsTrue(match.Success, "Could not find " + linePrefix + " Line! Looking in file: " + emailFileName); + Assert.That(match.Success, Is.True, "Could not find " + linePrefix + " Line! Looking in file: " + emailFileName); string line = match.Value; return line; } @@ -129,7 +129,7 @@ private static string GetEmailFileName(string toAddress, string findByText, stri } } - Assert.IsTrue(emailFileName != null, message + " The test was searching in: " + emailPath); + Assert.That(emailFileName != null, Is.True, message + " The test was searching in: " + emailPath); return emailFileName; } diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Web.Mvc/DictionaryAssert.cs b/DNN Platform/Tests/DotNetNuke.Tests.Web.Mvc/DictionaryAssert.cs index 08e3bd01b96..f72239c96bc 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Web.Mvc/DictionaryAssert.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Web.Mvc/DictionaryAssert.cs @@ -19,9 +19,12 @@ public static void ContainsEntries(object expected, IDictionary public static void ContainsEntries(IDictionary expected, IDictionary actual) { foreach (KeyValuePair pair in expected) - { - Assert.IsTrue(actual.ContainsKey(pair.Key)); - Assert.AreEqual(pair.Value, actual[pair.Key]); + { + Assert.Multiple(() => + { + Assert.That(actual.ContainsKey(pair.Key), Is.True); + Assert.That(actual[pair.Key], Is.EqualTo(pair.Value)); + }); } } } diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Web.Mvc/Framework/Attributes/DnnHandleErrorAttributeTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Web.Mvc/Framework/Attributes/DnnHandleErrorAttributeTests.cs index c81ba3ec2e0..794fbec5d36 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Web.Mvc/Framework/Attributes/DnnHandleErrorAttributeTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Web.Mvc/Framework/Attributes/DnnHandleErrorAttributeTests.cs @@ -27,7 +27,7 @@ public void OnException_Throws_InvalidOPerationExcption_IfNotUsedIn_IDnnControll // Act / Assert var ex = Assert.Throws(() => sut.OnException(exceptionContext)); - Assert.AreEqual(expectedMessage, ex.Message); + Assert.That(ex.Message, Is.EqualTo(expectedMessage)); } [Test] diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Web.Mvc/Framework/Controllers/DnnControllerTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Web.Mvc/Framework/Controllers/DnnControllerTests.cs index c513bce241d..836ddf526f7 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Web.Mvc/Framework/Controllers/DnnControllerTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Web.Mvc/Framework/Controllers/DnnControllerTests.cs @@ -2,195 +2,198 @@ // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information -namespace DotNetNuke.Tests.Web.Mvc.Framework.Controllers -{ - using System.Web; - using System.Web.Mvc; - using System.Web.Routing; - - using DotNetNuke.Tests.Web.Mvc.Fakes; - using DotNetNuke.Web.Mvc.Framework.ActionResults; - using NUnit.Framework; - - [TestFixture] - public class DnnControllerTests - { - private const string TestViewName = "Foo"; - +namespace DotNetNuke.Tests.Web.Mvc.Framework.Controllers +{ + using System.Web; + using System.Web.Mvc; + using System.Web.Routing; + + using DotNetNuke.Tests.Web.Mvc.Fakes; + using DotNetNuke.Web.Mvc.Framework.ActionResults; + using NUnit.Framework; + + [TestFixture] + public class DnnControllerTests + { + private const string TestViewName = "Foo"; + + [Test] + + public void ActivePage_Property_Is_Null_If_PortalSettings_Not_Set_In_Context() + { + // Arrange + HttpContextBase httpContextBase = MockHelper.CreateMockHttpContext(); + + // Act + var controller = this.SetupController(httpContextBase); + + // Assert + Assert.That(controller.ActivePage, Is.Null); + } + + [Test] + + public void PortalSettings_Property_Is_Null_If_Not_Set_In_Context() + { + // Arrange + HttpContextBase context = MockHelper.CreateMockHttpContext(); + + // Act + var controller = this.SetupController(context); + + // Assert + Assert.That(controller.PortalSettings, Is.Null); + } + + [Test] + public void ResultOfLastExecute_Returns_ViewResult() + { + // Arrange + HttpContextBase httpContextBase = MockHelper.CreateMockHttpContext(); + + // Act + var controller = this.SetupController(httpContextBase); + controller.ActionInvoker.InvokeAction(controller.ControllerContext, "Action1"); + + // Assert + Assert.That(controller.ResultOfLastExecute, Is.Not.Null); + Assert.That(controller.ResultOfLastExecute, Is.InstanceOf()); + } + + [Test] + + public void User_Property_Is_Null_If_PortalSettings_Not_Set_In_Context() + { + // Arrange + HttpContextBase httpContextBase = MockHelper.CreateMockHttpContext(); + + // Act + var controller = this.SetupController(httpContextBase); + + // Assert + Assert.That(controller.User, Is.Null); + } + [Test] + public void View_Returns_DnnViewResult() + { + // Arrange + HttpContextBase httpContextBase = MockHelper.CreateMockHttpContext(); + + // Act + var controller = this.SetupController(httpContextBase); + var viewResult = controller.Action1(); + + // Assert + Assert.That(viewResult, Is.InstanceOf()); + } + + [Test] + public void View_Returns_DnnViewResult_With_Correct_ViewName() + { + // Arrange + HttpContextBase httpContextBase = MockHelper.CreateMockHttpContext(); + + // Act + var controller = this.SetupController(httpContextBase); + var viewResult = controller.Action1(); + + // Assert + var dnnViewResult = viewResult as DnnViewResult; + Assert.That(dnnViewResult, Is.Not.Null); + Assert.That(dnnViewResult.ViewName, Is.EqualTo("Action1")); + } + + [Test] + public void View_Returns_DnnViewResult_With_Correct_MasterName() + { + // Arrange + HttpContextBase httpContextBase = MockHelper.CreateMockHttpContext(); + + // Act + var controller = this.SetupController(httpContextBase); + var viewResult = controller.Action2(); + + // Assert + var dnnViewResult = viewResult as DnnViewResult; + Assert.That(dnnViewResult, Is.Not.Null); + Assert.Multiple(() => + { + Assert.That(dnnViewResult.ViewName, Is.EqualTo("Action2")); + Assert.That(dnnViewResult.MasterName, Is.EqualTo("Master2")); + }); + } + + [Test] + public void View_Returns_DnnViewResult_With_Correct_ViewData() + { + // Arrange + HttpContextBase httpContextBase = MockHelper.CreateMockHttpContext(); + + // Act + var controller = this.SetupController(httpContextBase); + controller.ViewData.Add("key", "value"); + var viewResult = controller.Action2(); + + // Assert + var dnnViewResult = viewResult as DnnViewResult; + Assert.That(dnnViewResult, Is.Not.Null); + Assert.That(dnnViewResult.ViewData["key"], Is.EqualTo("value")); + } - public void ActivePage_Property_Is_Null_If_PortalSettings_Not_Set_In_Context() - { - // Arrange - HttpContextBase httpContextBase = MockHelper.CreateMockHttpContext(); - - // Act - var controller = this.SetupController(httpContextBase); - - // Assert - Assert.IsNull(controller.ActivePage); - } - [Test] + public void View_Returns_DnnViewResult_With_Correct_Model() + { + // Arrange + var dog = new Dog() { Name = "Fluffy" }; + HttpContextBase httpContextBase = MockHelper.CreateMockHttpContext(); + + // Act + var controller = this.SetupController(httpContextBase); + var viewResult = controller.Action3(dog); + + // Assert + var dnnViewResult = viewResult as DnnViewResult; + Assert.That(dnnViewResult, Is.Not.Null); + Assert.That(dnnViewResult.ViewData.Model, Is.EqualTo(dog)); + } - public void PortalSettings_Property_Is_Null_If_Not_Set_In_Context() - { - // Arrange - HttpContextBase context = MockHelper.CreateMockHttpContext(); - - // Act - var controller = this.SetupController(context); - - // Assert - Assert.IsNull(controller.PortalSettings); - } - - [Test] - public void ResultOfLastExecute_Returns_ViewResult() - { - // Arrange - HttpContextBase httpContextBase = MockHelper.CreateMockHttpContext(); - - // Act - var controller = this.SetupController(httpContextBase); - controller.ActionInvoker.InvokeAction(controller.ControllerContext, "Action1"); - - // Assert - Assert.NotNull(controller.ResultOfLastExecute); - Assert.IsInstanceOf(controller.ResultOfLastExecute); - } - [Test] + public void View_Returns_DnnViewResult_With_Correct_ViewEngines() + { + // Arrange + var dog = new Dog() { Name = "Fluffy" }; + HttpContextBase httpContextBase = MockHelper.CreateMockHttpContext(); + + // Act + var controller = this.SetupController(httpContextBase); + var viewResult = controller.Action3(dog); + + // Assert + var dnnViewResult = viewResult as DnnViewResult; + Assert.That(dnnViewResult, Is.Not.Null); + Assert.That(dnnViewResult.ViewEngineCollection, Is.EqualTo(controller.ViewEngineCollection)); + } + + [Test] + public void Initialize_CreatesInstance_Of_DnnUrlHelper() + { + // Arrange + HttpContextBase httpContextBase = MockHelper.CreateMockHttpContext(); + + // Act + var controller = this.SetupController(httpContextBase); + controller.MockInitialize(httpContextBase.Request.RequestContext); + + // Assert + Assert.That(controller.Url, Is.Not.Null); + } - public void User_Property_Is_Null_If_PortalSettings_Not_Set_In_Context() - { - // Arrange - HttpContextBase httpContextBase = MockHelper.CreateMockHttpContext(); - - // Act - var controller = this.SetupController(httpContextBase); - - // Assert - Assert.IsNull(controller.User); - } - - [Test] - public void View_Returns_DnnViewResult() - { - // Arrange - HttpContextBase httpContextBase = MockHelper.CreateMockHttpContext(); - - // Act - var controller = this.SetupController(httpContextBase); - var viewResult = controller.Action1(); - - // Assert - Assert.IsInstanceOf(viewResult); - } - - [Test] - public void View_Returns_DnnViewResult_With_Correct_ViewName() - { - // Arrange - HttpContextBase httpContextBase = MockHelper.CreateMockHttpContext(); - - // Act - var controller = this.SetupController(httpContextBase); - var viewResult = controller.Action1(); - - // Assert - var dnnViewResult = viewResult as DnnViewResult; - Assert.NotNull(dnnViewResult); - Assert.AreEqual("Action1", dnnViewResult.ViewName); - } - - [Test] - public void View_Returns_DnnViewResult_With_Correct_MasterName() - { - // Arrange - HttpContextBase httpContextBase = MockHelper.CreateMockHttpContext(); - - // Act - var controller = this.SetupController(httpContextBase); - var viewResult = controller.Action2(); - - // Assert - var dnnViewResult = viewResult as DnnViewResult; - Assert.NotNull(dnnViewResult); - Assert.AreEqual("Action2", dnnViewResult.ViewName); - Assert.AreEqual("Master2", dnnViewResult.MasterName); - } - - [Test] - public void View_Returns_DnnViewResult_With_Correct_ViewData() - { - // Arrange - HttpContextBase httpContextBase = MockHelper.CreateMockHttpContext(); - - // Act - var controller = this.SetupController(httpContextBase); - controller.ViewData.Add("key", "value"); - var viewResult = controller.Action2(); - - // Assert - var dnnViewResult = viewResult as DnnViewResult; - Assert.NotNull(dnnViewResult); - Assert.AreEqual("value", dnnViewResult.ViewData["key"]); - } - - [Test] - public void View_Returns_DnnViewResult_With_Correct_Model() - { - // Arrange - var dog = new Dog() { Name = "Fluffy" }; - HttpContextBase httpContextBase = MockHelper.CreateMockHttpContext(); - - // Act - var controller = this.SetupController(httpContextBase); - var viewResult = controller.Action3(dog); - - // Assert - var dnnViewResult = viewResult as DnnViewResult; - Assert.NotNull(dnnViewResult); - Assert.AreEqual(dog, dnnViewResult.ViewData.Model); - } - - [Test] - public void View_Returns_DnnViewResult_With_Correct_ViewEngines() - { - // Arrange - var dog = new Dog() { Name = "Fluffy" }; - HttpContextBase httpContextBase = MockHelper.CreateMockHttpContext(); - - // Act - var controller = this.SetupController(httpContextBase); - var viewResult = controller.Action3(dog); - - // Assert - var dnnViewResult = viewResult as DnnViewResult; - Assert.NotNull(dnnViewResult); - Assert.AreEqual(controller.ViewEngineCollection, dnnViewResult.ViewEngineCollection); - } - - [Test] - public void Initialize_CreatesInstance_Of_DnnUrlHelper() - { - // Arrange - HttpContextBase httpContextBase = MockHelper.CreateMockHttpContext(); - - // Act - var controller = this.SetupController(httpContextBase); - controller.MockInitialize(httpContextBase.Request.RequestContext); - - // Assert - Assert.NotNull(controller.Url); - } - - private FakeDnnController SetupController(HttpContextBase context) - { - var controller = new FakeDnnController(); - controller.ControllerContext = new ControllerContext(context, new RouteData(), controller); - return controller; - } - } -} + private FakeDnnController SetupController(HttpContextBase context) + { + var controller = new FakeDnnController(); + controller.ControllerContext = new ControllerContext(context, new RouteData(), controller); + return controller; + } + } +} diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Web.Mvc/Framework/DnnWebViewPageTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Web.Mvc/Framework/DnnWebViewPageTests.cs index eee6d94a2ee..9bd9952f3ad 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Web.Mvc/Framework/DnnWebViewPageTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Web.Mvc/Framework/DnnWebViewPageTests.cs @@ -33,8 +33,8 @@ public void InitHelpers_Sets_Dnn_Property() mockViewPage.Object.InitHelpers(); // Assert - Assert.NotNull(mockViewPage.Object.Dnn); - Assert.IsInstanceOf(mockViewPage.Object.Dnn); + Assert.That(mockViewPage.Object.Dnn, Is.Not.Null); + Assert.That(mockViewPage.Object.Dnn, Is.InstanceOf()); } [Test] @@ -54,8 +54,8 @@ public void InitHelpers_Sets_Html_Property() mockViewPage.Object.InitHelpers(); // Assert - Assert.NotNull(mockViewPage.Object.Html); - Assert.IsInstanceOf(mockViewPage.Object.Html); + Assert.That(mockViewPage.Object.Html, Is.Not.Null); + Assert.That(mockViewPage.Object.Html, Is.InstanceOf()); } [Test] @@ -75,8 +75,8 @@ public void InitHelpers_Sets_Dnn_Property_For_Strongly_Typed_Helper() mockViewPage.Object.InitHelpers(); // Assert - Assert.NotNull(mockViewPage.Object.Html); - Assert.IsInstanceOf>(mockViewPage.Object.Html); + Assert.That(mockViewPage.Object.Html, Is.Not.Null); + Assert.That(mockViewPage.Object.Html, Is.InstanceOf>()); } [Test] @@ -96,8 +96,8 @@ public void InitHelpers_Sets_Url_Property() mockViewPage.Object.InitHelpers(); // Assert - Assert.NotNull(mockViewPage.Object.Url); - Assert.IsInstanceOf(mockViewPage.Object.Url); + Assert.That(mockViewPage.Object.Url, Is.Not.Null); + Assert.That(mockViewPage.Object.Url, Is.InstanceOf()); } } } diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Web.Mvc/Framework/ModuleDelegatingViewEngineTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Web.Mvc/Framework/ModuleDelegatingViewEngineTests.cs index ec64ea08ccb..34fe28c4b42 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Web.Mvc/Framework/ModuleDelegatingViewEngineTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Web.Mvc/Framework/ModuleDelegatingViewEngineTests.cs @@ -64,10 +64,13 @@ public void Should_Forward_FindPartialView_To_Current_ModuleApplication_ViewEngi ViewEngineResult engineResult = viewEngine.FindPartialView(context, viewName, true); // Assert - mockEngines.Verify(e => e.FindPartialView(context, viewName)); - Assert.AreEqual("foo", engineResult.SearchedLocations.ElementAt(0)); - Assert.AreEqual("bar", engineResult.SearchedLocations.ElementAt(1)); - Assert.AreEqual("baz", engineResult.SearchedLocations.ElementAt(2)); + mockEngines.Verify(e => e.FindPartialView(context, viewName)); + Assert.Multiple(() => + { + Assert.That(engineResult.SearchedLocations.ElementAt(0), Is.EqualTo("foo")); + Assert.That(engineResult.SearchedLocations.ElementAt(1), Is.EqualTo("bar")); + Assert.That(engineResult.SearchedLocations.ElementAt(2), Is.EqualTo("baz")); + }); } [Test] @@ -97,10 +100,13 @@ public void Should_Forward_FindView_To_Current_ModuleApplication_ViewEngineColle var engineResult = viewEngine.FindView(context, viewName, masterName, true); // Assert - mockEngines.Verify(e => e.FindView(context, viewName, masterName)); - Assert.AreEqual("foo", engineResult.SearchedLocations.ElementAt(0)); - Assert.AreEqual("bar", engineResult.SearchedLocations.ElementAt(1)); - Assert.AreEqual("baz", engineResult.SearchedLocations.ElementAt(2)); + mockEngines.Verify(e => e.FindView(context, viewName, masterName)); + Assert.Multiple(() => + { + Assert.That(engineResult.SearchedLocations.ElementAt(0), Is.EqualTo("foo")); + Assert.That(engineResult.SearchedLocations.ElementAt(1), Is.EqualTo("bar")); + Assert.That(engineResult.SearchedLocations.ElementAt(2), Is.EqualTo("baz")); + }); } [Test] @@ -183,9 +189,12 @@ public void Should_Return_Failed_ViewEngineResult_For_FindView_If_No_Current_Mod var engineResult = viewEngine.FindView(context, "Foo", "Bar", true); // Assert - Assert.IsNotNull(engineResult); - Assert.IsNull(engineResult.View); - Assert.AreEqual(0, engineResult.SearchedLocations.Count()); + Assert.That(engineResult, Is.Not.Null); + Assert.Multiple(() => + { + Assert.That(engineResult.View, Is.Null); + Assert.That(engineResult.SearchedLocations.Count(), Is.EqualTo(0)); + }); } [Test] @@ -203,9 +212,12 @@ public void Should_Return_Failed_ViewEngineResult_For_FindPartialView_If_No_Curr var engineResult = viewEngine.FindPartialView(context, "Foo", true); // Assert - Assert.IsNotNull(engineResult); - Assert.IsNull(engineResult.View); - Assert.AreEqual(0, engineResult.SearchedLocations.Count()); + Assert.That(engineResult, Is.Not.Null); + Assert.Multiple(() => + { + Assert.That(engineResult.View, Is.Null); + Assert.That(engineResult.SearchedLocations.Count(), Is.EqualTo(0)); + }); } private static void SetupMockModuleApplication(ControllerContext context, ViewEngineCollection engines) diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Web.Mvc/Framework/Modules/ModuleApplicationTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Web.Mvc/Framework/Modules/ModuleApplicationTests.cs index b5ba42224f8..312316ed2df 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Web.Mvc/Framework/Modules/ModuleApplicationTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Web.Mvc/Framework/Modules/ModuleApplicationTests.cs @@ -64,7 +64,7 @@ public void Init_Is_Called_In_First_ExecuteRequest_And_Not_In_Subsequent_Request app.Object.ExecuteRequest(CreateModuleContext(ControllerName, ActionName)); // Assert - Assert.AreEqual(1, initCounter); + Assert.That(initCounter, Is.EqualTo(1)); } [Test] @@ -89,7 +89,7 @@ public void ExecuteRequest_Calls_ControllerFactory_To_Construct_Controller() // Assert controllerFactory.Verify(f => f.CreateController(It.IsAny(), ControllerName)); - Assert.AreSame(moduleRequestContext.HttpContext, actualRequestContext.HttpContext); + Assert.That(actualRequestContext.HttpContext, Is.SameAs(moduleRequestContext.HttpContext)); } [Test] @@ -166,11 +166,14 @@ public void ExecuteRequest_Returns_Result_And_ControllerContext_From_Controller( ModuleRequestContext moduleRequestContext = CreateModuleContext(ControllerName, ActionName); // Act - ModuleRequestResult result = app.ExecuteRequest(moduleRequestContext); - - // Assert - Assert.AreSame(actionResult, result.ActionResult); - Assert.AreSame(controllerContext, result.ControllerContext); + ModuleRequestResult result = app.ExecuteRequest(moduleRequestContext); + + Assert.Multiple(() => + { + // Assert + Assert.That(result.ActionResult, Is.SameAs(actionResult)); + Assert.That(result.ControllerContext, Is.SameAs(controllerContext)); + }); } [Test] diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Web.Mvc/Framework/Modules/ModuleExecutionEngineTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Web.Mvc/Framework/Modules/ModuleExecutionEngineTests.cs index 2b2e3d91460..acdaaf9478d 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Web.Mvc/Framework/Modules/ModuleExecutionEngineTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Web.Mvc/Framework/Modules/ModuleExecutionEngineTests.cs @@ -43,7 +43,7 @@ public void ExecuteModule_Returns_Null_If_Application_Is_Null() ModuleRequestResult result = engine.ExecuteModule(requestContext); // Assert - Assert.IsNull(result); + Assert.That(result, Is.Null); } [Test] @@ -80,7 +80,7 @@ public void ExecuteModule_Returns_Result_Of_Executing_ModuleApplication() ModuleRequestResult actual = engine.ExecuteModule(requestContext); // Assert - Assert.AreSame(expected, actual); + Assert.That(actual, Is.SameAs(expected)); } [Test] diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Web.Mvc/Framework/Modules/ResultCapturingActionInvokerTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Web.Mvc/Framework/Modules/ResultCapturingActionInvokerTests.cs index cd2647f3a8a..f450537eba8 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Web.Mvc/Framework/Modules/ResultCapturingActionInvokerTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Web.Mvc/Framework/Modules/ResultCapturingActionInvokerTests.cs @@ -2,119 +2,119 @@ // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information -namespace DotNetNuke.Tests.Web.Mvc.Framework.Modules -{ - using System; - using System.Web; - using System.Web.Mvc; - using System.Web.Routing; - - using DotNetNuke.Tests.Web.Mvc.Fakes; - using DotNetNuke.Tests.Web.Mvc.Fakes.Filters; - using DotNetNuke.Web.Mvc.Framework.Modules; - using NUnit.Framework; - - [TestFixture] - public class ResultCapturingActionInvokerTests - { - private ResultCapturingActionInvoker _actionInvoker; - - [SetUp] - public void Setup() - { - this._actionInvoker = new ResultCapturingActionInvoker(); - } - - [TearDown] - public void TearDown() - { - this._actionInvoker = null; - } - - [Test] - public void InvokeActionResult_Sets_ResultOfLastInvoke() - { - // Arrange - HttpContextBase context = MockHelper.CreateMockHttpContext(); - - var controller = new FakeController(); - controller.ControllerContext = new ControllerContext(context, new RouteData(), controller); - - // Act - this._actionInvoker.InvokeAction(controller.ControllerContext, "Index"); - - // Assert - Assert.IsNotNull(this._actionInvoker.ResultOfLastInvoke); - Assert.IsInstanceOf(this._actionInvoker.ResultOfLastInvoke); - } - - [Test] - public void ActionInvoker_InvokeExceptionFilters_IsExceptionHandled_True() - { - // Arrange - var httpContextBase = MockHelper.CreateMockHttpContext(); - var controller = this.SetupController(httpContextBase); - FakeHandleExceptionRedirectAttribute.IsExceptionHandled = true; - var expectedResult = FakeHandleExceptionRedirectAttribute.Result; - - // Act - this._actionInvoker.InvokeAction(controller.ControllerContext, nameof(FakeDnnController.ActionWithExceptionFilter)); - - // Assert - Assert.AreEqual(expectedResult, this._actionInvoker.ResultOfLastInvoke); - } - - [Test] - public void ActionInvoker_InvokeExceptionFilters_IsExceptionHandled_False() - { - // Arrange - var httpContextBase = MockHelper.CreateMockHttpContext(); - var controller = this.SetupController(httpContextBase); - FakeHandleExceptionRedirectAttribute.IsExceptionHandled = false; - var expectedResult = FakeRedirectAttribute.Result; - - // Act - Assert.Throws(() => this._actionInvoker.InvokeAction(controller.ControllerContext, nameof(FakeDnnController.ActionWithExceptionFilter))); - - // Assert - Assert.AreEqual(expectedResult, this._actionInvoker.ResultOfLastInvoke); - } - - [Test] - public void ActionInvoker_InvokeOnExecutingFilters() - { - // Arrange - var httpContextBase = MockHelper.CreateMockHttpContext(); - var controller = this.SetupController(httpContextBase); - var expectedResult = FakeRedirectAttribute.Result; - - // Act - this._actionInvoker.InvokeAction(controller.ControllerContext, nameof(FakeDnnController.ActionWithOnExecutingFilter)); - - // Assert - Assert.AreEqual(expectedResult, this._actionInvoker.ResultOfLastInvoke); - } - - [Test] - public void ActionInvoker_InvokeOnExecutedFilters() - { - // Arrange - var httpContextBase = MockHelper.CreateMockHttpContext(); - var controller = this.SetupController(httpContextBase); - var expectedResult = FakeRedirectAttribute.Result; - - // Act - this._actionInvoker.InvokeAction(controller.ControllerContext, nameof(FakeDnnController.ActionWithOnExecutedFilter)); - - // Assert - Assert.AreEqual(expectedResult, this._actionInvoker.ResultOfLastInvoke); - } - - private FakeDnnController SetupController(HttpContextBase context) - { - var controller = new FakeDnnController(); - controller.ControllerContext = new ControllerContext(context, new RouteData(), controller); - return controller; - } - } -} +namespace DotNetNuke.Tests.Web.Mvc.Framework.Modules +{ + using System; + using System.Web; + using System.Web.Mvc; + using System.Web.Routing; + + using DotNetNuke.Tests.Web.Mvc.Fakes; + using DotNetNuke.Tests.Web.Mvc.Fakes.Filters; + using DotNetNuke.Web.Mvc.Framework.Modules; + using NUnit.Framework; + + [TestFixture] + public class ResultCapturingActionInvokerTests + { + private ResultCapturingActionInvoker _actionInvoker; + + [SetUp] + public void Setup() + { + this._actionInvoker = new ResultCapturingActionInvoker(); + } + + [TearDown] + public void TearDown() + { + this._actionInvoker = null; + } + + [Test] + public void InvokeActionResult_Sets_ResultOfLastInvoke() + { + // Arrange + HttpContextBase context = MockHelper.CreateMockHttpContext(); + + var controller = new FakeController(); + controller.ControllerContext = new ControllerContext(context, new RouteData(), controller); + + // Act + this._actionInvoker.InvokeAction(controller.ControllerContext, "Index"); + + // Assert + Assert.That(this._actionInvoker.ResultOfLastInvoke, Is.Not.Null); + Assert.That(this._actionInvoker.ResultOfLastInvoke, Is.InstanceOf()); + } + + [Test] + public void ActionInvoker_InvokeExceptionFilters_IsExceptionHandled_True() + { + // Arrange + var httpContextBase = MockHelper.CreateMockHttpContext(); + var controller = this.SetupController(httpContextBase); + FakeHandleExceptionRedirectAttribute.IsExceptionHandled = true; + var expectedResult = FakeHandleExceptionRedirectAttribute.Result; + + // Act + this._actionInvoker.InvokeAction(controller.ControllerContext, nameof(FakeDnnController.ActionWithExceptionFilter)); + + // Assert + Assert.That(this._actionInvoker.ResultOfLastInvoke, Is.EqualTo(expectedResult)); + } + + [Test] + public void ActionInvoker_InvokeExceptionFilters_IsExceptionHandled_False() + { + // Arrange + var httpContextBase = MockHelper.CreateMockHttpContext(); + var controller = this.SetupController(httpContextBase); + FakeHandleExceptionRedirectAttribute.IsExceptionHandled = false; + var expectedResult = FakeRedirectAttribute.Result; + + // Act + Assert.Throws(() => this._actionInvoker.InvokeAction(controller.ControllerContext, nameof(FakeDnnController.ActionWithExceptionFilter))); + + // Assert + Assert.That(this._actionInvoker.ResultOfLastInvoke, Is.EqualTo(expectedResult)); + } + + [Test] + public void ActionInvoker_InvokeOnExecutingFilters() + { + // Arrange + var httpContextBase = MockHelper.CreateMockHttpContext(); + var controller = this.SetupController(httpContextBase); + var expectedResult = FakeRedirectAttribute.Result; + + // Act + this._actionInvoker.InvokeAction(controller.ControllerContext, nameof(FakeDnnController.ActionWithOnExecutingFilter)); + + // Assert + Assert.That(this._actionInvoker.ResultOfLastInvoke, Is.EqualTo(expectedResult)); + } + + [Test] + public void ActionInvoker_InvokeOnExecutedFilters() + { + // Arrange + var httpContextBase = MockHelper.CreateMockHttpContext(); + var controller = this.SetupController(httpContextBase); + var expectedResult = FakeRedirectAttribute.Result; + + // Act + this._actionInvoker.InvokeAction(controller.ControllerContext, nameof(FakeDnnController.ActionWithOnExecutedFilter)); + + // Assert + Assert.That(this._actionInvoker.ResultOfLastInvoke, Is.EqualTo(expectedResult)); + } + + private FakeDnnController SetupController(HttpContextBase context) + { + var controller = new FakeDnnController(); + controller.ControllerContext = new ControllerContext(context, new RouteData(), controller); + return controller; + } + } +} diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Web.Mvc/Helpers/DnnHelperTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Web.Mvc/Helpers/DnnHelperTests.cs index 46a22f77de5..b474100da04 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Web.Mvc/Helpers/DnnHelperTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Web.Mvc/Helpers/DnnHelperTests.cs @@ -67,7 +67,7 @@ public void Constructor_Sets_ModuleContext_Property() var helper = new DnnHelper(this._viewContext, this._mockViewDataContainer.Object); // Assert - Assert.AreEqual(expectedContext, helper.ModuleContext); + Assert.That(helper.ModuleContext, Is.EqualTo(expectedContext)); } } } diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Web.Mvc/Helpers/DnnHtmlHelperTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Web.Mvc/Helpers/DnnHtmlHelperTests.cs index 1ac08086873..2003855f161 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Web.Mvc/Helpers/DnnHtmlHelperTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Web.Mvc/Helpers/DnnHtmlHelperTests.cs @@ -114,7 +114,7 @@ public void Constructor_Sets_ModuleContext_Property() var helper = new DnnHtmlHelper(viewContext, viewDataContainer.Object); // Assert - Assert.AreEqual(expectedContext, helper.ModuleContext); + Assert.That(helper.ModuleContext, Is.EqualTo(expectedContext)); } [Test] @@ -134,7 +134,7 @@ public void Strongly_Typed_Constructor_Sets_ModuleContext_Property() var helper = new DnnHtmlHelper(viewContext, mockViewDataContainer.Object); // Assert - Assert.AreEqual(expectedContext, helper.ModuleContext); + Assert.That(helper.ModuleContext, Is.EqualTo(expectedContext)); } [Test] @@ -152,7 +152,7 @@ public void ViewContext_Property_Returns_Passed_in_ViewContext() var helper = new DnnHtmlHelper(viewContext, mockViewDataContainer.Object); // Assert - Assert.AreEqual(viewContext, helper.ViewContext); + Assert.That(helper.ViewContext, Is.EqualTo(viewContext)); } [Test] @@ -172,7 +172,7 @@ public void ViewDataContainer_Property_Returns_Passed_in_ViewDataContainer() var helper = new DnnHtmlHelper(viewContext, mockViewDataContainer.Object); // Assert - Assert.AreEqual(expectedViewData, helper.ViewData); + Assert.That(helper.ViewData, Is.EqualTo(expectedViewData)); } [Test] @@ -194,7 +194,7 @@ public void Strongly_Typed_ViewDataContainer_Property_Returns_Passed_in_Model() var helper = new DnnHtmlHelper(viewContext, mockViewDataContainer.Object); // Assert - Assert.AreEqual(expectedModel, helper.ViewData.Model); + Assert.That(helper.ViewData.Model, Is.EqualTo(expectedModel)); } [Test] @@ -214,7 +214,7 @@ public void EnableClientValidation_Updates_Context() mockViewPage.Object.Html.EnableClientValidation(true); // Assert - Assert.IsTrue(mockViewPage.Object.ViewContext.ClientValidationEnabled); + Assert.That(mockViewPage.Object.ViewContext.ClientValidationEnabled, Is.True); } [Test] @@ -234,7 +234,7 @@ public void EnableUnobtrusiveJavaScript_Updates_Context() mockViewPage.Object.Html.EnableUnobtrusiveJavaScript(true); // Assert - Assert.IsTrue(mockViewPage.Object.ViewContext.UnobtrusiveJavaScriptEnabled); + Assert.That(mockViewPage.Object.ViewContext.UnobtrusiveJavaScriptEnabled, Is.True); } } } diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Web.Mvc/Helpers/DnnUrlHelperTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Web.Mvc/Helpers/DnnUrlHelperTests.cs index 830e70e18cb..d1128507d0c 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Web.Mvc/Helpers/DnnUrlHelperTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Web.Mvc/Helpers/DnnUrlHelperTests.cs @@ -2,320 +2,329 @@ // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information -// ReSharper disable ObjectCreationAsStatement -namespace DotNetNuke.Tests.Web.Mvc.Helpers -{ - using System; - using System.Web.Mvc; - using System.Web.Routing; - - using DotNetNuke.ComponentModel; - using DotNetNuke.Tests.Utilities.Mocks; - using DotNetNuke.UI.Modules; - using DotNetNuke.Web.Mvc.Framework.Controllers; - using DotNetNuke.Web.Mvc.Helpers; - using DotNetNuke.Web.Mvc.Routing; - using Moq; - using NUnit.Framework; - - [TestFixture] - public class DnnUrlHelperTests - { - [SetUp] - public void SetUp() - { - MockComponentProvider.ResetContainer(); - } - - [Test] - public void Constructor_Throws_On_Null_ViewContext() - { - // Act,Assert - Assert.Throws(() => new DnnUrlHelper(null)); - } - - [Test] - public void Constructor_Throws_On_Null_RequestContext() - { - // Act,Assert - Assert.Throws(() => new DnnUrlHelper(null, new Mock().Object)); - } - - [Test] - public void Constructor_Throws_On_Null_Controller() - { - // Act,Assert - Assert.Throws(() => new DnnUrlHelper(new Mock().Object, null)); - } - - [Test] - public void Constructor_Throws_On_Invalid_Controller_Property() - { - // Arrange - var mockController = new Mock(); - var viewContext = new ViewContext { Controller = mockController.Object }; - - // Act,Assert - Assert.Throws(() => new DnnUrlHelper(viewContext)); - } - - [Test] - public void ViewContext_Constructor_Sets_ModuleContext_Property() - { - // Arrange - var mockController = new Mock(); - var mockDnnController = mockController.As(); - var expectedContext = new ModuleInstanceContext(); - mockDnnController.Setup(c => c.ModuleContext).Returns(expectedContext); - var viewContext = new ViewContext { Controller = mockController.Object }; - - // Act - var helper = new DnnUrlHelper(viewContext); - - // Assert - Assert.AreEqual(expectedContext, helper.ModuleContext); - } - - [Test] - public void RequestContext_Constructor_Sets_ModuleContext_Property() - { - // Arrange - var expectedContext = new ModuleInstanceContext(); - - var mockController = new Mock(); - mockController.SetupGet(c => c.ModuleContext) - .Returns(expectedContext); - - var requestContext = new RequestContext(); - - // Act - var helper = new DnnUrlHelper(requestContext, mockController.Object); - - // Assert - Assert.NotNull(helper); - Assert.AreEqual(expectedContext, helper.ModuleContext); - } - - [Test] - public void Action_Method_ViewContext_RetrievesRawUrl() - { - // Arrange - var expectedContext = new ModuleInstanceContext(); - var rawUrl = "http://base.url/"; - var helper = ArrangeHelper(expectedContext, rawUrl); - - // Act - var result = helper.Action(); - - // Assert - Assert.NotNull(result); - Assert.AreEqual(rawUrl, result); - } - - [Test] - public void Action_Method_RequestContext_RetrievesRawUrl() - { - // Arrange - var expectedContext = new ModuleInstanceContext(); - var rawUrl = "http://base.url/"; - var helper = ArrangeHelper(expectedContext, rawUrl, false); - - // Act - var result = helper.Action(); - - // Assert - Assert.NotNull(result); - Assert.AreEqual(rawUrl, result); - } - - [Test] - public void Action_Method_Calls_ModuleRouteProvider() - { - // Arrange - var expectedContext = new ModuleInstanceContext(); - var helper = ArrangeHelper(expectedContext); - - var mockRouteProvider = new Mock(); - ComponentFactory.RegisterComponentInstance(mockRouteProvider.Object); - - // Act - helper.Action("foo"); - - // Assert - mockRouteProvider.Verify(p => p.GenerateUrl(It.IsAny(), expectedContext)); - } - - [Test] - public void Action_Overload_1__Method_Calls_ModuleRouteProvider() - { - // Arrange - var expectedContext = new ModuleInstanceContext(); - var helper = ArrangeHelper(expectedContext); - - var mockRouteProvider = new Mock(); - ComponentFactory.RegisterComponentInstance(mockRouteProvider.Object); - - // Act - helper.Action("foo", new RouteValueDictionary()); - - // Assert - mockRouteProvider.Verify(p => p.GenerateUrl(It.IsAny(), expectedContext)); - } - - [Test] - public void Action_Overload_2_Method_Calls_ModuleRouteProvider() - { - // Arrange - var expectedContext = new ModuleInstanceContext(); - var helper = ArrangeHelper(expectedContext); - - var mockRouteProvider = new Mock(); - ComponentFactory.RegisterComponentInstance(mockRouteProvider.Object); - - // Act - helper.Action("foo", "bar"); - - // Assert - mockRouteProvider.Verify(p => p.GenerateUrl(It.IsAny(), expectedContext)); - } - - [Test] - public void Action_Overload_3_Method_Calls_ModuleRouteProvider() - { - // Arrange - var expectedContext = new ModuleInstanceContext(); - var helper = ArrangeHelper(expectedContext); - - var mockRouteProvider = new Mock(); - ComponentFactory.RegisterComponentInstance(mockRouteProvider.Object); - - // Act - helper.Action("foo", "bar", new RouteValueDictionary()); - - // Assert - mockRouteProvider.Verify(p => p.GenerateUrl(It.IsAny(), expectedContext)); - } - - [Test] - public void Action_Overload_4_Method_Calls_ModuleRouteProvider() - { - // Arrange - var expectedContext = new ModuleInstanceContext(); - var helper = ArrangeHelper(expectedContext); - - var mockRouteProvider = new Mock(); - ComponentFactory.RegisterComponentInstance(mockRouteProvider.Object); - - // Act - helper.Action("foo", new { id = 5 }); - - // Assert - mockRouteProvider.Verify(p => p.GenerateUrl(It.IsAny(), expectedContext)); - } - - [Test] - public void Action_Overload_5_Method_Calls_ModuleRouteProvider() - { - // Arrange - var expectedContext = new ModuleInstanceContext(); - var helper = ArrangeHelper(expectedContext); - - var mockRouteProvider = new Mock(); - ComponentFactory.RegisterComponentInstance(mockRouteProvider.Object); - - // Act - helper.Action("foo", "bar", new { id = 5 }); - - // Assert - mockRouteProvider.Verify(p => p.GenerateUrl(It.IsAny(), expectedContext)); - } - - [Test] - public void Content_Method_Calls_Returns_Correct_Url() - { - // Arrange - var context = new ModuleInstanceContext(); - var helper = ArrangeHelper(context, "http://foo.com/foo"); - string expectedResult = "/foo/test.css"; - - // Act - var url = helper.Content("~/test.css"); - - // Assert - Assert.IsNotNull(url); - Assert.True(expectedResult.Equals(url)); - } - - [Test] - public void IsLocalUrl_Method_Calls_Returns_Correct_Result() - { - // Arrange - var context = new ModuleInstanceContext(); - var helper = ArrangeHelper(context, "http://foo.com"); - - // Act - var withOuterUrl = helper.IsLocalUrl("http://dnnsoftware.com"); - var withLocalUrl = helper.IsLocalUrl("~/foo/foo.html"); - - // Assert - Assert.IsFalse(withOuterUrl); - Assert.IsTrue(withLocalUrl); - } - - [Test] - public void GenerateUrl_Method_Passes_Correct_RouteValueCollection_To_ModuleRouteProvider() - { - // Arrange - var expectedContext = new ModuleInstanceContext(); - var helper = ArrangeHelper(expectedContext); - - RouteValueDictionary routeValues = null; - var mockRouteProvider = new Mock(); - mockRouteProvider.Setup(p => p.GenerateUrl(It.IsAny(), expectedContext)) - .Callback((r, c) => routeValues = r); - - ComponentFactory.RegisterComponentInstance(mockRouteProvider.Object); - - // Act - helper.Action("foo", "bar", new { id = 5 }); - - // Assert - Assert.AreEqual(3, routeValues.Values.Count); - Assert.IsTrue(routeValues.ContainsKey("action")); - Assert.IsTrue(routeValues.ContainsKey("controller")); - Assert.IsTrue(routeValues.ContainsKey("id")); - Assert.AreEqual("foo", (string)routeValues["action"]); - Assert.AreEqual("bar", (string)routeValues["controller"]); - Assert.AreEqual(5, (int)routeValues["id"]); - } - - private static DnnUrlHelper ArrangeHelper(ModuleInstanceContext expectedContext, string url = null, bool isViewContext = true) - { - var mockController = new Mock(); - var mockDnnController = mockController.As(); - - var routeData = new RouteData(); - routeData.Values["controller"] = "bar"; - routeData.Values["action"] = "foo"; - var context = MockHelper.CreateMockControllerContext(url != null ? MockHelper.CreateMockHttpContext(url) : null, routeData); - - mockDnnController.Setup(c => c.ModuleContext).Returns(expectedContext); - mockDnnController.Setup(c => c.ControllerContext).Returns(context); - - if (isViewContext) - { - var viewContext = new ViewContext { Controller = mockController.Object }; - - if (!string.IsNullOrEmpty(url)) - { - viewContext.RequestContext = new RequestContext(MockHelper.CreateMockHttpContext(url), routeData); - } - - return new DnnUrlHelper(viewContext); - } - - var requestContext = new RequestContext(MockHelper.CreateMockHttpContext(url ?? "http://base/"), routeData); - return new DnnUrlHelper(requestContext, mockDnnController.Object); - } - } -} +// ReSharper disable ObjectCreationAsStatement +namespace DotNetNuke.Tests.Web.Mvc.Helpers +{ + using System; + using System.Web.Mvc; + using System.Web.Routing; + + using DotNetNuke.ComponentModel; + using DotNetNuke.Tests.Utilities.Mocks; + using DotNetNuke.UI.Modules; + using DotNetNuke.Web.Mvc.Framework.Controllers; + using DotNetNuke.Web.Mvc.Helpers; + using DotNetNuke.Web.Mvc.Routing; + using Moq; + using NUnit.Framework; + + [TestFixture] + public class DnnUrlHelperTests + { + [SetUp] + public void SetUp() + { + MockComponentProvider.ResetContainer(); + } + + [Test] + public void Constructor_Throws_On_Null_ViewContext() + { + // Act,Assert + Assert.Throws(() => new DnnUrlHelper(null)); + } + + [Test] + public void Constructor_Throws_On_Null_RequestContext() + { + // Act,Assert + Assert.Throws(() => new DnnUrlHelper(null, new Mock().Object)); + } + + [Test] + public void Constructor_Throws_On_Null_Controller() + { + // Act,Assert + Assert.Throws(() => new DnnUrlHelper(new Mock().Object, null)); + } + + [Test] + public void Constructor_Throws_On_Invalid_Controller_Property() + { + // Arrange + var mockController = new Mock(); + var viewContext = new ViewContext { Controller = mockController.Object }; + + // Act,Assert + Assert.Throws(() => new DnnUrlHelper(viewContext)); + } + + [Test] + public void ViewContext_Constructor_Sets_ModuleContext_Property() + { + // Arrange + var mockController = new Mock(); + var mockDnnController = mockController.As(); + var expectedContext = new ModuleInstanceContext(); + mockDnnController.Setup(c => c.ModuleContext).Returns(expectedContext); + var viewContext = new ViewContext { Controller = mockController.Object }; + + // Act + var helper = new DnnUrlHelper(viewContext); + + // Assert + Assert.That(helper.ModuleContext, Is.EqualTo(expectedContext)); + } + + [Test] + public void RequestContext_Constructor_Sets_ModuleContext_Property() + { + // Arrange + var expectedContext = new ModuleInstanceContext(); + + var mockController = new Mock(); + mockController.SetupGet(c => c.ModuleContext) + .Returns(expectedContext); + + var requestContext = new RequestContext(); + + // Act + var helper = new DnnUrlHelper(requestContext, mockController.Object); + + // Assert + Assert.That(helper, Is.Not.Null); + Assert.That(helper.ModuleContext, Is.EqualTo(expectedContext)); + } + + [Test] + public void Action_Method_ViewContext_RetrievesRawUrl() + { + // Arrange + var expectedContext = new ModuleInstanceContext(); + var rawUrl = "http://base.url/"; + var helper = ArrangeHelper(expectedContext, rawUrl); + + // Act + var result = helper.Action(); + + // Assert + Assert.That(result, Is.Not.Null); + Assert.That(result, Is.EqualTo(rawUrl)); + } + + [Test] + public void Action_Method_RequestContext_RetrievesRawUrl() + { + // Arrange + var expectedContext = new ModuleInstanceContext(); + var rawUrl = "http://base.url/"; + var helper = ArrangeHelper(expectedContext, rawUrl, false); + + // Act + var result = helper.Action(); + + // Assert + Assert.That(result, Is.Not.Null); + Assert.That(result, Is.EqualTo(rawUrl)); + } + + [Test] + public void Action_Method_Calls_ModuleRouteProvider() + { + // Arrange + var expectedContext = new ModuleInstanceContext(); + var helper = ArrangeHelper(expectedContext); + + var mockRouteProvider = new Mock(); + ComponentFactory.RegisterComponentInstance(mockRouteProvider.Object); + + // Act + helper.Action("foo"); + + // Assert + mockRouteProvider.Verify(p => p.GenerateUrl(It.IsAny(), expectedContext)); + } + + [Test] + public void Action_Overload_1__Method_Calls_ModuleRouteProvider() + { + // Arrange + var expectedContext = new ModuleInstanceContext(); + var helper = ArrangeHelper(expectedContext); + + var mockRouteProvider = new Mock(); + ComponentFactory.RegisterComponentInstance(mockRouteProvider.Object); + + // Act + helper.Action("foo", new RouteValueDictionary()); + + // Assert + mockRouteProvider.Verify(p => p.GenerateUrl(It.IsAny(), expectedContext)); + } + + [Test] + public void Action_Overload_2_Method_Calls_ModuleRouteProvider() + { + // Arrange + var expectedContext = new ModuleInstanceContext(); + var helper = ArrangeHelper(expectedContext); + + var mockRouteProvider = new Mock(); + ComponentFactory.RegisterComponentInstance(mockRouteProvider.Object); + + // Act + helper.Action("foo", "bar"); + + // Assert + mockRouteProvider.Verify(p => p.GenerateUrl(It.IsAny(), expectedContext)); + } + + [Test] + public void Action_Overload_3_Method_Calls_ModuleRouteProvider() + { + // Arrange + var expectedContext = new ModuleInstanceContext(); + var helper = ArrangeHelper(expectedContext); + + var mockRouteProvider = new Mock(); + ComponentFactory.RegisterComponentInstance(mockRouteProvider.Object); + + // Act + helper.Action("foo", "bar", new RouteValueDictionary()); + + // Assert + mockRouteProvider.Verify(p => p.GenerateUrl(It.IsAny(), expectedContext)); + } + + [Test] + public void Action_Overload_4_Method_Calls_ModuleRouteProvider() + { + // Arrange + var expectedContext = new ModuleInstanceContext(); + var helper = ArrangeHelper(expectedContext); + + var mockRouteProvider = new Mock(); + ComponentFactory.RegisterComponentInstance(mockRouteProvider.Object); + + // Act + helper.Action("foo", new { id = 5 }); + + // Assert + mockRouteProvider.Verify(p => p.GenerateUrl(It.IsAny(), expectedContext)); + } + + [Test] + public void Action_Overload_5_Method_Calls_ModuleRouteProvider() + { + // Arrange + var expectedContext = new ModuleInstanceContext(); + var helper = ArrangeHelper(expectedContext); + + var mockRouteProvider = new Mock(); + ComponentFactory.RegisterComponentInstance(mockRouteProvider.Object); + + // Act + helper.Action("foo", "bar", new { id = 5 }); + + // Assert + mockRouteProvider.Verify(p => p.GenerateUrl(It.IsAny(), expectedContext)); + } + + [Test] + public void Content_Method_Calls_Returns_Correct_Url() + { + // Arrange + var context = new ModuleInstanceContext(); + var helper = ArrangeHelper(context, "http://foo.com/foo"); + string expectedResult = "/foo/test.css"; + + // Act + var url = helper.Content("~/test.css"); + + Assert.Multiple(() => + { + // Assert + Assert.That(url, Is.Not.Null); + Assert.That(expectedResult.Equals(url), Is.True); + }); + } + + [Test] + public void IsLocalUrl_Method_Calls_Returns_Correct_Result() + { + // Arrange + var context = new ModuleInstanceContext(); + var helper = ArrangeHelper(context, "http://foo.com"); + + // Act + var withOuterUrl = helper.IsLocalUrl("http://dnnsoftware.com"); + var withLocalUrl = helper.IsLocalUrl("~/foo/foo.html"); + + Assert.Multiple(() => + { + // Assert + Assert.That(withOuterUrl, Is.False); + Assert.That(withLocalUrl, Is.True); + }); + } + + [Test] + public void GenerateUrl_Method_Passes_Correct_RouteValueCollection_To_ModuleRouteProvider() + { + // Arrange + var expectedContext = new ModuleInstanceContext(); + var helper = ArrangeHelper(expectedContext); + + RouteValueDictionary routeValues = null; + var mockRouteProvider = new Mock(); + mockRouteProvider.Setup(p => p.GenerateUrl(It.IsAny(), expectedContext)) + .Callback((r, c) => routeValues = r); + + ComponentFactory.RegisterComponentInstance(mockRouteProvider.Object); + + // Act + helper.Action("foo", "bar", new { id = 5 }); + + Assert.Multiple(() => + { + // Assert + Assert.That(routeValues.Values, Has.Count.EqualTo(3)); + Assert.That(routeValues.ContainsKey("action"), Is.True); + Assert.That(routeValues.ContainsKey("controller"), Is.True); + Assert.That(routeValues.ContainsKey("id"), Is.True); + Assert.That((string)routeValues["action"], Is.EqualTo("foo")); + Assert.That((string)routeValues["controller"], Is.EqualTo("bar")); + Assert.That((int)routeValues["id"], Is.EqualTo(5)); + }); + } + + private static DnnUrlHelper ArrangeHelper(ModuleInstanceContext expectedContext, string url = null, bool isViewContext = true) + { + var mockController = new Mock(); + var mockDnnController = mockController.As(); + + var routeData = new RouteData(); + routeData.Values["controller"] = "bar"; + routeData.Values["action"] = "foo"; + var context = MockHelper.CreateMockControllerContext(url != null ? MockHelper.CreateMockHttpContext(url) : null, routeData); + + mockDnnController.Setup(c => c.ModuleContext).Returns(expectedContext); + mockDnnController.Setup(c => c.ControllerContext).Returns(context); + + if (isViewContext) + { + var viewContext = new ViewContext { Controller = mockController.Object }; + + if (!string.IsNullOrEmpty(url)) + { + viewContext.RequestContext = new RequestContext(MockHelper.CreateMockHttpContext(url), routeData); + } + + return new DnnUrlHelper(viewContext); + } + + var requestContext = new RequestContext(MockHelper.CreateMockHttpContext(url ?? "http://base/"), routeData); + return new DnnUrlHelper(requestContext, mockDnnController.Object); + } + } +} diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Web.Mvc/Helpers/ViewResultExtensionsTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Web.Mvc/Helpers/ViewResultExtensionsTests.cs index 0f35fa363fa..0b14972a518 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Web.Mvc/Helpers/ViewResultExtensionsTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Web.Mvc/Helpers/ViewResultExtensionsTests.cs @@ -71,7 +71,7 @@ public void ExecuteResult_Calls_ViewEngine_FindView_If_View_Is_Null() result.ExecuteResult(context, new StringWriter()); // Assert - Assert.AreSame(mockView.Object, result.View); + Assert.That(result.View, Is.SameAs(mockView.Object)); } } } diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Web.Mvc/ResultAssert.cs b/DNN Platform/Tests/DotNetNuke.Tests.Web.Mvc/ResultAssert.cs index d998b903389..9205f152d51 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Web.Mvc/ResultAssert.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Web.Mvc/ResultAssert.cs @@ -15,12 +15,12 @@ public static class ResultAssert { public static void IsEmpty(ActionResult result) { - Assert.IsInstanceOf(result); + Assert.That(result, Is.InstanceOf()); } public static void IsUnauthorized(ActionResult result) { - Assert.IsInstanceOf(result); + Assert.That(result, Is.InstanceOf()); } public static void IsView(ActionResult result, string viewName) @@ -41,7 +41,7 @@ private static TCast AssertCast(this ActionResult result) where TCast : class { var castResult = result as TCast; - Assert.IsNotNull(castResult); + Assert.That(castResult, Is.Not.Null); return castResult; } @@ -49,11 +49,11 @@ private static void StringsEqualOrBothNullOrEmpty(string expected, string actual { if (string.IsNullOrEmpty(expected)) { - Assert.IsTrue(string.IsNullOrEmpty(actual)); + Assert.That(string.IsNullOrEmpty(actual), Is.True); } else { - Assert.AreEqual(expected, actual); + Assert.That(actual, Is.EqualTo(expected)); } } } diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Web.Mvc/Routing/HttpContextExtensionsTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Web.Mvc/Routing/HttpContextExtensionsTests.cs index 3bc8e46c0ef..ab5fd4c0d6c 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Web.Mvc/Routing/HttpContextExtensionsTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Web.Mvc/Routing/HttpContextExtensionsTests.cs @@ -26,7 +26,7 @@ public void GetModuleRequestResult_Returns_ModuleRequestResult_If_Present() var result = httpContext.GetModuleRequestResult(); // Assert - Assert.AreSame(expectedResult, result); + Assert.That(result, Is.SameAs(expectedResult)); } [Test] @@ -39,7 +39,7 @@ public void GetModuleRequestResult_Returns_Null_If_Not_Present() var result = httpContext.GetModuleRequestResult(); // Assert - Assert.IsNull(result); + Assert.That(result, Is.Null); } [Test] @@ -51,7 +51,7 @@ public void HasModuleRequestResult_Returns_True_If_Present() httpContext.Items[HttpContextExtensions.ModuleRequestResultKey] = expectedResult; // Act and Assert - Assert.IsTrue(httpContext.HasModuleRequestResult()); + Assert.That(httpContext.HasModuleRequestResult(), Is.True); } [Test] @@ -61,7 +61,7 @@ public void HasModuleRequestResult_Returns_False_If_Not_Present() HttpContextBase httpContext = MockHelper.CreateMockHttpContext(); // Act and Assert - Assert.IsFalse(httpContext.HasModuleRequestResult()); + Assert.That(httpContext.HasModuleRequestResult(), Is.False); } [Test] @@ -76,8 +76,8 @@ public void SetModuleRequestResult_Sets_ModuleRequestResult() // Assert var actual = context.Items[HttpContextExtensions.ModuleRequestResultKey]; - Assert.IsNotNull(actual); - Assert.IsInstanceOf(actual); + Assert.That(actual, Is.Not.Null); + Assert.That(actual, Is.InstanceOf()); } } } diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Web/Api/BasicAuthMessageHandlerTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Web/Api/BasicAuthMessageHandlerTests.cs index 4cfdc08cbb8..acf84b182a3 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Web/Api/BasicAuthMessageHandlerTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Web/Api/BasicAuthMessageHandlerTests.cs @@ -23,11 +23,14 @@ public void SetsWwwAuthenticateHeaderOn401() // Act var handler = new BasicAuthMessageHandler(true, false); - handler.OnOutboundResponse(response, CancellationToken.None); - - // Assert - Assert.AreEqual("Basic", response.Headers.WwwAuthenticate.First().Scheme); - Assert.AreEqual("realm=\"DNNAPI\"", response.Headers.WwwAuthenticate.First().Parameter); + handler.OnOutboundResponse(response, CancellationToken.None); + + Assert.Multiple(() => + { + // Assert + Assert.That(response.Headers.WwwAuthenticate.First().Scheme, Is.EqualTo("Basic")); + Assert.That(response.Headers.WwwAuthenticate.First().Parameter, Is.EqualTo("realm=\"DNNAPI\"")); + }); } [Test] @@ -43,7 +46,7 @@ public void OmitsWwwAuthenticateHeaderOn401FromXmlHttpRequest() handler.OnOutboundResponse(response, CancellationToken.None); // Assert - CollectionAssert.IsEmpty(response.Headers.WwwAuthenticate); + Assert.That(response.Headers.WwwAuthenticate, Is.Empty); } [Test] @@ -55,11 +58,14 @@ public void MissingXmlHttpRequestValueDoesntThrowNullException() // Act var handler = new BasicAuthMessageHandler(true, false); - handler.OnOutboundResponse(response, CancellationToken.None); - - // Assert - Assert.AreEqual("Basic", response.Headers.WwwAuthenticate.First().Scheme); - Assert.AreEqual("realm=\"DNNAPI\"", response.Headers.WwwAuthenticate.First().Parameter); + handler.OnOutboundResponse(response, CancellationToken.None); + + Assert.Multiple(() => + { + // Assert + Assert.That(response.Headers.WwwAuthenticate.First().Scheme, Is.EqualTo("Basic")); + Assert.That(response.Headers.WwwAuthenticate.First().Parameter, Is.EqualTo("realm=\"DNNAPI\"")); + }); } [Test] @@ -70,11 +76,14 @@ public void ResponseWithNullRequestReturnsUnauthorized() // Act var handler = new BasicAuthMessageHandler(true, false); - handler.OnOutboundResponse(response, CancellationToken.None); - - // Assert - Assert.AreEqual("Basic", response.Headers.WwwAuthenticate.First().Scheme); - Assert.AreEqual("realm=\"DNNAPI\"", response.Headers.WwwAuthenticate.First().Parameter); + handler.OnOutboundResponse(response, CancellationToken.None); + + Assert.Multiple(() => + { + // Assert + Assert.That(response.Headers.WwwAuthenticate.First().Scheme, Is.EqualTo("Basic")); + Assert.That(response.Headers.WwwAuthenticate.First().Parameter, Is.EqualTo("realm=\"DNNAPI\"")); + }); } // todo unit test actual authentication code diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Web/Api/DigestAuthMessageHandlerTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Web/Api/DigestAuthMessageHandlerTests.cs index cec873fb5e8..e9f7bb77703 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Web/Api/DigestAuthMessageHandlerTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Web/Api/DigestAuthMessageHandlerTests.cs @@ -2,91 +2,100 @@ // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information -namespace DotNetNuke.Tests.Web.Api -{ - using System.Linq; - using System.Net; - using System.Net.Http; - using System.Threading; - - using DotNetNuke.Security.Membership; - using DotNetNuke.Tests.Utilities.Mocks; - using DotNetNuke.Web.Api.Auth; - using NUnit.Framework; - - [TestFixture] - public class DigestAuthMessageHandlerTests - { - [SetUp] - public void Setup() - { - var mockMembership = MockComponentProvider.CreateNew(); - mockMembership.Setup(m => m.PasswordRetrievalEnabled).Returns(true); - } - - [Test] - public void SetsWwwAuthenticateHeaderOn401() - { - // Arrange - var response = new HttpResponseMessage(HttpStatusCode.Unauthorized) { RequestMessage = new HttpRequestMessage() }; - - // Act - var handler = new DigestAuthMessageHandler(true, false); - handler.OnOutboundResponse(response, CancellationToken.None); - - // Assert - Assert.AreEqual("Digest", response.Headers.WwwAuthenticate.First().Scheme); - StringAssert.Contains("realm=\"DNNAPI\"", response.Headers.WwwAuthenticate.First().Parameter); - } - - [Test] - public void OmitsWwwAuthenticateHeaderOn401FromXmlHttpRequest() - { - // Arrange - var response = new HttpResponseMessage(HttpStatusCode.Unauthorized) { RequestMessage = new HttpRequestMessage() }; - response.RequestMessage.Headers.Add("X-REQUESTED-WITH", "XmlHttpRequest"); - - // Act - var handler = new DigestAuthMessageHandler(true, false); - handler.OnOutboundResponse(response, CancellationToken.None); - - // Assert - CollectionAssert.IsEmpty(response.Headers.WwwAuthenticate); - } - - [Test] - public void MissingXmlHttpRequestValueDoesntThrowNullException() - { - // Arrange - var response = new HttpResponseMessage(HttpStatusCode.Unauthorized) { RequestMessage = new HttpRequestMessage() }; - response.RequestMessage.Headers.Add("X-REQUESTED-WITH", string.Empty); - - // Act - var handler = new DigestAuthMessageHandler(true, false); - handler.OnOutboundResponse(response, CancellationToken.None); - - // Assert - Assert.AreEqual("Digest", response.Headers.WwwAuthenticate.First().Scheme); - StringAssert.Contains("realm=\"DNNAPI\"", response.Headers.WwwAuthenticate.First().Parameter); - } - - [Test] - public void ResponseWithNullRequestReturnsUnauthorized() - { - // Arrange - var response = new HttpResponseMessage(HttpStatusCode.Unauthorized) { RequestMessage = null }; - - // Act - var handler = new DigestAuthMessageHandler(true, false); - handler.OnOutboundResponse(response, CancellationToken.None); - - // Assert - Assert.AreEqual("Digest", response.Headers.WwwAuthenticate.First().Scheme); - StringAssert.Contains("realm=\"DNNAPI\"", response.Headers.WwwAuthenticate.First().Parameter); - } - - // todo unit test actual authentication code - // very hard to unit test inbound authentication code as it dips into untestable bits of usercontroller etc. - // need to write controllers with interfaces and servicelocator - } -} +namespace DotNetNuke.Tests.Web.Api +{ + using System.Linq; + using System.Net; + using System.Net.Http; + using System.Threading; + + using DotNetNuke.Security.Membership; + using DotNetNuke.Tests.Utilities.Mocks; + using DotNetNuke.Web.Api.Auth; + using NUnit.Framework; + + [TestFixture] + public class DigestAuthMessageHandlerTests + { + [SetUp] + public void Setup() + { + var mockMembership = MockComponentProvider.CreateNew(); + mockMembership.Setup(m => m.PasswordRetrievalEnabled).Returns(true); + } + + [Test] + public void SetsWwwAuthenticateHeaderOn401() + { + // Arrange + var response = new HttpResponseMessage(HttpStatusCode.Unauthorized) { RequestMessage = new HttpRequestMessage() }; + + // Act + var handler = new DigestAuthMessageHandler(true, false); + handler.OnOutboundResponse(response, CancellationToken.None); + + Assert.Multiple(() => + { + // Assert + Assert.That(response.Headers.WwwAuthenticate.First().Scheme, Is.EqualTo("Digest")); + Assert.That(response.Headers.WwwAuthenticate.First().Parameter, Does.Contain("realm=\"DNNAPI\"")); + }); + } + + [Test] + public void OmitsWwwAuthenticateHeaderOn401FromXmlHttpRequest() + { + // Arrange + var response = new HttpResponseMessage(HttpStatusCode.Unauthorized) { RequestMessage = new HttpRequestMessage() }; + response.RequestMessage.Headers.Add("X-REQUESTED-WITH", "XmlHttpRequest"); + + // Act + var handler = new DigestAuthMessageHandler(true, false); + handler.OnOutboundResponse(response, CancellationToken.None); + + // Assert + Assert.That(response.Headers.WwwAuthenticate, Is.Empty); + } + + [Test] + public void MissingXmlHttpRequestValueDoesntThrowNullException() + { + // Arrange + var response = new HttpResponseMessage(HttpStatusCode.Unauthorized) { RequestMessage = new HttpRequestMessage() }; + response.RequestMessage.Headers.Add("X-REQUESTED-WITH", string.Empty); + + // Act + var handler = new DigestAuthMessageHandler(true, false); + handler.OnOutboundResponse(response, CancellationToken.None); + + Assert.Multiple(() => + { + // Assert + Assert.That(response.Headers.WwwAuthenticate.First().Scheme, Is.EqualTo("Digest")); + Assert.That(response.Headers.WwwAuthenticate.First().Parameter, Does.Contain("realm=\"DNNAPI\"")); + }); + } + + [Test] + public void ResponseWithNullRequestReturnsUnauthorized() + { + // Arrange + var response = new HttpResponseMessage(HttpStatusCode.Unauthorized) { RequestMessage = null }; + + // Act + var handler = new DigestAuthMessageHandler(true, false); + handler.OnOutboundResponse(response, CancellationToken.None); + + Assert.Multiple(() => + { + // Assert + Assert.That(response.Headers.WwwAuthenticate.First().Scheme, Is.EqualTo("Digest")); + Assert.That(response.Headers.WwwAuthenticate.First().Parameter, Does.Contain("realm=\"DNNAPI\"")); + }); + } + + // todo unit test actual authentication code + // very hard to unit test inbound authentication code as it dips into untestable bits of usercontroller etc. + // need to write controllers with interfaces and servicelocator + } +} diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Web/Api/DnnActionFilterProviderTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Web/Api/DnnActionFilterProviderTests.cs index 8083e1970a2..a5b9d5e8407 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Web/Api/DnnActionFilterProviderTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Web/Api/DnnActionFilterProviderTests.cs @@ -54,8 +54,8 @@ public void RequiresHostAttributeAddedWhenNoOtherActionFiltersPresent() var filters = filterProvider.GetFilters(configuration, actionDescriptor).ToList(); // Assert - Assert.AreEqual(1, filters.Count); - Assert.IsInstanceOf(filters.First().Instance); + Assert.That(filters, Has.Count.EqualTo(1)); + Assert.That(filters.First().Instance, Is.InstanceOf()); } [Test] @@ -78,8 +78,8 @@ public void RequiresHostAttributeNotAddedWhenAnOverrideAuthFilterPresent() var filters = filterProvider.GetFilters(configuration, actionDescriptor).ToList(); // Assert - Assert.AreEqual(1, filters.Count); - Assert.IsInstanceOf(filters.First().Instance); + Assert.That(filters, Has.Count.EqualTo(1)); + Assert.That(filters.First().Instance, Is.InstanceOf()); } [Test] @@ -102,8 +102,8 @@ public void RequiresHostAttributeAddedWhenNoOverrideAuthFilterPresent() var filters = filterProvider.GetFilters(configuration, actionDescriptor).ToList(); // Assert - Assert.AreEqual(2, filters.Count); - Assert.IsInstanceOf(filters.Last().Instance); + Assert.That(filters, Has.Count.EqualTo(2)); + Assert.That(filters.Last().Instance, Is.InstanceOf()); } } } diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Web/Api/DnnApiControllerTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Web/Api/DnnApiControllerTests.cs index 29946571d98..99366c64dc7 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Web/Api/DnnApiControllerTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Web/Api/DnnApiControllerTests.cs @@ -43,7 +43,7 @@ public void GetsModuleInfoViaTheTabModuleInfoProviders() var result = controller.ActiveModule; // Assert - Assert.AreEqual(expectedModule, result); + Assert.That(result, Is.EqualTo(expectedModule)); provider.Verify(x => x.TryFindModuleInfo(request, out expectedModule), Times.Once()); } @@ -63,7 +63,7 @@ public void GetsPortalSettingsViaTestablePortalController() // Assert mockPortalController.Verify(x => x.GetCurrentPortalSettings(), Times.Once()); - Assert.AreEqual(expectedPortalSettings, result); + Assert.That(result, Is.EqualTo(expectedPortalSettings)); } internal class DnnApiControllerHelper : DnnApiController diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Web/Api/DnnHttpControllerSelectorTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Web/Api/DnnHttpControllerSelectorTests.cs index a54a9cc4343..148e3e2d3a5 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Web/Api/DnnHttpControllerSelectorTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Web/Api/DnnHttpControllerSelectorTests.cs @@ -49,7 +49,7 @@ public void SelectControllerIsCaseInsensitive(string controllerTypeName) HttpControllerDescriptor descriptor = selector.SelectController(request); // Assert - Assert.AreEqual(controllerType, descriptor.ControllerType); + Assert.That(descriptor.ControllerType, Is.EqualTo(controllerType)); } [Test] diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Web/Api/HttpConfigurationExtensionTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Web/Api/HttpConfigurationExtensionTests.cs index 0dabf013a95..7cca49faf5f 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Web/Api/HttpConfigurationExtensionTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Web/Api/HttpConfigurationExtensionTests.cs @@ -24,7 +24,7 @@ public void GetTabAndModuleInfoProvidersReturnsEmptyWhenNoProvidersAdded() var providers = configuration.GetTabAndModuleInfoProviders(); // Assert - CollectionAssert.IsEmpty(providers); + Assert.That(providers, Is.Empty); } [Test] @@ -37,7 +37,7 @@ public void AddTabAndModuleInfoProviderWorksForFirstProvider() configuration.AddTabAndModuleInfoProvider(new StandardTabAndModuleInfoProvider()); // Assert - Assert.AreEqual(1, ((IEnumerable)configuration.Properties["TabAndModuleInfoProvider"]).Count()); + Assert.That(((IEnumerable)configuration.Properties["TabAndModuleInfoProvider"]).Count(), Is.EqualTo(1)); } [Test] @@ -52,7 +52,7 @@ public void AddTabAndModuleInfoProviderWorksForManyProviders() configuration.AddTabAndModuleInfoProvider(new StandardTabAndModuleInfoProvider()); // Assert - Assert.AreEqual(3, ((IEnumerable)configuration.Properties["TabAndModuleInfoProvider"]).Count()); + Assert.That(((IEnumerable)configuration.Properties["TabAndModuleInfoProvider"]).Count(), Is.EqualTo(3)); } } } diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Web/Api/Internals/DnnDependencyResolverTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Web/Api/Internals/DnnDependencyResolverTests.cs index 9545ed8ae80..8bfe90465b8 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Web/Api/Internals/DnnDependencyResolverTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Web/Api/Internals/DnnDependencyResolverTests.cs @@ -2,135 +2,136 @@ // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information -namespace DotNetNuke.Tests.Web.Api.Internals -{ - using System; - using System.Linq; - using System.Web.Http.Dependencies; - - using DotNetNuke.Services.DependencyInjection; - using DotNetNuke.Web.Api.Internal; - using Microsoft.Extensions.DependencyInjection; - using NUnit.Framework; - - [TestFixture] - public class DnnDependencyResolverTests - { - private IServiceProvider _serviceProvider; - private IDependencyResolver _dependencyResolver; - - private interface ITestService +namespace DotNetNuke.Tests.Web.Api.Internals +{ + using System; + using System.Linq; + using System.Web.Http.Dependencies; + + using DotNetNuke.Services.DependencyInjection; + using DotNetNuke.Web.Api.Internal; + using Microsoft.Extensions.DependencyInjection; + using NUnit.Framework; + + [TestFixture] + public class DnnDependencyResolverTests + { + private IServiceProvider _serviceProvider; + private IDependencyResolver _dependencyResolver; + + private interface ITestService + { + } + + [OneTimeSetUp] + public void FixtureSetUp() + { + var services = new ServiceCollection(); + services.AddSingleton(sp => new FakeScopeAccessor(sp.CreateScope())); + services.AddScoped(typeof(ITestService), typeof(TestService)); + + this._serviceProvider = services.BuildServiceProvider(); + this._dependencyResolver = new DnnDependencyResolver(this._serviceProvider); + } + + [OneTimeTearDown] + public void FixtureTearDown() + { + this._dependencyResolver?.Dispose(); + this._dependencyResolver = null; + + if (this._serviceProvider is IDisposable disposable) + { + disposable.Dispose(); + } + + this._serviceProvider = null; + } + + [Test] + public void NotNull() + { + Assert.That(this._dependencyResolver, Is.Not.Null); + } + + [Test] + public void IsOfTypeDnnDependencyResolver() + { + Assert.That(this._dependencyResolver, Is.InstanceOf()); + } + + [Test] + public void GetTestService() + { + var expected = new TestService(); + var actual = this._dependencyResolver.GetService(typeof(ITestService)); + + Assert.That(actual, Is.Not.Null); + Assert.That(actual.GetType(), Is.EqualTo(expected.GetType())); + } + + [Test] + public void GetTestServices() + { + var expected = new TestService(); + var actual = this._dependencyResolver.GetServices(typeof(ITestService)).ToArray(); + + Assert.That(actual, Is.Not.Null); + Assert.That(actual, Has.Length.EqualTo(1)); + Assert.That(actual[0].GetType(), Is.EqualTo(expected.GetType())); + } + + [Test] + public void BeginScope() { + var actual = this._dependencyResolver.BeginScope(); + + Assert.That(actual, Is.Not.Null); + Assert.That(actual, Is.InstanceOf()); } - - [OneTimeSetUp] - public void FixtureSetUp() - { - var services = new ServiceCollection(); - services.AddSingleton(sp => new FakeScopeAccessor(sp.CreateScope())); - services.AddScoped(typeof(ITestService), typeof(TestService)); - - this._serviceProvider = services.BuildServiceProvider(); - this._dependencyResolver = new DnnDependencyResolver(this._serviceProvider); - } - - [OneTimeTearDown] - public void FixtureTearDown() - { - this._dependencyResolver = null; - - if (this._serviceProvider is IDisposable disposable) - { - disposable.Dispose(); - } - - this._serviceProvider = null; - } - - [Test] - public void NotNull() - { - Assert.NotNull(this._dependencyResolver); - } - - [Test] - public void IsOfTypeDnnDependencyResolver() - { - Assert.IsInstanceOf(this._dependencyResolver); - } - - [Test] - public void GetTestService() - { - var expected = new TestService(); - var actual = this._dependencyResolver.GetService(typeof(ITestService)); - - Assert.NotNull(actual); - Assert.AreEqual(expected.GetType(), actual.GetType()); - } - - [Test] - public void GetTestServices() - { - var expected = new TestService(); - var actual = this._dependencyResolver.GetServices(typeof(ITestService)).ToArray(); - - Assert.NotNull(actual); - Assert.AreEqual(1, actual.Length); - Assert.AreEqual(expected.GetType(), actual[0].GetType()); - } - - [Test] - public void BeginScope() - { - var actual = this._dependencyResolver.BeginScope(); - - Assert.NotNull(actual); - Assert.IsInstanceOf(actual); - } - - [Test] - public void BeginScope_GetService() - { - var scope = this._dependencyResolver.BeginScope(); - - var expected = new TestService(); - var actual = scope.GetService(typeof(ITestService)); - - Assert.NotNull(actual); - Assert.AreEqual(expected.GetType(), actual.GetType()); - } - - [Test] - public void BeginScope_GetServices() - { - var scope = this._dependencyResolver.BeginScope(); - - var expected = new TestService(); - var actual = scope.GetServices(typeof(ITestService)).ToArray(); - - Assert.NotNull(actual); - Assert.AreEqual(1, actual.Length); - Assert.AreEqual(expected.GetType(), actual[0].GetType()); - } - - private class TestService : ITestService + + [Test] + public void BeginScope_GetService() { + var scope = this._dependencyResolver.BeginScope(); + + var expected = new TestService(); + var actual = scope.GetService(typeof(ITestService)); + + Assert.That(actual, Is.Not.Null); + Assert.That(actual.GetType(), Is.EqualTo(expected.GetType())); + } + + [Test] + public void BeginScope_GetServices() + { + var scope = this._dependencyResolver.BeginScope(); + + var expected = new TestService(); + var actual = scope.GetServices(typeof(ITestService)).ToArray(); + + Assert.That(actual, Is.Not.Null); + Assert.That(actual, Has.Length.EqualTo(1)); + Assert.That(actual[0].GetType(), Is.EqualTo(expected.GetType())); + } + + private class TestService : ITestService + { + } + + private class FakeScopeAccessor : IScopeAccessor + { + private IServiceScope fakeScope; + + public FakeScopeAccessor(IServiceScope fakeScope) + { + this.fakeScope = fakeScope; + } + + public IServiceScope GetScope() + { + return this.fakeScope; + } } - - private class FakeScopeAccessor : IScopeAccessor - { - private IServiceScope fakeScope; - - public FakeScopeAccessor(IServiceScope fakeScope) - { - this.fakeScope = fakeScope; - } - - public IServiceScope GetScope() - { - return this.fakeScope; - } - } - } -} + } +} diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Web/Api/Internals/ServiceContainerTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Web/Api/Internals/ServiceContainerTests.cs index f477f7cfd71..ce21659bc6d 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Web/Api/Internals/ServiceContainerTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Web/Api/Internals/ServiceContainerTests.cs @@ -38,11 +38,11 @@ public void FixtureTearDown() [Test] public void CreateScopeWhenRequestDoesNotExists() { - Assert.Null(HttpContextSource.Current?.GetScope()); + Assert.That(HttpContextSource.Current?.GetScope(), Is.Null); var container = ServiceScopeContainer.GetRequestOrCreateScope(); - Assert.True(container.ShouldDispose); + Assert.That(container.ShouldDispose, Is.True); } [Test] @@ -53,12 +53,15 @@ public void UseRequestScopeWhenPossible() HttpContextHelper.RegisterMockHttpContext(); HttpContextSource.Current.SetScope(scope); - Assert.NotNull(HttpContextSource.Current?.GetScope()); + Assert.That(HttpContextSource.Current?.GetScope(), Is.Not.Null); var container = ServiceScopeContainer.GetRequestOrCreateScope(); - Assert.False(container.ShouldDispose); - Assert.AreEqual(scope, container.ServiceScope); + Assert.Multiple(() => + { + Assert.That(container.ShouldDispose, Is.False); + Assert.That(container.ServiceScope, Is.EqualTo(scope)); + }); } } } diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Web/Api/JwtAuthMessageHandlerTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Web/Api/JwtAuthMessageHandlerTests.cs index 84de35c29cd..4f3858f94b3 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Web/Api/JwtAuthMessageHandlerTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Web/Api/JwtAuthMessageHandlerTests.cs @@ -2,334 +2,334 @@ // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information -namespace DotNetNuke.Tests.Web.Api -{ - using System; - using System.Collections.Generic; - using System.Data; - using System.Net; - using System.Net.Http; - using System.Net.Http.Headers; - using System.Security.Cryptography; - using System.Text; - using System.Threading; - - using Dnn.AuthServices.Jwt.Auth; - using Dnn.AuthServices.Jwt.Components.Entity; - using Dnn.AuthServices.Jwt.Data; - using DotNetNuke.Data; - using DotNetNuke.Entities.Portals; - using DotNetNuke.Entities.Users; - using DotNetNuke.Security.Membership; - using DotNetNuke.Tests.Utilities.Mocks; - using DotNetNuke.Web.ConfigSection; - using Moq; - using NUnit.Framework; - - [TestFixture] - public class JwtAuthMessageHandlerTests - { - // { "type":"JWT","alg":"HS256"} . {"sub":"host","nbf":1,"exp":4102444799,"sid":"0123456789ABCDEF"} . (HS256_KEY="secret") - private const string ValidToken = - "eyJ0eXBlIjoiSldUIiwiYWxnIjoiSFMyNTYifQ.eyJzdWIiOiJ1c2VybmFtZSIsIm5iZiI6MSwiZXhwIjo0MTAyNDQ0Nzk5LCJzaWQiOiIwMTIzNDU2Nzg5QUJDREVGIn0.nfWCOVNk5M7L7EPDe3i3j4aAPRerbxgmcjOxaC-LWUQ"; - - private Mock _mockDataProvider; - private Mock _mockMembership; - private Mock _mockDataService; - private Mock _mockJwtDataService; - private Mock _mockUserController; - private Mock _mockPortalController; - - public void SetupMockServices() - { - MockComponentProvider.CreateDataCacheProvider(); - - this._mockDataService = new Mock(); - this._mockDataProvider = MockComponentProvider.CreateDataProvider(); - this._mockPortalController = new Mock(); - this._mockUserController = new Mock(); - this._mockMembership = MockComponentProvider.CreateNew(); - - this._mockDataProvider.Setup(d => d.GetProviderPath()).Returns(string.Empty); - this._mockDataProvider.Setup(d => d.GetPortals(It.IsAny())).Returns(GetPortalsCallBack); - this._mockDataProvider.Setup(d => d.GetUser(It.IsAny(), It.IsAny())).Returns(GetUser); - this._mockDataService.Setup(ds => ds.GetPortalGroups()).Returns(this.GetPortalGroups); - Entities.Portals.Data.DataService.RegisterInstance(this._mockDataService.Object); - - this._mockMembership.Setup(m => m.PasswordRetrievalEnabled).Returns(true); - this._mockMembership.Setup(m => m.GetUser(It.IsAny(), It.IsAny())).Returns((int portalId, int userId) => GetUserByIdCallback(portalId, userId)); - - this._mockJwtDataService = new Mock(); - this._mockJwtDataService.Setup(x => x.GetTokenById(It.IsAny())).Returns((string sid) => GetPersistedToken(sid)); - DataService.RegisterInstance(this._mockJwtDataService.Object); - - PortalController.SetTestableInstance(this._mockPortalController.Object); - this._mockPortalController.Setup(x => x.GetPortal(It.IsAny())).Returns( - new PortalInfo { PortalID = 0, PortalGroupID = -1, UserTabId = 55 }); - this._mockPortalController.Setup(x => x.GetPortalSettings(It.IsAny())).Returns((int portalId) => new Dictionary()); - this._mockPortalController.Setup(x => x.GetCurrentPortalSettings()).Returns(() => new PortalSettings()); - - UserController.SetTestableInstance(this._mockUserController.Object); - this._mockUserController.Setup(x => x.GetUserById(It.IsAny(), It.IsAny())).Returns( - (int portalId, int userId) => GetUserByIdCallback(portalId, userId)); - - // _mockUserController.Setup(x => x.ValidateUser(It.IsAny(), It.IsAny(), It.IsAny())).Returns(UserValidStatus.VALID); - } - - [Test] - public void ReturnsResponseAsReceived() - { - // Arrange - var response = new HttpResponseMessage(HttpStatusCode.OK) { RequestMessage = new HttpRequestMessage() }; - - // Act - var handler = new JwtAuthMessageHandler(true, false); - var response2 = handler.OnOutboundResponse(response, CancellationToken.None); - - // Assert - Assert.AreEqual(response, response2); - } - - [Test] - public void MissingAuthoizationHeaderReturnsNullResponse() - { - // Arrange - var request = new HttpRequestMessage(HttpMethod.Get, "http://localhost/anyuri"); - - // Act - var handler = new JwtAuthMessageHandler(true, false); - var response = handler.OnInboundRequest(request, CancellationToken.None); - - // Assert - Assert.IsNull(response); - } - - [Test] - public void WrongAuthoizationSchemeReturnsNullResponse() - { - // Arrange - var request = new HttpRequestMessage(HttpMethod.Get, "http://localhost/anyuri"); - request.Headers.Authorization = AuthenticationHeaderValue.Parse("Basic "); - - // Act - var handler = new JwtAuthMessageHandler(true, false); - var response = handler.OnInboundRequest(request, CancellationToken.None); - - // Assert - Assert.IsNull(response); - } - - [Test] - public void MissingAuthoizationTokenReturnsNullResponse() - { - // Arrange - var request = new HttpRequestMessage(HttpMethod.Get, "http://localhost/anyuri"); - request.Headers.Authorization = AuthenticationHeaderValue.Parse("Bearer "); - - // Act - var handler = new JwtAuthMessageHandler(true, false); - var response = handler.OnInboundRequest(request, CancellationToken.None); - - // Assert - Assert.IsNull(response); - } - - [Test] - public void AuthoizationTokenWithMissingComponentsReturnsNullResponse() - { - // Arrange - var request = new HttpRequestMessage(HttpMethod.Get, "http://localhost/anyuri"); - request.Headers.Authorization = AuthenticationHeaderValue.Parse( - "Bearer eyJ0eXBlIjoiSldUIiwiYWxnIjoiSFMyNTYifQ.eyJzdWIiOiJ1c2VybmFtZSIsIm5iZiI6MSwiZXhwIjo0MTAyNDQ0Nzk5LCJzaWQiOiIwMTIzNDU2Nzg5QUJDREVGIn0"); - - // Act - var handler = new JwtAuthMessageHandler(true, false); - var response = handler.OnInboundRequest(request, CancellationToken.None); - - // Assert - Assert.IsNull(response); - } - - [Test] - public void AuthoizationTokenWithWrongSchemeTypeReturnsNullResponse() - { - // Arrange - var request = new HttpRequestMessage(HttpMethod.Get, "http://localhost/anyuri"); - request.Headers.Authorization = AuthenticationHeaderValue.Parse( - "Bearer eyJ0eXBlIjoieHh4IiwiYWxnIjoiSFMyNTYifQ.eyJzdWIiOiJ1c2VybmFtZSIsIm5iZiI6MSwiZXhwIjo0MTAyNDQ0Nzk5LCJzaWQiOiIwMTIzNDU2Nzg5QUJDREVGIn0.nfWCOVNk5M7L7EPDe3i3j4aAPRerbxgmcjOxaC-LWUQ"); - - // Act - var handler = new JwtAuthMessageHandler(true, false); - var response = handler.OnInboundRequest(request, CancellationToken.None); - - // Assert - Assert.IsNull(response); - } - +namespace DotNetNuke.Tests.Web.Api +{ + using System; + using System.Collections.Generic; + using System.Data; + using System.Net; + using System.Net.Http; + using System.Net.Http.Headers; + using System.Security.Cryptography; + using System.Text; + using System.Threading; + + using Dnn.AuthServices.Jwt.Auth; + using Dnn.AuthServices.Jwt.Components.Entity; + using Dnn.AuthServices.Jwt.Data; + using DotNetNuke.Data; + using DotNetNuke.Entities.Portals; + using DotNetNuke.Entities.Users; + using DotNetNuke.Security.Membership; + using DotNetNuke.Tests.Utilities.Mocks; + using DotNetNuke.Web.ConfigSection; + using Moq; + using NUnit.Framework; + + [TestFixture] + public class JwtAuthMessageHandlerTests + { + // { "type":"JWT","alg":"HS256"} . {"sub":"host","nbf":1,"exp":4102444799,"sid":"0123456789ABCDEF"} . (HS256_KEY="secret") + private const string ValidToken = + "eyJ0eXBlIjoiSldUIiwiYWxnIjoiSFMyNTYifQ.eyJzdWIiOiJ1c2VybmFtZSIsIm5iZiI6MSwiZXhwIjo0MTAyNDQ0Nzk5LCJzaWQiOiIwMTIzNDU2Nzg5QUJDREVGIn0.nfWCOVNk5M7L7EPDe3i3j4aAPRerbxgmcjOxaC-LWUQ"; + + private Mock _mockDataProvider; + private Mock _mockMembership; + private Mock _mockDataService; + private Mock _mockJwtDataService; + private Mock _mockUserController; + private Mock _mockPortalController; + + public void SetupMockServices() + { + MockComponentProvider.CreateDataCacheProvider(); + + this._mockDataService = new Mock(); + this._mockDataProvider = MockComponentProvider.CreateDataProvider(); + this._mockPortalController = new Mock(); + this._mockUserController = new Mock(); + this._mockMembership = MockComponentProvider.CreateNew(); + + this._mockDataProvider.Setup(d => d.GetProviderPath()).Returns(string.Empty); + this._mockDataProvider.Setup(d => d.GetPortals(It.IsAny())).Returns(GetPortalsCallBack); + this._mockDataProvider.Setup(d => d.GetUser(It.IsAny(), It.IsAny())).Returns(GetUser); + this._mockDataService.Setup(ds => ds.GetPortalGroups()).Returns(this.GetPortalGroups); + Entities.Portals.Data.DataService.RegisterInstance(this._mockDataService.Object); + + this._mockMembership.Setup(m => m.PasswordRetrievalEnabled).Returns(true); + this._mockMembership.Setup(m => m.GetUser(It.IsAny(), It.IsAny())).Returns((int portalId, int userId) => GetUserByIdCallback(portalId, userId)); + + this._mockJwtDataService = new Mock(); + this._mockJwtDataService.Setup(x => x.GetTokenById(It.IsAny())).Returns((string sid) => GetPersistedToken(sid)); + DataService.RegisterInstance(this._mockJwtDataService.Object); + + PortalController.SetTestableInstance(this._mockPortalController.Object); + this._mockPortalController.Setup(x => x.GetPortal(It.IsAny())).Returns( + new PortalInfo { PortalID = 0, PortalGroupID = -1, UserTabId = 55 }); + this._mockPortalController.Setup(x => x.GetPortalSettings(It.IsAny())).Returns((int portalId) => new Dictionary()); + this._mockPortalController.Setup(x => x.GetCurrentPortalSettings()).Returns(() => new PortalSettings()); + + UserController.SetTestableInstance(this._mockUserController.Object); + this._mockUserController.Setup(x => x.GetUserById(It.IsAny(), It.IsAny())).Returns( + (int portalId, int userId) => GetUserByIdCallback(portalId, userId)); + + // _mockUserController.Setup(x => x.ValidateUser(It.IsAny(), It.IsAny(), It.IsAny())).Returns(UserValidStatus.VALID); + } + + [Test] + public void ReturnsResponseAsReceived() + { + // Arrange + var response = new HttpResponseMessage(HttpStatusCode.OK) { RequestMessage = new HttpRequestMessage() }; + + // Act + var handler = new JwtAuthMessageHandler(true, false); + var response2 = handler.OnOutboundResponse(response, CancellationToken.None); + + // Assert + Assert.That(response2, Is.EqualTo(response)); + } + + [Test] + public void MissingAuthoizationHeaderReturnsNullResponse() + { + // Arrange + var request = new HttpRequestMessage(HttpMethod.Get, "http://localhost/anyuri"); + + // Act + var handler = new JwtAuthMessageHandler(true, false); + var response = handler.OnInboundRequest(request, CancellationToken.None); + + // Assert + Assert.That(response, Is.Null); + } + + [Test] + public void WrongAuthoizationSchemeReturnsNullResponse() + { + // Arrange + var request = new HttpRequestMessage(HttpMethod.Get, "http://localhost/anyuri"); + request.Headers.Authorization = AuthenticationHeaderValue.Parse("Basic "); + + // Act + var handler = new JwtAuthMessageHandler(true, false); + var response = handler.OnInboundRequest(request, CancellationToken.None); + + // Assert + Assert.That(response, Is.Null); + } + + [Test] + public void MissingAuthoizationTokenReturnsNullResponse() + { + // Arrange + var request = new HttpRequestMessage(HttpMethod.Get, "http://localhost/anyuri"); + request.Headers.Authorization = AuthenticationHeaderValue.Parse("Bearer "); + + // Act + var handler = new JwtAuthMessageHandler(true, false); + var response = handler.OnInboundRequest(request, CancellationToken.None); + + // Assert + Assert.That(response, Is.Null); + } + [Test] + public void AuthoizationTokenWithMissingComponentsReturnsNullResponse() + { + // Arrange + var request = new HttpRequestMessage(HttpMethod.Get, "http://localhost/anyuri"); + request.Headers.Authorization = AuthenticationHeaderValue.Parse( + "Bearer eyJ0eXBlIjoiSldUIiwiYWxnIjoiSFMyNTYifQ.eyJzdWIiOiJ1c2VybmFtZSIsIm5iZiI6MSwiZXhwIjo0MTAyNDQ0Nzk5LCJzaWQiOiIwMTIzNDU2Nzg5QUJDREVGIn0"); + + // Act + var handler = new JwtAuthMessageHandler(true, false); + var response = handler.OnInboundRequest(request, CancellationToken.None); + + // Assert + Assert.That(response, Is.Null); + } + + [Test] + public void AuthoizationTokenWithWrongSchemeTypeReturnsNullResponse() + { + // Arrange + var request = new HttpRequestMessage(HttpMethod.Get, "http://localhost/anyuri"); + request.Headers.Authorization = AuthenticationHeaderValue.Parse( + "Bearer eyJ0eXBlIjoieHh4IiwiYWxnIjoiSFMyNTYifQ.eyJzdWIiOiJ1c2VybmFtZSIsIm5iZiI6MSwiZXhwIjo0MTAyNDQ0Nzk5LCJzaWQiOiIwMTIzNDU2Nzg5QUJDREVGIn0.nfWCOVNk5M7L7EPDe3i3j4aAPRerbxgmcjOxaC-LWUQ"); + + // Act + var handler = new JwtAuthMessageHandler(true, false); + var response = handler.OnInboundRequest(request, CancellationToken.None); + + // Assert + Assert.That(response, Is.Null); + } + + [Test] + + public void AuthoizationTokenWithoorResponse() + { + // Arrange + var request = new HttpRequestMessage(HttpMethod.Get, "http://localhost/anyuri"); + request.Headers.Authorization = AuthenticationHeaderValue.Parse("Bearer " + ValidToken); + + // Act + this.SetupMockServices(); + var handler = new JwtAuthMessageHandler(true, false); + var response = handler.OnInboundRequest(request, CancellationToken.None); + + // Assert + Assert.That(response, Is.Null); + } + + private static IDataReader GetUser() + { + var table = new DataTable("Users"); + table.Columns.Add("UserID", typeof(int)); + table.Columns.Add("PortalId", typeof(int)); + table.Columns.Add("UserName", typeof(string)); + table.Columns.Add("FirstName", typeof(string)); + table.Columns.Add("LastName", typeof(string)); + table.Columns.Add("DisplayName", typeof(string)); + table.Columns.Add("IsSuperUser", typeof(byte)); + table.Columns.Add("Email", typeof(string)); + table.Columns.Add("VanityUrl", typeof(string)); + table.Columns.Add("AffiliateId", typeof(int)); + table.Columns.Add("IsDeleted", typeof(byte)); + table.Columns.Add("RefreshRoles", typeof(byte)); + table.Columns.Add("LastIPAddress", typeof(string)); + table.Columns.Add("UpdatePassword", typeof(byte)); + table.Columns.Add("PasswordResetToken", typeof(Guid)); + table.Columns.Add("PasswordResetExpiration", typeof(DateTime)); + table.Columns.Add("Authorised", typeof(byte)); + + table.Columns.Add("CreatedByUserID", typeof(int)); + table.Columns.Add("CreatedOnDate", typeof(DateTime)); + table.Columns.Add("LastModifiedByUserID", typeof(int)); + table.Columns.Add("LastModifiedOnDate", typeof(DateTime)); + + table.Rows.Add(1, null, "host", "host", "host", "host", 1, "host@changeme.invalid", null, null, 0, null, + "127.0.0.1", 0, "8D3C800F-7A40-45D6-BA4D-E59A393F9800", DateTime.Now, null, -1, DateTime.Now, + -1, DateTime.Now); + return table.CreateDataReader(); + } + + private static IDataReader GetPortalsCallBack(string culture) + { + return GetPortalCallBack(0, culture); + } + + private static IDataReader GetPortalCallBack(int portalId, string culture) + { + var table = new DataTable("Portal"); + + var cols = new[] + { + "PortalID", "PortalGroupID", "PortalName", "LogoFile", "FooterText", "ExpiryDate", + "UserRegistration", "BannerAdvertising", "AdministratorId", "Currency", "HostFee", + "HostSpace", "PageQuota", "UserQuota", "AdministratorRoleId", "RegisteredRoleId", + "Description", "KeyWords", "BackgroundFile", "GUID", "PaymentProcessor", + "ProcessorUserId", + "ProcessorPassword", "SiteLogHistory", "Email", "DefaultLanguage", "TimezoneOffset", + "AdminTabId", "HomeDirectory", "SplashTabId", "HomeTabId", "LoginTabId", "RegisterTabId", + "UserTabId", "SearchTabId", "Custom404TabId", "Custom500TabId", "TermsTabId", "PrivacyTabId", "SuperTabId", + "CreatedByUserID", "CreatedOnDate", "LastModifiedByUserID", "LastModifiedOnDate", + "CultureCode", + }; + + foreach (var col in cols) + { + table.Columns.Add(col); + } + + const int homePage = 1; + table.Rows.Add(portalId, null, "My Website", "Logo.png", "Copyright (c) 2018 DNN Corp.", null, + "2", "0", "2", "USD", "0", "0", "0", "0", "0", "1", "My Website", + "DotNetNuke, DNN, Content, Management, CMS", null, "1057AC7A-3C08-4849-A3A6-3D2AB4662020", + null, null, null, "0", "admin@changeme.invalid", "en-US", "-8", "58", "Portals/0", null, + homePage.ToString(), null, null, "57", "56", "-1", "-1", null, null, "7", "-1", "2011-08-25 07:34:11", + "-1", "2011-08-25 07:34:29", culture); + + return table.CreateDataReader(); + } + + private static PersistedToken GetPersistedToken(string sessionId) + { + if ("0123456789ABCDEF".Equals(sessionId)) + { + return new PersistedToken + { + TokenId = sessionId, + RenewalExpiry = DateTime.UtcNow.AddDays(14), + TokenExpiry = DateTime.UtcNow.AddHours(1), + UserId = 1, + TokenHash = GetHashedStr(ValidToken), + RenewalHash = "renewal-hash", + }; + } + + return null; + } + + private static UserInfo GetUserByIdCallback(int portalId, int userId) + { + if (portalId == 0) + { + switch (userId) + { + case 1: + return new UserInfo { UserID = userId, Username = "host", DisplayName = "Host User" }; + case 2: + return new UserInfo { UserID = userId, Username = "admin", DisplayName = "Admin User" }; + case 3: + return new UserInfo { UserID = userId, Username = "reguser", DisplayName = "Registered User" }; + } + } + + return null; + } + + // todo unit test actual authentication code + // very hard to unit test inbound authentication code as it dips into untestable bits of + // UserController, etc. Need to write controllers with interfaces and ServiceLocator<>. + + // private static string DecodeBase64(string b64Str) + // { + // // fix Base64 string padding + // var mod = b64Str.Length % 4; + // if (mod != 0) b64Str += new string('=', 4 - mod); + // return Encoding.UTF8.GetString(Convert.FromBase64String(b64Str)); + // } + private static string EncodeBase64(byte[] data) + { + return Convert.ToBase64String(data).TrimEnd('='); + } + + private static string GetHashedStr(string data) + { + using (var hasher = SHA384.Create()) + { + return EncodeBase64(hasher.ComputeHash(Encoding.UTF8.GetBytes(data))); + } + } + + private IDataReader GetPortalGroups() + { + var table = new DataTable("ModuleDefinitions"); + var pkId = table.Columns.Add("PortalGroupID", typeof(int)); + table.Columns.Add("MasterPortalID", typeof(int)); + table.Columns.Add("PortalGroupName", typeof(string)); + table.Columns.Add("PortalGroupDescription", typeof(string)); + table.Columns.Add("AuthenticationDomain", typeof(string)); + table.Columns.Add("CreatedByUserID", typeof(int)); + table.Columns.Add("CreatedOnDate", typeof(DateTime)); + table.Columns.Add("LastModifiedByUserID", typeof(int)); + table.Columns.Add("LastModifiedOnDate", typeof(DateTime)); + table.PrimaryKey = new[] { pkId }; - public void AuthoizationTokenWithoorResponse() - { - // Arrange - var request = new HttpRequestMessage(HttpMethod.Get, "http://localhost/anyuri"); - request.Headers.Authorization = AuthenticationHeaderValue.Parse("Bearer " + ValidToken); - - // Act - this.SetupMockServices(); - var handler = new JwtAuthMessageHandler(true, false); - var response = handler.OnInboundRequest(request, CancellationToken.None); - - // Assert - Assert.IsNull(response); - } - - private static IDataReader GetUser() - { - var table = new DataTable("Users"); - table.Columns.Add("UserID", typeof(int)); - table.Columns.Add("PortalId", typeof(int)); - table.Columns.Add("UserName", typeof(string)); - table.Columns.Add("FirstName", typeof(string)); - table.Columns.Add("LastName", typeof(string)); - table.Columns.Add("DisplayName", typeof(string)); - table.Columns.Add("IsSuperUser", typeof(byte)); - table.Columns.Add("Email", typeof(string)); - table.Columns.Add("VanityUrl", typeof(string)); - table.Columns.Add("AffiliateId", typeof(int)); - table.Columns.Add("IsDeleted", typeof(byte)); - table.Columns.Add("RefreshRoles", typeof(byte)); - table.Columns.Add("LastIPAddress", typeof(string)); - table.Columns.Add("UpdatePassword", typeof(byte)); - table.Columns.Add("PasswordResetToken", typeof(Guid)); - table.Columns.Add("PasswordResetExpiration", typeof(DateTime)); - table.Columns.Add("Authorised", typeof(byte)); - - table.Columns.Add("CreatedByUserID", typeof(int)); - table.Columns.Add("CreatedOnDate", typeof(DateTime)); - table.Columns.Add("LastModifiedByUserID", typeof(int)); - table.Columns.Add("LastModifiedOnDate", typeof(DateTime)); - - table.Rows.Add(1, null, "host", "host", "host", "host", 1, "host@changeme.invalid", null, null, 0, null, - "127.0.0.1", 0, "8D3C800F-7A40-45D6-BA4D-E59A393F9800", DateTime.Now, null, -1, DateTime.Now, - -1, DateTime.Now); - return table.CreateDataReader(); - } - - private static IDataReader GetPortalsCallBack(string culture) - { - return GetPortalCallBack(0, culture); - } - - private static IDataReader GetPortalCallBack(int portalId, string culture) - { - var table = new DataTable("Portal"); - - var cols = new[] - { - "PortalID", "PortalGroupID", "PortalName", "LogoFile", "FooterText", "ExpiryDate", - "UserRegistration", "BannerAdvertising", "AdministratorId", "Currency", "HostFee", - "HostSpace", "PageQuota", "UserQuota", "AdministratorRoleId", "RegisteredRoleId", - "Description", "KeyWords", "BackgroundFile", "GUID", "PaymentProcessor", - "ProcessorUserId", - "ProcessorPassword", "SiteLogHistory", "Email", "DefaultLanguage", "TimezoneOffset", - "AdminTabId", "HomeDirectory", "SplashTabId", "HomeTabId", "LoginTabId", "RegisterTabId", - "UserTabId", "SearchTabId", "Custom404TabId", "Custom500TabId", "TermsTabId", "PrivacyTabId", "SuperTabId", - "CreatedByUserID", "CreatedOnDate", "LastModifiedByUserID", "LastModifiedOnDate", - "CultureCode", - }; - - foreach (var col in cols) - { - table.Columns.Add(col); - } - - const int homePage = 1; - table.Rows.Add(portalId, null, "My Website", "Logo.png", "Copyright (c) 2018 DNN Corp.", null, - "2", "0", "2", "USD", "0", "0", "0", "0", "0", "1", "My Website", - "DotNetNuke, DNN, Content, Management, CMS", null, "1057AC7A-3C08-4849-A3A6-3D2AB4662020", - null, null, null, "0", "admin@changeme.invalid", "en-US", "-8", "58", "Portals/0", null, - homePage.ToString(), null, null, "57", "56", "-1", "-1", null, null, "7", "-1", "2011-08-25 07:34:11", - "-1", "2011-08-25 07:34:29", culture); - - return table.CreateDataReader(); - } - - private static PersistedToken GetPersistedToken(string sessionId) - { - if ("0123456789ABCDEF".Equals(sessionId)) - { - return new PersistedToken - { - TokenId = sessionId, - RenewalExpiry = DateTime.UtcNow.AddDays(14), - TokenExpiry = DateTime.UtcNow.AddHours(1), - UserId = 1, - TokenHash = GetHashedStr(ValidToken), - RenewalHash = "renewal-hash", - }; - } - - return null; - } - - private static UserInfo GetUserByIdCallback(int portalId, int userId) - { - if (portalId == 0) - { - switch (userId) - { - case 1: - return new UserInfo { UserID = userId, Username = "host", DisplayName = "Host User" }; - case 2: - return new UserInfo { UserID = userId, Username = "admin", DisplayName = "Admin User" }; - case 3: - return new UserInfo { UserID = userId, Username = "reguser", DisplayName = "Registered User" }; - } - } - - return null; - } - - // todo unit test actual authentication code - // very hard to unit test inbound authentication code as it dips into untestable bits of - // UserController, etc. Need to write controllers with interfaces and ServiceLocator<>. - - // private static string DecodeBase64(string b64Str) - // { - // // fix Base64 string padding - // var mod = b64Str.Length % 4; - // if (mod != 0) b64Str += new string('=', 4 - mod); - // return Encoding.UTF8.GetString(Convert.FromBase64String(b64Str)); - // } - private static string EncodeBase64(byte[] data) - { - return Convert.ToBase64String(data).TrimEnd('='); - } - - private static string GetHashedStr(string data) - { - using (var hasher = SHA384.Create()) - { - return EncodeBase64(hasher.ComputeHash(Encoding.UTF8.GetBytes(data))); - } - } - - private IDataReader GetPortalGroups() - { - var table = new DataTable("ModuleDefinitions"); - var pkId = table.Columns.Add("PortalGroupID", typeof(int)); - table.Columns.Add("MasterPortalID", typeof(int)); - table.Columns.Add("PortalGroupName", typeof(string)); - table.Columns.Add("PortalGroupDescription", typeof(string)); - table.Columns.Add("AuthenticationDomain", typeof(string)); - table.Columns.Add("CreatedByUserID", typeof(int)); - table.Columns.Add("CreatedOnDate", typeof(DateTime)); - table.Columns.Add("LastModifiedByUserID", typeof(int)); - table.Columns.Add("LastModifiedOnDate", typeof(DateTime)); - table.PrimaryKey = new[] { pkId }; - - table.Rows.Add(0, 0, "test", "descr", "domain", -1, DateTime.Now, -1, DateTime.Now); - return table.CreateDataReader(); - } - } -} + table.Rows.Add(0, 0, "test", "descr", "domain", -1, DateTime.Now, -1, DateTime.Now); + return table.CreateDataReader(); + } + } +} diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Web/Api/PortalAliasRouteManagerTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Web/Api/PortalAliasRouteManagerTests.cs index bbf76e64192..e6abfd80cf1 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Web/Api/PortalAliasRouteManagerTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Web/Api/PortalAliasRouteManagerTests.cs @@ -71,7 +71,7 @@ public void GetRouteUrl(string moduleFolderName, string url, int count, string e string result = new PortalAliasRouteManager().GetRouteUrl(moduleFolderName, url, count); // Assert - Assert.AreEqual(expected, result); + Assert.That(result, Is.EqualTo(expected)); } [Test] @@ -126,7 +126,7 @@ public void ParentPortalOnVirtualDirReturnsAnEmptyPrefix() List prefixes = new PortalAliasRouteManager().GetRoutePrefixCounts().ToList(); // Assert - CollectionAssert.AreEquivalent(new[] { 0 }, prefixes); + Assert.That(prefixes, Is.EquivalentTo(new[] { 0 })); } [Test] @@ -156,7 +156,7 @@ public void SingleParentPortalReturnsAnEmptyPrefix() List prefixes = new PortalAliasRouteManager().GetRoutePrefixCounts().ToList(); // Assert - CollectionAssert.AreEquivalent(new[] { 0 }, prefixes); + Assert.That(prefixes, Is.EquivalentTo(new[] { 0 })); } [Test] @@ -242,7 +242,7 @@ public void VirtralDirWithChildPortalHasABlankAndASinglePrefix() List prefixes = new PortalAliasRouteManager().GetRoutePrefixCounts().ToList(); // Assert - CollectionAssert.AreEqual(new[] { 1, 0 }, prefixes); + Assert.That(prefixes, Is.EqualTo(new[] { 1, 0 }).AsCollection); } [Test] @@ -257,7 +257,7 @@ public void GetRouteNameHashesNameInCorrectFormat(string moduleFolderName, strin var result = new PortalAliasRouteManager().GetRouteName(moduleFolderName, routeName, count); // Assert - Assert.AreEqual(expected, result); + Assert.That(result, Is.EqualTo(expected)); } [Test] @@ -273,7 +273,7 @@ public void GetRouteNameWithPortalAliasInfoHashesNameInCorrectFormat(string modu var result = new PortalAliasRouteManager().GetRouteName(moduleFolderName, routeName, new PortalAliasInfo { HTTPAlias = httpAlias }); // Assert - Assert.AreEqual(expected, result); + Assert.That(result, Is.EqualTo(expected)); } [Test] @@ -326,7 +326,7 @@ public void GetAllRouteValuesPreservesPassedInRouteValues() // Assert var expected = new Dictionary { { "value1", 1 }, { "value2", 2 } }; - CollectionAssert.AreEquivalent(expected, result); + Assert.That(result, Is.EquivalentTo(expected)); } [Test] @@ -343,7 +343,7 @@ public void GetAllRouteValuesExtractsChildPortalParams() // Assert var expected = new Dictionary { { "prefix0", "child" } }; - CollectionAssert.AreEquivalent(expected, result); + Assert.That(result, Is.EquivalentTo(expected)); } [Test] @@ -360,7 +360,7 @@ public void GetAllRouteValuesExtractsManyChildPortalParamsAndPreservesRouteValue // Assert var expected = new Dictionary { { "prefix0", "child0" }, { "prefix1", "child1" }, { "prefix2", "child2" }, { "prefix3", "child3" }, { "value1", 1 }, { "value2", 2 } }; - CollectionAssert.AreEquivalent(expected, result); + Assert.That(result, Is.EquivalentTo(expected)); } } } diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Web/Api/ServiceRoutingManagerTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Web/Api/ServiceRoutingManagerTests.cs index 1168d90931e..38fdec462c9 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Web/Api/ServiceRoutingManagerTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Web/Api/ServiceRoutingManagerTests.cs @@ -97,14 +97,14 @@ public void LocatesAllServiceRouteMappers() List types = locator.GetAllMatchingTypes(ServicesRoutingManager.IsValidServiceRouteMapper).ToList(); // if new ServiceRouteMapper classes are added to the assembly they willl likely need to be added here - CollectionAssert.AreEquivalent( - new[] + Assert.That( + types, Is.EquivalentTo(new[] { typeof(FakeServiceRouteMapper), typeof(ReflectedServiceRouteMappers.EmbeddedServiceRouteMapper), typeof(ExceptionOnCreateInstanceServiceRouteMapper), typeof(ExceptionOnRegisterServiceRouteMapper), - }, types); + })); } [Test] @@ -135,7 +135,7 @@ public void RegisterRoutesIsCalledOnAllServiceRouteMappersEvenWhenSomeThrowExcep srm.RegisterRoutes(); - Assert.AreEqual(1, FakeServiceRouteMapper.RegistrationCalls); + Assert.That(FakeServiceRouteMapper.RegistrationCalls, Is.EqualTo(1)); } [Test] @@ -152,7 +152,7 @@ public void RegisterRoutesIsCalledOnServiceRouteMappers() srm.RegisterRoutes(); - Assert.AreEqual(1, FakeServiceRouteMapper.RegistrationCalls); + Assert.That(FakeServiceRouteMapper.RegistrationCalls, Is.EqualTo(1)); } [Test] @@ -199,7 +199,7 @@ public void NameIsInsertedInRouteDataTokens() // Assert var route = (Route)routeCollection[0]; - Assert.AreEqual("folder-default-0", route.DataTokens["Name"]); + Assert.That(route.DataTokens["Name"], Is.EqualTo("folder-default-0")); } [Test] @@ -222,9 +222,9 @@ public void TwoRoutesOnTheSameFolderHaveSimilarNames() // Assert var route = (Route)routeCollection[0]; - Assert.AreEqual("folder-default-0", route.DataTokens["Name"]); + Assert.That(route.DataTokens["Name"], Is.EqualTo("folder-default-0")); route = (Route)routeCollection[1]; - Assert.AreEqual("folder-default-0-old", route.DataTokens["Name"]); + Assert.That(route.DataTokens["Name"], Is.EqualTo("folder-default-0-old")); } [Test] @@ -246,10 +246,13 @@ public void RoutesShouldHaveBackwardCompability() // Assert var route = (Route)routeCollection[0]; - Assert.AreEqual("folder-default-0", route.DataTokens["Name"]); + Assert.That(route.DataTokens["Name"], Is.EqualTo("folder-default-0")); route = (Route)routeCollection[1]; - Assert.AreEqual("folder-default-0-old", route.DataTokens["Name"]); - Assert.IsTrue(route.Url.StartsWith("DesktopModules")); + Assert.Multiple(() => + { + Assert.That(route.DataTokens["Name"], Is.EqualTo("folder-default-0-old")); + Assert.That(route.Url.StartsWith("DesktopModules"), Is.True); + }); } } } diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Web/Api/StandardTabAndModuleInfoProviderTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Web/Api/StandardTabAndModuleInfoProviderTests.cs index 6aed276220b..25c58f8092a 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Web/Api/StandardTabAndModuleInfoProviderTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Web/Api/StandardTabAndModuleInfoProviderTests.cs @@ -2,407 +2,455 @@ // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information -namespace DotNetNuke.Tests.Web.Api -{ - using System; - using System.Collections.Generic; - using System.Data; - using System.Globalization; - using System.Net.Http; - using System.Web; - - using DotNetNuke.Data; - using DotNetNuke.Entities.Modules; - using DotNetNuke.Entities.Tabs; - using DotNetNuke.Tests.Utilities.Mocks; - using DotNetNuke.Web.Api; - using Moq; - using NUnit.Framework; - - [TestFixture] - public class StandardTabAndModuleInfoProviderTests - { - private const int ValidPortalId = 0; - private const int ValidTabModuleId = 999; - private const int ValidModuleId = 456; - private const int ValidTabId = 46; - - private const string MonikerSettingName = "Moniker"; - private const string MonikerSettingValue = "TestMoniker"; - - private Mock _mockModuleController; - private IModuleController _moduleController; - private Mock _mockTabController; - private Mock _mockTabModuleController; - private Mock _mockDataProvider; - - private ITabController _tabController; - private ITabModulesController _tabModuleController; - private TabInfo _tabInfo; - private ModuleInfo _moduleInfo; - +namespace DotNetNuke.Tests.Web.Api +{ + using System; + using System.Collections.Generic; + using System.Data; + using System.Globalization; + using System.Net.Http; + using System.Web; + + using DotNetNuke.Data; + using DotNetNuke.Entities.Modules; + using DotNetNuke.Entities.Tabs; + using DotNetNuke.Tests.Utilities.Mocks; + using DotNetNuke.Web.Api; + using Moq; + using NUnit.Framework; + + [TestFixture] + public class StandardTabAndModuleInfoProviderTests + { + private const int ValidPortalId = 0; + private const int ValidTabModuleId = 999; + private const int ValidModuleId = 456; + private const int ValidTabId = 46; + + private const string MonikerSettingName = "Moniker"; + private const string MonikerSettingValue = "TestMoniker"; + + private Mock _mockModuleController; + private IModuleController _moduleController; + private Mock _mockTabController; + private Mock _mockTabModuleController; + private Mock _mockDataProvider; + + private ITabController _tabController; + private ITabModulesController _tabModuleController; + private TabInfo _tabInfo; + private ModuleInfo _moduleInfo; + [SetUp] - public void Setup() - { - MockComponentProvider.CreateDataCacheProvider(); - this._mockDataProvider = MockComponentProvider.CreateDataProvider(); - this._mockDataProvider.Setup(d => d.GetProviderPath()).Returns(string.Empty); - this._mockDataProvider.Setup(d => d.GetPortals(It.IsAny())).Returns(GetPortalsCallBack); - - this.RegisterMock(ModuleController.SetTestableInstance, out this._mockModuleController, out this._moduleController); - this.RegisterMock(TabController.SetTestableInstance, out this._mockTabController, out this._tabController); - this.RegisterMock(TabModulesController.SetTestableInstance, out this._mockTabModuleController, out this._tabModuleController); - - this._tabInfo = new TabInfo { TabID = ValidTabId }; - this._moduleInfo = new ModuleInfo - { - TabModuleID = ValidTabModuleId, - TabID = ValidTabId, - ModuleID = ValidModuleId, - PortalID = ValidPortalId, - }; - - this._mockTabController.Setup(x => x.GetTab(ValidTabId, ValidPortalId)).Returns(this._tabInfo); - this._mockModuleController.Setup(x => x.GetModule(ValidModuleId, ValidTabId, false)).Returns(this._moduleInfo); - this._mockModuleController.Setup(x => x.GetTabModule(ValidTabModuleId)).Returns(this._moduleInfo); - this._mockTabModuleController.Setup(x => x.GetTabModuleIdsBySetting(MonikerSettingName, MonikerSettingValue)).Returns( - new List { ValidTabModuleId }); - this._mockTabModuleController.Setup(x => x.GetTabModuleSettingsByName(MonikerSettingName)).Returns( - new Dictionary { { ValidTabModuleId, MonikerSettingValue } }); - } - - [TearDown] - public void TearDown() - { - ModuleController.ClearInstance(); - TabController.ClearInstance(); - } - - [Test] - public void ValidTabAndModuleIdLoadsActiveModule() - { - // Arrange - var request = new HttpRequestMessage(); - request.Headers.Add("tabid", ValidTabId.ToString(CultureInfo.InvariantCulture)); - request.Headers.Add("moduleid", ValidModuleId.ToString(CultureInfo.InvariantCulture)); - - // Act - ModuleInfo returnedModuleInfo; - var result = new StandardTabAndModuleInfoProvider().TryFindModuleInfo(request, out returnedModuleInfo); - - // Assert - Assert.IsTrue(result); - Assert.AreSame(this._moduleInfo, returnedModuleInfo); - } - - [Test] - public void ExistingMonikerValueInHeaderShouldFindTheCorrectModuleInfo() - { - // Arrange - var request = new HttpRequestMessage(); - request.Headers.Add("X-DNN-MONIKER", MonikerSettingValue); - - // Act - ModuleInfo returnedModuleInfo; - var result = new StandardTabAndModuleInfoProvider().TryFindModuleInfo(request, out returnedModuleInfo); - - // Assert - Assert.IsTrue(result); - Assert.AreSame(this._moduleInfo, returnedModuleInfo); - } - - [Test] - public void ExistingMonikerValueInQueryStringShouldFindTheCorrectModuleInfo() - { - // Arrange - var request = new HttpRequestMessage(); - request.RequestUri = new Uri( - "http://mysite.lvh.me/API/internalservices/controlbar/ToggleUserMode?moniker=" + HttpUtility.UrlEncode(MonikerSettingValue)); - - // Act - ModuleInfo returnedModuleInfo; - var result = new StandardTabAndModuleInfoProvider().TryFindModuleInfo(request, out returnedModuleInfo); - - // Assert - Assert.IsTrue(result); - Assert.AreSame(this._moduleInfo, returnedModuleInfo); - } - - [Test] - public void NonExistingMonikerValueShouldFailToReturnResult() - { - // Arrange - var request = new HttpRequestMessage(); - request.Headers.Add("X-DNN-MONIKER", "This moniker does not exist"); - - // Act - ModuleInfo returnedModuleInfo; - var result = new StandardTabAndModuleInfoProvider().TryFindModuleInfo(request, out returnedModuleInfo); - - // Assert - Assert.IsFalse(result); - Assert.IsNull(returnedModuleInfo); - } - - [Test] - public void MissingAllHeadersShouldFailToReturnResult() - { - // Arrange - var request = new HttpRequestMessage(); - - // Act - ModuleInfo returnedModuleInfo; - var result = new StandardTabAndModuleInfoProvider().TryFindModuleInfo(request, out returnedModuleInfo); - - // Assert - Assert.IsFalse(result); - Assert.IsNull(returnedModuleInfo); - } - - [Test] - public void OmittedTabIdWillNotLoadModule() - { - // Arrange - // no tabid - var request = new HttpRequestMessage(); - request.Headers.Add("moduleid", ValidModuleId.ToString(CultureInfo.InvariantCulture)); - - // Act - ModuleInfo returnedModuleInfo; - var result = new StandardTabAndModuleInfoProvider().TryFindModuleInfo(request, out returnedModuleInfo); - - // Assert - this._mockTabController.Verify(x => x.GetTab(It.IsAny(), It.IsAny()), Times.Never()); - this._mockModuleController.Verify(x => x.GetModule(It.IsAny(), It.IsAny(), false), Times.Never()); - Assert.IsNull(returnedModuleInfo); - Assert.IsFalse(result); - } - - [Test] - public void OmittedModuleIdWillNotLoadModule() - { - // Arrange - // no moduleid - var request = new HttpRequestMessage(); - request.Headers.Add("tabid", ValidTabId.ToString(CultureInfo.InvariantCulture)); - - // Act - ModuleInfo returnedModuleInfo; - var result = new StandardTabAndModuleInfoProvider().TryFindModuleInfo(request, out returnedModuleInfo); - - // Assert - this._mockModuleController.Verify(x => x.GetModule(It.IsAny(), It.IsAny(), false), Times.Never()); - Assert.IsNull(returnedModuleInfo); - Assert.IsFalse(result); - } - - [Test] - public void TabIdInHeaderTakesPriority() - { - // Arrange - var request = new HttpRequestMessage(); - request.Headers.Add("tabid", ValidTabId.ToString(CultureInfo.InvariantCulture)); - request.RequestUri = new Uri(string.Format("http://foo.com?{0}={1}", "tabid", ValidTabId + 1)); - - // Act - int tabId; - var result = new StandardTabAndModuleInfoProvider().TryFindTabId(request, out tabId); - - // Assert - Assert.AreEqual(ValidTabId, tabId); - Assert.IsTrue(result); - } - - [Test] - public void ModuleIdInHeaderTakesPriority() - { - // Arrange - var request = new HttpRequestMessage(); - request.Headers.Add("moduleid", ValidTabId.ToString(CultureInfo.InvariantCulture)); - request.RequestUri = new Uri(string.Format("http://foo.com?{0}={1}", "moduleid", ValidTabId + 1)); - - // Act - int moduleId; - var result = new StandardTabAndModuleInfoProvider().TryFindModuleId(request, out moduleId); - - // Assert - Assert.AreEqual(ValidTabId, moduleId); - Assert.IsTrue(result); - } - - [Test] - [TestCase("tabid")] - [TestCase("TABID")] - [TestCase("tAbiD")] - public void TabIdInHeaderAllowsTabIdToBeFound(string headerName) - { - // Arrange - var request = new HttpRequestMessage(); - request.Headers.Add(headerName, ValidTabId.ToString(CultureInfo.InvariantCulture)); - - // Act - int tabId; - var result = new StandardTabAndModuleInfoProvider().TryFindTabId(request, out tabId); - - // Assert - Assert.AreEqual(ValidTabId, tabId); - Assert.IsTrue(result); - } - - [Test] - [TestCase("moduleid")] - [TestCase("MODULEID")] - [TestCase("modULeid")] - public void ModuleIdInHeaderAllowsModuleIdToBeFound(string headerName) - { - // Arrange - var request = new HttpRequestMessage(); - request.Headers.Add(headerName, ValidModuleId.ToString(CultureInfo.InvariantCulture)); - - // Act - int moduleId; - var result = new StandardTabAndModuleInfoProvider().TryFindModuleId(request, out moduleId); - - // Assert - Assert.AreEqual(ValidModuleId, moduleId); - Assert.IsTrue(result); - } - - [Test] - [TestCase("x-dnn-moniker")] - [TestCase("X-Dnn-Moniker")] - [TestCase("X-DNN-MONIKER")] - public void MonikerInHeaderAllowsModuleToBeFound(string headerName) - { - // Arrange - var request = new HttpRequestMessage(); - request.Headers.Add(headerName, MonikerSettingValue); - - // Act - int moduleId; - var result = new StandardTabAndModuleInfoProvider().TryFindModuleId(request, out moduleId); - - // Assert - Assert.IsTrue(result); - Assert.AreEqual(ValidModuleId, moduleId); - } - - [Test] - [TestCase("tabid")] - [TestCase("TABID")] - [TestCase("tAbiD")] - public void TabIdInQueryStringAllowsTabIdToBeFound(string paramName) - { - // Arrange - var request = new HttpRequestMessage - { - RequestUri = new Uri(string.Format("http://foo.com?{0}={1}", paramName, ValidTabId)), - }; - - // Act - int tabId; - var result = new StandardTabAndModuleInfoProvider().TryFindTabId(request, out tabId); - - // Assert - Assert.AreEqual(ValidTabId, tabId); - Assert.IsTrue(result); - } - - [Test] - [TestCase("moduleid")] - [TestCase("MODULEID")] - [TestCase("modULeid")] - public void ModuleIdInQueryStringAllowsModuleIdToBeFound(string paramName) - { - // Arrange - var request = new HttpRequestMessage - { - RequestUri = new Uri(string.Format("http://foo.com?{0}={1}", paramName, ValidModuleId)), - }; - - // Act - int moduleId; - var result = new StandardTabAndModuleInfoProvider().TryFindModuleId(request, out moduleId); - - // Assert - Assert.AreEqual(ValidModuleId, moduleId); - Assert.IsTrue(result); - } - - [Test] - public void NoTabIdInRequestReturnsNoTabId() - { - // Arrange - - // Act - int tabId; - var result = new StandardTabAndModuleInfoProvider().TryFindTabId(new HttpRequestMessage(), out tabId); - - // Assert - Assert.IsFalse(result); - Assert.AreEqual(-1, tabId); - } - - [Test] - public void NoModuleIdInRequestReturnsNoModuleId() - { - // Arrange - - // Act - int moduleId; - var result = new StandardTabAndModuleInfoProvider().TryFindModuleId(new HttpRequestMessage(), out moduleId); - - // Assert - Assert.IsFalse(result); - Assert.AreEqual(-1, moduleId); - } - - private static IDataReader GetPortalsCallBack(string culture) - { - return GetPortalCallBack(0, culture); - } - - private static IDataReader GetPortalCallBack(int portalId, string culture) - { - var table = new DataTable("Portal"); - - var cols = new[] - { - "PortalID", "PortalGroupID", "PortalName", "LogoFile", "FooterText", "ExpiryDate", - "UserRegistration", "BannerAdvertising", "AdministratorId", "Currency", "HostFee", - "HostSpace", "PageQuota", "UserQuota", "AdministratorRoleId", "RegisteredRoleId", - "Description", "KeyWords", "BackgroundFile", "GUID", "PaymentProcessor", - "ProcessorUserId", - "ProcessorPassword", "SiteLogHistory", "Email", "DefaultLanguage", "TimezoneOffset", - "AdminTabId", "HomeDirectory", "SplashTabId", "HomeTabId", "LoginTabId", "RegisterTabId", - "UserTabId", "SearchTabId", "Custom404TabId", "Custom500TabId", "TermsTabId", "PrivacyTabId", "SuperTabId", - "CreatedByUserID", "CreatedOnDate", "LastModifiedByUserID", "LastModifiedOnDate", - "CultureCode", - }; - - foreach (var col in cols) - { - table.Columns.Add(col); - } - - const int homePage = 1; - table.Rows.Add(portalId, null, "My Website", "Logo.png", "Copyright (c) 2018 DNN Corp.", null, - "2", "0", "2", "USD", "0", "0", "0", "0", "0", "1", "My Website", - "DotNetNuke, DNN, Content, Management, CMS", null, "1057AC7A-3C08-4849-A3A6-3D2AB4662020", - null, null, null, "0", "admin@changeme.invalid", "en-US", "-8", "58", "Portals/0", null, - homePage.ToString(), null, null, "57", "56", "-1", "-1", null, null, "7", "-1", "2011-08-25 07:34:11", - "-1", "2011-08-25 07:34:29", culture); - - return table.CreateDataReader(); - } - - private void RegisterMock(Action register, out Mock mock, out T instance) - where T : class - { - mock = new Mock(); - instance = mock.Object; - register(instance); - } - } -} + public void Setup() + { + MockComponentProvider.CreateDataCacheProvider(); + this._mockDataProvider = MockComponentProvider.CreateDataProvider(); + this._mockDataProvider.Setup(d => d.GetProviderPath()).Returns(string.Empty); + this._mockDataProvider.Setup(d => d.GetPortals(It.IsAny())).Returns(GetPortalsCallBack); + + this.RegisterMock(ModuleController.SetTestableInstance, out this._mockModuleController, out this._moduleController); + this.RegisterMock(TabController.SetTestableInstance, out this._mockTabController, out this._tabController); + this.RegisterMock(TabModulesController.SetTestableInstance, out this._mockTabModuleController, out this._tabModuleController); + + this._tabInfo = new TabInfo { TabID = ValidTabId }; + this._moduleInfo = new ModuleInfo + { + TabModuleID = ValidTabModuleId, + TabID = ValidTabId, + ModuleID = ValidModuleId, + PortalID = ValidPortalId, + }; + + this._mockTabController.Setup(x => x.GetTab(ValidTabId, ValidPortalId)).Returns(this._tabInfo); + this._mockModuleController.Setup(x => x.GetModule(ValidModuleId, ValidTabId, false)).Returns(this._moduleInfo); + this._mockModuleController.Setup(x => x.GetTabModule(ValidTabModuleId)).Returns(this._moduleInfo); + this._mockTabModuleController.Setup(x => x.GetTabModuleIdsBySetting(MonikerSettingName, MonikerSettingValue)).Returns( + new List { ValidTabModuleId }); + this._mockTabModuleController.Setup(x => x.GetTabModuleSettingsByName(MonikerSettingName)).Returns( + new Dictionary { { ValidTabModuleId, MonikerSettingValue } }); + } + + [TearDown] + public void TearDown() + { + ModuleController.ClearInstance(); + TabController.ClearInstance(); + } + + [Test] + public void ValidTabAndModuleIdLoadsActiveModule() + { + // Arrange + var request = new HttpRequestMessage(); + request.Headers.Add("tabid", ValidTabId.ToString(CultureInfo.InvariantCulture)); + request.Headers.Add("moduleid", ValidModuleId.ToString(CultureInfo.InvariantCulture)); + + // Act + ModuleInfo returnedModuleInfo; + var result = new StandardTabAndModuleInfoProvider().TryFindModuleInfo(request, out returnedModuleInfo); + + Assert.Multiple(() => + { + // Assert + Assert.That(result, Is.True); + Assert.That(returnedModuleInfo, Is.SameAs(this._moduleInfo)); + }); + } + + [Test] + public void ExistingMonikerValueInHeaderShouldFindTheCorrectModuleInfo() + { + // Arrange + var request = new HttpRequestMessage(); + request.Headers.Add("X-DNN-MONIKER", MonikerSettingValue); + + // Act + ModuleInfo returnedModuleInfo; + var result = new StandardTabAndModuleInfoProvider().TryFindModuleInfo(request, out returnedModuleInfo); + + Assert.Multiple(() => + { + // Assert + Assert.That(result, Is.True); + Assert.That(returnedModuleInfo, Is.SameAs(this._moduleInfo)); + }); + } + + [Test] + public void ExistingMonikerValueInQueryStringShouldFindTheCorrectModuleInfo() + { + // Arrange + var request = new HttpRequestMessage(); + request.RequestUri = new Uri( + "http://mysite.lvh.me/API/internalservices/controlbar/ToggleUserMode?moniker=" + HttpUtility.UrlEncode(MonikerSettingValue)); + + // Act + ModuleInfo returnedModuleInfo; + var result = new StandardTabAndModuleInfoProvider().TryFindModuleInfo(request, out returnedModuleInfo); + + Assert.Multiple(() => + { + // Assert + Assert.That(result, Is.True); + Assert.That(returnedModuleInfo, Is.SameAs(this._moduleInfo)); + }); + } + + [Test] + public void NonExistingMonikerValueShouldFailToReturnResult() + { + // Arrange + var request = new HttpRequestMessage(); + request.Headers.Add("X-DNN-MONIKER", "This moniker does not exist"); + + // Act + ModuleInfo returnedModuleInfo; + var result = new StandardTabAndModuleInfoProvider().TryFindModuleInfo(request, out returnedModuleInfo); + + Assert.Multiple(() => + { + // Assert + Assert.That(result, Is.False); + Assert.That(returnedModuleInfo, Is.Null); + }); + } + + [Test] + public void MissingAllHeadersShouldFailToReturnResult() + { + // Arrange + var request = new HttpRequestMessage(); + + // Act + ModuleInfo returnedModuleInfo; + var result = new StandardTabAndModuleInfoProvider().TryFindModuleInfo(request, out returnedModuleInfo); + + Assert.Multiple(() => + { + // Assert + Assert.That(result, Is.False); + Assert.That(returnedModuleInfo, Is.Null); + }); + } + + [Test] + public void OmittedTabIdWillNotLoadModule() + { + // Arrange + // no tabid + var request = new HttpRequestMessage(); + request.Headers.Add("moduleid", ValidModuleId.ToString(CultureInfo.InvariantCulture)); + + // Act + ModuleInfo returnedModuleInfo; + var result = new StandardTabAndModuleInfoProvider().TryFindModuleInfo(request, out returnedModuleInfo); + + // Assert + this._mockTabController.Verify(x => x.GetTab(It.IsAny(), It.IsAny()), Times.Never()); + this._mockModuleController.Verify(x => x.GetModule(It.IsAny(), It.IsAny(), false), Times.Never()); + Assert.Multiple(() => + { + Assert.That(returnedModuleInfo, Is.Null); + Assert.That(result, Is.False); + }); + } + + [Test] + public void OmittedModuleIdWillNotLoadModule() + { + // Arrange + // no moduleid + var request = new HttpRequestMessage(); + request.Headers.Add("tabid", ValidTabId.ToString(CultureInfo.InvariantCulture)); + + // Act + ModuleInfo returnedModuleInfo; + var result = new StandardTabAndModuleInfoProvider().TryFindModuleInfo(request, out returnedModuleInfo); + + // Assert + this._mockModuleController.Verify(x => x.GetModule(It.IsAny(), It.IsAny(), false), Times.Never()); + Assert.Multiple(() => + { + Assert.That(returnedModuleInfo, Is.Null); + Assert.That(result, Is.False); + }); + } + + [Test] + public void TabIdInHeaderTakesPriority() + { + // Arrange + var request = new HttpRequestMessage(); + request.Headers.Add("tabid", ValidTabId.ToString(CultureInfo.InvariantCulture)); + request.RequestUri = new Uri(string.Format("http://foo.com?{0}={1}", "tabid", ValidTabId + 1)); + + // Act + int tabId; + var result = new StandardTabAndModuleInfoProvider().TryFindTabId(request, out tabId); + + Assert.Multiple(() => + { + // Assert + Assert.That(tabId, Is.EqualTo(ValidTabId)); + Assert.That(result, Is.True); + }); + } + + [Test] + public void ModuleIdInHeaderTakesPriority() + { + // Arrange + var request = new HttpRequestMessage(); + request.Headers.Add("moduleid", ValidTabId.ToString(CultureInfo.InvariantCulture)); + request.RequestUri = new Uri(string.Format("http://foo.com?{0}={1}", "moduleid", ValidTabId + 1)); + + // Act + int moduleId; + var result = new StandardTabAndModuleInfoProvider().TryFindModuleId(request, out moduleId); + + Assert.Multiple(() => + { + // Assert + Assert.That(moduleId, Is.EqualTo(ValidTabId)); + Assert.That(result, Is.True); + }); + } + + [Test] + [TestCase("tabid")] + [TestCase("TABID")] + [TestCase("tAbiD")] + public void TabIdInHeaderAllowsTabIdToBeFound(string headerName) + { + // Arrange + var request = new HttpRequestMessage(); + request.Headers.Add(headerName, ValidTabId.ToString(CultureInfo.InvariantCulture)); + + // Act + int tabId; + var result = new StandardTabAndModuleInfoProvider().TryFindTabId(request, out tabId); + + Assert.Multiple(() => + { + // Assert + Assert.That(tabId, Is.EqualTo(ValidTabId)); + Assert.That(result, Is.True); + }); + } + + [Test] + [TestCase("moduleid")] + [TestCase("MODULEID")] + [TestCase("modULeid")] + public void ModuleIdInHeaderAllowsModuleIdToBeFound(string headerName) + { + // Arrange + var request = new HttpRequestMessage(); + request.Headers.Add(headerName, ValidModuleId.ToString(CultureInfo.InvariantCulture)); + + // Act + int moduleId; + var result = new StandardTabAndModuleInfoProvider().TryFindModuleId(request, out moduleId); + + Assert.Multiple(() => + { + // Assert + Assert.That(moduleId, Is.EqualTo(ValidModuleId)); + Assert.That(result, Is.True); + }); + } + + [Test] + [TestCase("x-dnn-moniker")] + [TestCase("X-Dnn-Moniker")] + [TestCase("X-DNN-MONIKER")] + public void MonikerInHeaderAllowsModuleToBeFound(string headerName) + { + // Arrange + var request = new HttpRequestMessage(); + request.Headers.Add(headerName, MonikerSettingValue); + + // Act + int moduleId; + var result = new StandardTabAndModuleInfoProvider().TryFindModuleId(request, out moduleId); + + Assert.Multiple(() => + { + // Assert + Assert.That(result, Is.True); + Assert.That(moduleId, Is.EqualTo(ValidModuleId)); + }); + } + + [Test] + [TestCase("tabid")] + [TestCase("TABID")] + [TestCase("tAbiD")] + public void TabIdInQueryStringAllowsTabIdToBeFound(string paramName) + { + // Arrange + var request = new HttpRequestMessage + { + RequestUri = new Uri(string.Format("http://foo.com?{0}={1}", paramName, ValidTabId)), + }; + + // Act + int tabId; + var result = new StandardTabAndModuleInfoProvider().TryFindTabId(request, out tabId); + + Assert.Multiple(() => + { + // Assert + Assert.That(tabId, Is.EqualTo(ValidTabId)); + Assert.That(result, Is.True); + }); + } + + [Test] + [TestCase("moduleid")] + [TestCase("MODULEID")] + [TestCase("modULeid")] + public void ModuleIdInQueryStringAllowsModuleIdToBeFound(string paramName) + { + // Arrange + var request = new HttpRequestMessage + { + RequestUri = new Uri(string.Format("http://foo.com?{0}={1}", paramName, ValidModuleId)), + }; + + // Act + int moduleId; + var result = new StandardTabAndModuleInfoProvider().TryFindModuleId(request, out moduleId); + + Assert.Multiple(() => + { + // Assert + Assert.That(moduleId, Is.EqualTo(ValidModuleId)); + Assert.That(result, Is.True); + }); + } + + [Test] + public void NoTabIdInRequestReturnsNoTabId() + { + // Arrange + + // Act + int tabId; + var result = new StandardTabAndModuleInfoProvider().TryFindTabId(new HttpRequestMessage(), out tabId); + + Assert.Multiple(() => + { + // Assert + Assert.That(result, Is.False); + Assert.That(tabId, Is.EqualTo(-1)); + }); + } + + [Test] + public void NoModuleIdInRequestReturnsNoModuleId() + { + // Arrange + + // Act + int moduleId; + var result = new StandardTabAndModuleInfoProvider().TryFindModuleId(new HttpRequestMessage(), out moduleId); + + Assert.Multiple(() => + { + // Assert + Assert.That(result, Is.False); + Assert.That(moduleId, Is.EqualTo(-1)); + }); + } + + private static IDataReader GetPortalsCallBack(string culture) + { + return GetPortalCallBack(0, culture); + } + + private static IDataReader GetPortalCallBack(int portalId, string culture) + { + var table = new DataTable("Portal"); + + var cols = new[] + { + "PortalID", "PortalGroupID", "PortalName", "LogoFile", "FooterText", "ExpiryDate", + "UserRegistration", "BannerAdvertising", "AdministratorId", "Currency", "HostFee", + "HostSpace", "PageQuota", "UserQuota", "AdministratorRoleId", "RegisteredRoleId", + "Description", "KeyWords", "BackgroundFile", "GUID", "PaymentProcessor", + "ProcessorUserId", + "ProcessorPassword", "SiteLogHistory", "Email", "DefaultLanguage", "TimezoneOffset", + "AdminTabId", "HomeDirectory", "SplashTabId", "HomeTabId", "LoginTabId", "RegisterTabId", + "UserTabId", "SearchTabId", "Custom404TabId", "Custom500TabId", "TermsTabId", "PrivacyTabId", "SuperTabId", + "CreatedByUserID", "CreatedOnDate", "LastModifiedByUserID", "LastModifiedOnDate", + "CultureCode", + }; + + foreach (var col in cols) + { + table.Columns.Add(col); + } + + const int homePage = 1; + table.Rows.Add(portalId, null, "My Website", "Logo.png", "Copyright (c) 2018 DNN Corp.", null, + "2", "0", "2", "USD", "0", "0", "0", "0", "0", "1", "My Website", + "DotNetNuke, DNN, Content, Management, CMS", null, "1057AC7A-3C08-4849-A3A6-3D2AB4662020", + null, null, null, "0", "admin@changeme.invalid", "en-US", "-8", "58", "Portals/0", null, + homePage.ToString(), null, null, "57", "56", "-1", "-1", null, null, "7", "-1", "2011-08-25 07:34:11", + "-1", "2011-08-25 07:34:29", culture); + + return table.CreateDataReader(); + } + + private void RegisterMock(Action register, out Mock mock, out T instance) + where T : class + { + mock = new Mock(); + instance = mock.Object; + register(instance); + } + } +} diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Web/Api/TypeLocatorTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Web/Api/TypeLocatorTests.cs index a028f675032..9284c606563 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Web/Api/TypeLocatorTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Web/Api/TypeLocatorTests.cs @@ -2,33 +2,33 @@ // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information -namespace DotNetNuke.Tests.Web.Api -{ - using System; - using System.Linq; +namespace DotNetNuke.Tests.Web.Api +{ + using System; + using System.Linq; - using DotNetNuke.Framework.Internal.Reflection; - using DotNetNuke.Framework.Reflections; - using Moq; - using NUnit.Framework; + using DotNetNuke.Framework.Internal.Reflection; + using DotNetNuke.Framework.Reflections; + using Moq; + using NUnit.Framework; - public class TypeLocatorTests - { - [Test] - public void LocateAllMatchingTypes() - { - var assembly = new Mock(); - assembly.Setup(x => x.GetTypes()).Returns(new[] { typeof(TypeLocatorTests), typeof(ServiceRoutingManagerTests) }); - var assemblyLocator = new Mock(); - assemblyLocator.Setup(x => x.Assemblies).Returns(new[] { assembly.Object }); - - var typeLocator = new TypeLocator { AssemblyLocator = assemblyLocator.Object }; - - var types = typeLocator.GetAllMatchingTypes(x => true).ToList(); - - CollectionAssert.AreEquivalent(new[] { typeof(TypeLocatorTests), typeof(ServiceRoutingManagerTests) }, types); - assembly.Verify(x => x.GetTypes(), Times.Once()); - assemblyLocator.Verify(x => x.Assemblies, Times.Once()); - } - } -} + public class TypeLocatorTests + { + [Test] + public void LocateAllMatchingTypes() + { + var assembly = new Mock(); + assembly.Setup(x => x.GetTypes()).Returns(new[] { typeof(TypeLocatorTests), typeof(ServiceRoutingManagerTests) }); + var assemblyLocator = new Mock(); + assemblyLocator.Setup(x => x.Assemblies).Returns(new[] { assembly.Object }); + + var typeLocator = new TypeLocator { AssemblyLocator = assemblyLocator.Object }; + + var types = typeLocator.GetAllMatchingTypes(x => true).ToList(); + + Assert.That(types, Is.EquivalentTo(new[] { typeof(TypeLocatorTests), typeof(ServiceRoutingManagerTests) })); + assembly.Verify(x => x.GetTypes(), Times.Once()); + assemblyLocator.Verify(x => x.Assemblies, Times.Once()); + } + } +} diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Web/InternalServices/FileUploadControllerTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Web/InternalServices/FileUploadControllerTests.cs index acd74de9683..a51a8c10bf6 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Web/InternalServices/FileUploadControllerTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Web/InternalServices/FileUploadControllerTests.cs @@ -61,7 +61,7 @@ public async Task UploadFromLocal_ShouldUploadFile_WithTrCultureAsync() this._testInstance.Request = request; await this._testInstance.UploadFromLocal(-1); - Assert.IsTrue(_synchronizationContext.IsUploadFileCalled()); + Assert.That(_synchronizationContext.IsUploadFileCalled(), Is.True); } private void SetupPortalSettings() diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Web/InternalServices/SearchServiceControllerTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Web/InternalServices/SearchServiceControllerTests.cs index bc783dd52fd..aa37afaf48f 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Web/InternalServices/SearchServiceControllerTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Web/InternalServices/SearchServiceControllerTests.cs @@ -202,17 +202,20 @@ public void GetSearchResultsDetailed() // Assert var groupedDetailViews = search as List ?? search.ToList(); - // Overall 3 groups - tab1, tab2 and user - Assert.AreEqual(3, groupedDetailViews.Count()); + Assert.Multiple(() => + { + // Overall 3 groups - tab1, tab2 and user + Assert.That(groupedDetailViews.Count(), Is.EqualTo(3)); - // Tab 1 has 2 DetailViews - Assert.AreEqual(2, groupedDetailViews.Single(x => x.DocumentUrl == tabUrl1).Results.Count()); + // Tab 1 has 2 DetailViews + Assert.That(groupedDetailViews.Single(x => x.DocumentUrl == tabUrl1).Results.Count(), Is.EqualTo(2)); - // Tab 2 has 1 DetailViews - Assert.AreEqual(1, groupedDetailViews.Single(x => x.DocumentUrl == tabUrl2).Results.Count()); + // Tab 2 has 1 DetailViews + Assert.That(groupedDetailViews.Single(x => x.DocumentUrl == tabUrl2).Results.Count(), Is.EqualTo(1)); - // UserUrl has 1 DetailViews - Assert.AreEqual(1, groupedDetailViews.Single(x => x.DocumentUrl == userUrl).Results.Count()); + // UserUrl has 1 DetailViews + Assert.That(groupedDetailViews.Single(x => x.DocumentUrl == userUrl).Results.Count(), Is.EqualTo(1)); + }); } [Test] @@ -254,16 +257,19 @@ public void GetSearchResultsBasic() // Assert - overall 2 groups: tabs and users var groupedBasicViews = search as List ?? search.ToList(); - Assert.AreEqual(2, groupedBasicViews.Count()); + Assert.Multiple(() => + { + Assert.That(groupedBasicViews.Count(), Is.EqualTo(2)); - // 1 User results - Assert.AreEqual(1, groupedBasicViews.Single(x => x.DocumentTypeName == "user").Results.Count()); + // 1 User results + Assert.That(groupedBasicViews.Single(x => x.DocumentTypeName == "user").Results.Count(), Is.EqualTo(1)); - // User result should have 1 attribute(avatar) - Assert.AreEqual(1, groupedBasicViews.Single(x => x.DocumentTypeName == "user").Results.ElementAt(0).Attributes.Count()); + // User result should have 1 attribute(avatar) + Assert.That(groupedBasicViews.Single(x => x.DocumentTypeName == "user").Results.ElementAt(0).Attributes.Count(), Is.EqualTo(1)); - // 2 Tabs results - Assert.AreEqual(2, groupedBasicViews.Single(x => x.DocumentTypeName == "tab").Results.Count()); + // 2 Tabs results + Assert.That(groupedBasicViews.Single(x => x.DocumentTypeName == "tab").Results.Count(), Is.EqualTo(2)); + }); } [Test] @@ -332,11 +338,17 @@ public void ModifyingDocumentsDoesNotCreateDuplicates() // Run var searchResults = this.GetGroupedDetailViewResults(query).ToList(); - // Assert - Assert.AreEqual(1, searchResults.Count()); - Assert.AreEqual(1, searchResults.First().Results.Count); - Assert.AreEqual(tabUrl, searchResults.First().Results.First().DocumentUrl); - Assert.AreEqual(titleModified, searchResults.First().Results.First().Title); + Assert.Multiple(() => + { + // Assert + Assert.That(searchResults.Count(), Is.EqualTo(1)); + Assert.That(searchResults.First().Results, Has.Count.EqualTo(1)); + }); + Assert.Multiple(() => + { + Assert.That(searchResults.First().Results.First().DocumentUrl, Is.EqualTo(tabUrl)); + Assert.That(searchResults.First().Results.First().Title, Is.EqualTo(titleModified)); + }); } private void CreateNewLuceneControllerInstance() diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Web/InternalServices/TabVersionControllerTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Web/InternalServices/TabVersionControllerTests.cs index c97ca1f9301..9b80e25b86e 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Web/InternalServices/TabVersionControllerTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Web/InternalServices/TabVersionControllerTests.cs @@ -67,7 +67,7 @@ public void GetTabVersions_Verify_User_Preferred_TimeZone(string userPreferredTi var localizedDate = TimeZoneInfo.ConvertTime(tabVersion.CreatedOnDate, DateUtilsTestable.GetDatabaseDateTimeOffset(), userTimeZone); // Assert - Assert.AreEqual(localizedDate, expectedDateTime); + Assert.That(expectedDateTime, Is.EqualTo(localizedDate)); } private void SetupCBO() diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Web/Mvp/ModuleSettingsPresenterTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Web/Mvp/ModuleSettingsPresenterTests.cs index 08290561f95..20852c03e8d 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Web/Mvp/ModuleSettingsPresenterTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Web/Mvp/ModuleSettingsPresenterTests.cs @@ -39,11 +39,14 @@ public void ModuleSettingsPresenter_Load_Initialises_Both_Dictionaries_On_PostBa view.Raise(v => v.Load += null, EventArgs.Empty); // Assert - Assert.IsInstanceOf>(view.Object.Model.ModuleSettings); - Assert.AreEqual(0, view.Object.Model.ModuleSettings.Count); - - Assert.IsInstanceOf>(view.Object.Model.TabModuleSettings); - Assert.AreEqual(0, view.Object.Model.TabModuleSettings.Count); + Assert.That(view.Object.Model.ModuleSettings, Is.InstanceOf>()); + Assert.Multiple(() => + { + Assert.That(view.Object.Model.ModuleSettings, Is.Empty); + + Assert.That(view.Object.Model.TabModuleSettings, Is.InstanceOf>()); + }); + Assert.That(view.Object.Model.TabModuleSettings, Is.Empty); } [Test] @@ -58,11 +61,14 @@ public void ModuleSettingsPresenter_Load_Does_Not_Initialise_Dictionaries_If_Not presenter.IsPostBack = false; // Act - view.Raise(v => v.Load += null, EventArgs.Empty); - - // Assert - Assert.IsNull(view.Object.Model.ModuleSettings); - Assert.IsNull(view.Object.Model.TabModuleSettings); + view.Raise(v => v.Load += null, EventArgs.Empty); + + Assert.Multiple(() => + { + // Assert + Assert.That(view.Object.Model.ModuleSettings, Is.Null); + Assert.That(view.Object.Model.TabModuleSettings, Is.Null); + }); } [Test] @@ -82,11 +88,14 @@ public void ModuleSettingsPresenter_LoadSettings_Loads_Both_Dictionaries() view.Raise(v => v.OnLoadSettings += null, EventArgs.Empty); // Assert - Assert.IsInstanceOf>(view.Object.Model.ModuleSettings); - Assert.AreEqual(_moduleSettingCount, view.Object.Model.ModuleSettings.Count); - - Assert.IsInstanceOf>(view.Object.Model.TabModuleSettings); - Assert.AreEqual(_tabModuleSettingCount, view.Object.Model.TabModuleSettings.Count); + Assert.That(view.Object.Model.ModuleSettings, Is.InstanceOf>()); + Assert.Multiple(() => + { + Assert.That(view.Object.Model.ModuleSettings, Has.Count.EqualTo(_moduleSettingCount)); + + Assert.That(view.Object.Model.TabModuleSettings, Is.InstanceOf>()); + }); + Assert.That(view.Object.Model.TabModuleSettings, Has.Count.EqualTo(_tabModuleSettingCount)); } [Test] diff --git a/Dnn.AdminExperience/Tests/Dnn.PersonaBar.ConfigConsole.Tests/ConfigConsoleControllerTests.cs b/Dnn.AdminExperience/Tests/Dnn.PersonaBar.ConfigConsole.Tests/ConfigConsoleControllerTests.cs index 67bde78293a..10bc8738c16 100644 --- a/Dnn.AdminExperience/Tests/Dnn.PersonaBar.ConfigConsole.Tests/ConfigConsoleControllerTests.cs +++ b/Dnn.AdminExperience/Tests/Dnn.PersonaBar.ConfigConsole.Tests/ConfigConsoleControllerTests.cs @@ -73,9 +73,12 @@ public void ValidateConfigFile(string fileName, string fileContent, int expected exception = ex; } - // assert - Assert.AreEqual(shouldThrow, exception != null); - Assert.AreEqual(expectedErrorCount, errors.Count()); + Assert.Multiple(() => + { + // assert + Assert.That(exception != null, Is.EqualTo(shouldThrow)); + Assert.That(errors.Count(), Is.EqualTo(expectedErrorCount)); + }); } } } diff --git a/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Pages.Tests/GetPageUnitTests.cs b/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Pages.Tests/GetPageUnitTests.cs index 90a88cd4985..e9e7e9f069c 100644 --- a/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Pages.Tests/GetPageUnitTests.cs +++ b/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Pages.Tests/GetPageUnitTests.cs @@ -56,13 +56,16 @@ public void Run_GetPageWithValidCommand_ShouldSuccessResponse() this.SetupCommand(); // Act - var result = this._getCommand.Run(); - - // Assert - Assert.IsFalse(result.IsError); - Assert.IsNotNull(result.Data); - Assert.AreEqual(1, result.Records); - Assert.IsFalse(result is ConsoleErrorResultModel); + var result = this._getCommand.Run(); + + Assert.Multiple(() => + { + // Assert + Assert.That(result.IsError, Is.False); + Assert.That(result.Data, Is.Not.Null); + Assert.That(result.Records, Is.EqualTo(1)); + Assert.That(result is ConsoleErrorResultModel, Is.False); + }); } [Test] @@ -77,11 +80,14 @@ public void Run_GetPageWithValidCommandForNonExistingTab_ShouldErrorResponse() this.SetupCommand(); // Act - var result = this._getCommand.Run(); - - // Assert - Assert.IsTrue(result.IsError); - Assert.IsTrue(result is ConsoleErrorResultModel); + var result = this._getCommand.Run(); + + Assert.Multiple(() => + { + // Assert + Assert.That(result.IsError, Is.True); + Assert.That(result is ConsoleErrorResultModel, Is.True); + }); } [Test] @@ -94,11 +100,14 @@ public void Run_GetPageWithValidCommandForRequestedPortalNotAllowed_ShouldErrorR this.SetupCommand(); // Act - var result = this._getCommand.Run(); - - // Assert - Assert.IsTrue(result.IsError); - Assert.IsTrue(result is ConsoleErrorResultModel); + var result = this._getCommand.Run(); + + Assert.Multiple(() => + { + // Assert + Assert.That(result.IsError, Is.True); + Assert.That(result is ConsoleErrorResultModel, Is.True); + }); } [Test] @@ -111,11 +120,14 @@ public void Run_GetPageWithValidCommandForPortalNotAllowed_ShouldErrorResponse() this.SetupCommand(); // Act - var result = this._getCommand.Run(); - - // Assert - Assert.IsTrue(result.IsError); - Assert.IsTrue(result is ConsoleErrorResultModel); + var result = this._getCommand.Run(); + + Assert.Multiple(() => + { + // Assert + Assert.That(result.IsError, Is.True); + Assert.That(result is ConsoleErrorResultModel, Is.True); + }); } private void SetupCommand() diff --git a/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Pages.Tests/PagesControllerUnitTests.cs b/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Pages.Tests/PagesControllerUnitTests.cs index 5418b388b99..fed9efb1298 100644 --- a/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Pages.Tests/PagesControllerUnitTests.cs +++ b/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Pages.Tests/PagesControllerUnitTests.cs @@ -75,7 +75,7 @@ public void ValidatePageUrlSettings_CleanNameForUrl_URLArgumentShouldBeLocalPath bool result = this._pagesController.ValidatePageUrlSettings(portalSettings, pageSettings, tab, ref inValidField, ref errorMessage); // Assert - Assert.IsTrue(result); + Assert.That(result, Is.True); this._urlRewriterUtilsWrapperMock.VerifyAll(); this._friendlyUrlWrapperMock.Verify(d => d.CleanNameForUrl(expected, friendlyOptions, out modified), Times.Once()); } diff --git a/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Pages.Tests/PurgePageUnitTests.cs b/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Pages.Tests/PurgePageUnitTests.cs index af9a201dc6f..7014fac4951 100644 --- a/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Pages.Tests/PurgePageUnitTests.cs +++ b/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Pages.Tests/PurgePageUnitTests.cs @@ -55,7 +55,7 @@ public void Call_PurgePage_WithValidCommand_ShouldReturnSuccessResponse() var result = purgeCommand.Run(); // Assert - Assert.IsFalse(result.IsError); + Assert.That(result.IsError, Is.False); } [Test] @@ -83,7 +83,7 @@ public void Call_PurgePage_WithValidCommandAndPageContentNotAllowed_ShouldReturn var result = purgeCommand.Run(); // Assert - Assert.IsTrue(result.IsError); + Assert.That(result.IsError, Is.True); } [Test] @@ -103,7 +103,7 @@ public void Call_PurgePage_PageDoesNotExist_ShouldReturnErrorResponse() var result = purgeCommand.Run(); // Assert - Assert.IsTrue(result.IsError); + Assert.That(result.IsError, Is.True); this._tabControllerMock.Verify(t => t.GetTab(tabId, portalSettings.PortalId)); } } diff --git a/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Pages.Tests/RestorePageUnitTests.cs b/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Pages.Tests/RestorePageUnitTests.cs index 99ed99bf02f..9ef7a1b919c 100644 --- a/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Pages.Tests/RestorePageUnitTests.cs +++ b/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Pages.Tests/RestorePageUnitTests.cs @@ -58,12 +58,15 @@ public void Run_RestorePage_WithValidCommand_ShouldReturnSuccessResponse() this.SetupCommand(); // Act - var result = this._restorePage.Run(); - - // Assert - Assert.IsFalse(result.IsError); - Assert.AreEqual(1, result.Records); - Assert.IsFalse(result is ConsoleErrorResultModel); + var result = this._restorePage.Run(); + + Assert.Multiple(() => + { + // Assert + Assert.That(result.IsError, Is.False); + Assert.That(result.Records, Is.EqualTo(1)); + Assert.That(result is ConsoleErrorResultModel, Is.False); + }); } [Test] @@ -78,11 +81,14 @@ public void Run_RestorePage_WithValidCommandForNonExistingTab_ShouldReturnErrorR this.SetupCommand(); // Act - var result = this._restorePage.Run(); - - // Assert - Assert.IsTrue(result.IsError); - Assert.IsTrue(result is ConsoleErrorResultModel); + var result = this._restorePage.Run(); + + Assert.Multiple(() => + { + // Assert + Assert.That(result.IsError, Is.True); + Assert.That(result is ConsoleErrorResultModel, Is.True); + }); } [Test] @@ -95,11 +101,14 @@ public void Run_RestorePage_WithValidCommandForRequestedPortalNotAllowed_ShouldR this.SetupCommand(); // Act - var result = this._restorePage.Run(); - - // Assert - Assert.IsTrue(result.IsError); - Assert.IsTrue(result is ConsoleErrorResultModel); + var result = this._restorePage.Run(); + + Assert.Multiple(() => + { + // Assert + Assert.That(result.IsError, Is.True); + Assert.That(result is ConsoleErrorResultModel, Is.True); + }); } [Test] @@ -114,11 +123,14 @@ public void Run_RestorePage_WithValidCommandForNotRestoreTab_ShouldReturnErrorRe this.SetupCommand(); // Act - var result = this._restorePage.Run(); - - // Assert - Assert.IsTrue(result.IsError); - Assert.IsTrue(result is ConsoleErrorResultModel); + var result = this._restorePage.Run(); + + Assert.Multiple(() => + { + // Assert + Assert.That(result.IsError, Is.True); + Assert.That(result is ConsoleErrorResultModel, Is.True); + }); } private void SetupCommand() diff --git a/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Security.Tests/Checks/CheckTelerikPresenceTests.cs b/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Security.Tests/Checks/CheckTelerikPresenceTests.cs index 1c7343bcf32..04479b3ad38 100644 --- a/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Security.Tests/Checks/CheckTelerikPresenceTests.cs +++ b/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Security.Tests/Checks/CheckTelerikPresenceTests.cs @@ -28,10 +28,13 @@ public void Execute_WhenError_ReturnsUnverified() // act var result = sut.Execute(); - // assert - Assert.AreEqual(SeverityEnum.Unverified, result.Severity); - Assert.AreEqual(1, result.Notes.Count()); - Assert.IsTrue(result.Notes.First() == "An internal error occurred. See logs for details."); + Assert.Multiple(() => + { + // assert + Assert.That(result.Severity, Is.EqualTo(SeverityEnum.Unverified)); + Assert.That(result.Notes.Count(), Is.EqualTo(1)); + Assert.That(result.Notes.First() == "An internal error occurred. See logs for details.", Is.True); + }); } [Test] @@ -57,10 +60,13 @@ public void Execute_WhenInstalledAndUsed_ReturnsInstalledAndUsed() // act var result = sut.Execute(); - // assert - Assert.AreEqual(SeverityEnum.Failure, result.Severity); - Assert.AreEqual(1, result.Notes.Count()); - Assert.IsTrue(result.Notes.First().Contains("* DotNetNuke.Modules.Mod3.dll")); + Assert.Multiple(() => + { + // assert + Assert.That(result.Severity, Is.EqualTo(SeverityEnum.Failure)); + Assert.That(result.Notes.Count(), Is.EqualTo(1)); + Assert.That(result.Notes.First().Contains("* DotNetNuke.Modules.Mod3.dll"), Is.True); + }); } [Test] @@ -82,9 +88,12 @@ public void Execute_WhenInstalledButNotUsed_ReturnsInstalledButNotUsed() // act var result = sut.Execute(); - // assert - Assert.AreEqual(SeverityEnum.Failure, result.Severity); - Assert.AreEqual(1, result.Notes.Count()); + Assert.Multiple(() => + { + // assert + Assert.That(result.Severity, Is.EqualTo(SeverityEnum.Failure)); + Assert.That(result.Notes.Count(), Is.EqualTo(1)); + }); } [Test] @@ -102,9 +111,12 @@ public void Execute_WhenNotInstalled_ReturnsNotInstalled() // act var result = sut.Execute(); - // assert - Assert.AreEqual(SeverityEnum.Pass, result.Severity); - Assert.AreEqual(0, result.Notes.Count()); + Assert.Multiple(() => + { + // assert + Assert.That(result.Severity, Is.EqualTo(SeverityEnum.Pass)); + Assert.That(result.Notes.Count(), Is.EqualTo(0)); + }); } } } diff --git a/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Security.Tests/Checks/CheckUserProfilePageTests.cs b/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Security.Tests/Checks/CheckUserProfilePageTests.cs index e82aaf53000..a46c2ff9b34 100644 --- a/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Security.Tests/Checks/CheckUserProfilePageTests.cs +++ b/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Security.Tests/Checks/CheckUserProfilePageTests.cs @@ -51,10 +51,13 @@ public void Constructor_WhenArgumentIsNull_ThrowsArgumentNullException(string nu unexpectedException = ex; } - // assert - Assert.IsNull(unexpectedException); - Assert.IsNotNull(argumentNullException); - Assert.AreEqual(nullParamName, argumentNullException.ParamName); + Assert.Multiple(() => + { + // assert + Assert.That(unexpectedException, Is.Null); + Assert.That(argumentNullException, Is.Not.Null); + }); + Assert.That(argumentNullException.ParamName, Is.EqualTo(nullParamName)); } [Test] @@ -74,7 +77,7 @@ public void Execute_WhenNotFound_ReturnsPass() var result = sut.Execute(); // assert - Assert.AreEqual(SeverityEnum.Pass, result.Severity); + Assert.That(result.Severity, Is.EqualTo(SeverityEnum.Pass)); } [Test] @@ -96,7 +99,7 @@ public void Execute_WhenDeleted_ReturnsPass() var result = sut.Execute(); // assert - Assert.AreEqual(SeverityEnum.Pass, result.Severity); + Assert.That(result.Severity, Is.EqualTo(SeverityEnum.Pass)); } [Test] @@ -120,7 +123,7 @@ public void Execute_WhenPublic_ReturnsWarning() var result = sut.Execute(); // assert - Assert.AreEqual(SeverityEnum.Warning, result.Severity); + Assert.That(result.Severity, Is.EqualTo(SeverityEnum.Warning)); } [Test] @@ -144,7 +147,7 @@ public void Execute_WhenNeitherPublicNorActivityFeed_ReturnsPass() var result = sut.Execute(); // assert - Assert.AreEqual(SeverityEnum.Pass, result.Severity); + Assert.That(result.Severity, Is.EqualTo(SeverityEnum.Pass)); } [Test] @@ -168,7 +171,7 @@ public void Execute_WhenNotPublicAndActivityFeedAndMyProfileNotFound_ReturnsPass var result = sut.Execute(); // assert - Assert.AreEqual(SeverityEnum.Pass, result.Severity); + Assert.That(result.Severity, Is.EqualTo(SeverityEnum.Pass)); } [Test] @@ -193,7 +196,7 @@ public void Execute_WhenNotPublicAndActivityFeedAndMyProfileDeleted_ReturnsPass( var result = sut.Execute(); // assert - Assert.AreEqual(SeverityEnum.Pass, result.Severity); + Assert.That(result.Severity, Is.EqualTo(SeverityEnum.Pass)); } [Test] @@ -221,7 +224,7 @@ public void Execute_WhenNotPublicAndActivityFeedAndMyProfileValid_ReturnsCorrect var result = sut.Execute(); // assert - Assert.AreEqual(expectedSeverity, result.Severity); + Assert.That(result.Severity, Is.EqualTo(expectedSeverity)); } private static TabInfo BuildActivityFeedTabInfo(bool deleted = false) => new TabInfo diff --git a/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Security.Tests/Services/SecurityControllerTests.cs b/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Security.Tests/Services/SecurityControllerTests.cs index df7c2c743ac..58c0287d253 100644 --- a/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Security.Tests/Services/SecurityControllerTests.cs +++ b/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Security.Tests/Services/SecurityControllerTests.cs @@ -31,7 +31,7 @@ public void Services_Controller_AddPortalAlias_TrimsProtocolAndSlash() var alias = sut.AddPortalAlias(SslUrl, PortalId); // assert - Assert.AreEqual(SomeAlias, alias); + Assert.That(alias, Is.EqualTo(SomeAlias)); } [Test] diff --git a/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Users.Tests/AddRolesUnitTests.cs b/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Users.Tests/AddRolesUnitTests.cs index 73be1189e1f..3d124ae6db4 100644 --- a/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Users.Tests/AddRolesUnitTests.cs +++ b/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Users.Tests/AddRolesUnitTests.cs @@ -75,7 +75,7 @@ public void Run_AddRolesWithValidArguments_ReturnSuccessResponse() var result = this.RunCommand(userId.ToString(), "--roles", "Tester"); // Assert - Assert.IsFalse(result.IsError); + Assert.That(result.IsError, Is.False); } [TestCase] @@ -96,7 +96,7 @@ public void Run_AddRolesWhenUserNotValid_ReturnErrorResponse() var result = this.RunCommand(userId.ToString()); // Assert - Assert.IsTrue(result.IsError); + Assert.That(result.IsError, Is.True); } [TestCase] diff --git a/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Users.Tests/DeleteUserUnitTests.cs b/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Users.Tests/DeleteUserUnitTests.cs index 7f6f4606551..6aacbeca2dd 100644 --- a/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Users.Tests/DeleteUserUnitTests.cs +++ b/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Users.Tests/DeleteUserUnitTests.cs @@ -47,7 +47,7 @@ public void Run_DeleteValidUserId_ReturnSuccessResponse() var result = this.RunCommand(userId.ToString()); // Assert - Assert.IsFalse(result.IsError); + Assert.That(result.IsError, Is.False); } [Test] @@ -67,7 +67,7 @@ public void Run_DeleteAlreadyDeletedUser_ReturnErrorResponse() var result = this.RunCommand(userId.ToString()); // Assert - Assert.IsTrue(result.IsError); + Assert.That(result.IsError, Is.True); } [Test] @@ -94,7 +94,7 @@ public void Run_DeleteUserFailed_ReturnErrorResponse() var result = this.RunCommand(userId.ToString()); // Assert - Assert.IsTrue(result.IsError); + Assert.That(result.IsError, Is.True); } [Test] @@ -112,7 +112,7 @@ public void Run_DeleteNullUserId_ReturnErrorResponse() var result = this.RunCommand(); // Assert - Assert.IsTrue(result.IsError); + Assert.That(result.IsError, Is.True); } protected override DeleteUser CreateCommand() diff --git a/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Users.Tests/GetUserUnitTests.cs b/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Users.Tests/GetUserUnitTests.cs index 593f6543def..586a0e7990c 100644 --- a/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Users.Tests/GetUserUnitTests.cs +++ b/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Users.Tests/GetUserUnitTests.cs @@ -52,7 +52,7 @@ public void Run_GetUserByEmailWithValidCommand_ShouldSuccessResponse() var result = this.RunCommand("--email", "user1@g.com"); // Assert - Assert.IsFalse(result.IsError); + Assert.That(result.IsError, Is.False); } [TestCase] @@ -81,7 +81,7 @@ public void Run_GetUserByUserNameWithValidCommand_ShouldSuccessResponse() var result = this.RunCommand("--username", "user1"); // Assert - Assert.IsFalse(result.IsError); + Assert.That(result.IsError, Is.False); } [Test] @@ -97,7 +97,7 @@ public void Run_GetUserWithValidCommand_ShouldSuccessResponse() var result = this.RunCommand(this._userId.ToString()); // Assert - Assert.IsFalse(result.IsError); + Assert.That(result.IsError, Is.False); } [Test] @@ -115,7 +115,7 @@ public void Run_GetUserWithValidCommand_ShouldErrorResponse() var result = this.RunCommand(this._userId.ToString()); // Assert - Assert.IsTrue(result.IsError); + Assert.That(result.IsError, Is.True); } protected override void ChildSetup() diff --git a/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Users.Tests/RestoreUserUnitTests.cs b/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Users.Tests/RestoreUserUnitTests.cs index 579793d46cc..6c779126c30 100644 --- a/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Users.Tests/RestoreUserUnitTests.cs +++ b/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Users.Tests/RestoreUserUnitTests.cs @@ -41,7 +41,7 @@ public void Run_RestoreValidUserId_ReturnSuccessResponse() var result = this.RunCommand(userId.ToString()); // Assert - Assert.IsFalse(result.IsError); + Assert.That(result.IsError, Is.False); } [Test] @@ -61,7 +61,7 @@ public void Run_RecycleBinControllerRestoringError_ReturnErrorResponse() var result = this.RunCommand(userId.ToString()); // Assert - Assert.IsTrue(result.IsError); + Assert.That(result.IsError, Is.True); } [Test] @@ -79,7 +79,7 @@ public void Run_RestoreNotDeletedUser_ReturnErrorResponse() var result = this.RunCommand(userId.ToString()); // Assert - Assert.IsTrue(result.IsError); + Assert.That(result.IsError, Is.True); } [Test] @@ -98,7 +98,7 @@ public void Run_RestoreNullUserId_ReturnErrorResponse() var result = this.RunCommand(); // Assert - Assert.IsTrue(result.IsError); + Assert.That(result.IsError, Is.True); } protected override RestoreUser CreateCommand() diff --git a/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Users.Tests/SearchUsersBySearchTermTest.cs b/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Users.Tests/SearchUsersBySearchTermTest.cs index d9b8a194a39..0cfcfd111e0 100644 --- a/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Users.Tests/SearchUsersBySearchTermTest.cs +++ b/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Users.Tests/SearchUsersBySearchTermTest.cs @@ -60,7 +60,7 @@ public void FilteredSearchTest(string searchText, string expectedFilteredText) this.usersContract.SearchText = searchText; this.usersCtrl.GetUsers(this.usersContract, true, out totalRecords); - Assert.AreEqual(expectedFilteredText, this.usersCtrl.LastSearch); + Assert.That(this.usersCtrl.LastSearch, Is.EqualTo(expectedFilteredText)); } private class UsersControllerTestable : UsersController diff --git a/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Users.Tests/SetUserUnitTests.cs b/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Users.Tests/SetUserUnitTests.cs index bc493c0ec9d..919f306ae08 100644 --- a/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Users.Tests/SetUserUnitTests.cs +++ b/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Users.Tests/SetUserUnitTests.cs @@ -36,7 +36,7 @@ public void Run_UserIdNull_ReturnErrorResponse() var result = this.RunCommand("--username", "testusername", "--firstname", "testfirstname", "--lastname", "testlastname"); // Assert - Assert.IsTrue(result.IsError); + Assert.That(result.IsError, Is.True); } [TestCase("--email", "user@gm.com")] @@ -62,11 +62,14 @@ public void Run_ValidCommand_ReturnSuccessResponse(string attributeName, string .Returns(userInfo); // Act - var result = this.RunCommand(userId.ToString(), "--firstname", "user4", "--lastname", "user4", attributeName, attributeValue); - - // Assert - Assert.IsFalse(result.IsError); - Assert.AreEqual(1, result.Records); + var result = this.RunCommand(userId.ToString(), "--firstname", "user4", "--lastname", "user4", attributeName, attributeValue); + + Assert.Multiple(() => + { + // Assert + Assert.That(result.IsError, Is.False); + Assert.That(result.Records, Is.EqualTo(1)); + }); } protected override void ChildSetup() diff --git a/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Users.Tests/UserValidatorUnitTests.cs b/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Users.Tests/UserValidatorUnitTests.cs index 1aa616b6436..f099168809a 100644 --- a/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Users.Tests/UserValidatorUnitTests.cs +++ b/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Users.Tests/UserValidatorUnitTests.cs @@ -50,7 +50,7 @@ public void ValidateUser_IfUserIdWithValidValue_ThenSuccessResponse() var result = this._userValidator.ValidateUser(userId, null, null, out userInfo); // Assert - Assert.IsNull(result); + Assert.That(result, Is.Null); } [Test] @@ -66,7 +66,7 @@ public void ValidateUser_IfUserAllowedInSiteGroup_ThenSuccessResponse() var result = this._userValidator.ValidateUser(userId, null, null, out userInfo); // Assert - Assert.IsNull(result); + Assert.That(result, Is.Null); } [Test] @@ -82,7 +82,7 @@ public void ValidateUser_IfUserNotAllowedInSiteGroup_ThenErrorResponse() var result = this._userValidator.ValidateUser(userId, null, null, out userInfo); // Assert - Assert.IsTrue(result.IsError); + Assert.That(result.IsError, Is.True); } [Test] @@ -101,7 +101,7 @@ public void ValidateUser_IfUserIdNotFound_ThenErrorResponse() var result = this._userValidator.ValidateUser(userId, null, null, out userInfo); // Assert - Assert.IsTrue(result.IsError); + Assert.That(result.IsError, Is.True); } [Test] @@ -116,7 +116,7 @@ public void ValidateUser_IfUserIdWithoutValue_ThenErrorResponse() var result = this._userValidator.ValidateUser(userId, null, null, out userInfo); // Assert - Assert.IsTrue(result.IsError); + Assert.That(result.IsError, Is.True); } private void SetupUserControllerWrapperMock(UserInfo userInfo) From 3ff293b06ea8a8ec141c3a7ae5620013f86caadc Mon Sep 17 00:00:00 2001 From: Brian Dukes Date: Tue, 15 Oct 2024 15:18:45 -0500 Subject: [PATCH 3/4] Dispose instances created during tests --- .../Controllers/Host/HostControllerTest.cs | 1 + .../Messaging/MessagingControllerTests.cs | 8 +- .../Messaging/NotificationsControllerTests.cs | 3 + .../Social/RelationshipControllerTests.cs | 4 + .../Mobile/PreviewProfileControllerTests.cs | 1 + .../Tests/DotNetNukeWeb/DotNetNukeWebTests.cs | 87 ++++++++++--------- .../Tests/Jwt/JwtAuthTest.cs | 7 ++ .../FileUploadControllerTests.cs | 6 ++ .../SearchServiceControllerTests.cs | 1 + 9 files changed, 77 insertions(+), 41 deletions(-) diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Core/Controllers/Host/HostControllerTest.cs b/DNN Platform/Tests/DotNetNuke.Tests.Core/Controllers/Host/HostControllerTest.cs index a14eca1ddf7..d4f5fecd854 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Core/Controllers/Host/HostControllerTest.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Core/Controllers/Host/HostControllerTest.cs @@ -77,6 +77,7 @@ public void TearDown() { Globals.DependencyProvider = null; MockComponentProvider.ResetContainer(); + this._hostSettingsTable?.Dispose(); } [Test] diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Core/Controllers/Messaging/MessagingControllerTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Core/Controllers/Messaging/MessagingControllerTests.cs index 4e14a828276..3e27604847e 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Core/Controllers/Messaging/MessagingControllerTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Core/Controllers/Messaging/MessagingControllerTests.cs @@ -123,7 +123,13 @@ public void TearDown() { Globals.DependencyProvider = null; ComponentFactory.Container = null; - PortalController.ClearInstance(); + PortalController.ClearInstance(); + this._dtMessages?.Dispose(); + this._dtMessageAttachment?.Dispose(); + this._dtMessageRecipients?.Dispose(); + this._dtPortalSettings?.Dispose(); + this._dtMessageConversationView?.Dispose(); + this._dtMessageThreadsView?.Dispose(); } [Test] diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Core/Controllers/Messaging/NotificationsControllerTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Core/Controllers/Messaging/NotificationsControllerTests.cs index 6c208c5921b..69fc35a9650 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Core/Controllers/Messaging/NotificationsControllerTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Core/Controllers/Messaging/NotificationsControllerTests.cs @@ -100,6 +100,9 @@ public void TearDown() MessagingController.ClearInstance(); PortalController.ClearInstance(); InternalMessagingController.ClearInstance(); + this._dtNotificationTypes?.Dispose(); + this._dtNotificationTypeActions?.Dispose(); + this._dtNotificationActions?.Dispose(); } [Test] diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Core/Controllers/Social/RelationshipControllerTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Core/Controllers/Social/RelationshipControllerTests.cs index b547116f723..51a2e828434 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Core/Controllers/Social/RelationshipControllerTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Core/Controllers/Social/RelationshipControllerTests.cs @@ -88,6 +88,10 @@ public void TearDown() ComponentFactory.Container = null; PortalController.ClearInstance(); UserController.ClearInstance(); + this.dtRelationshipTypes?.Dispose(); + this.dtRelationships?.Dispose(); + this.dtUserRelationships?.Dispose(); + this.dtUserRelationshipPreferences?.Dispose(); } [Test] diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Core/Services/Mobile/PreviewProfileControllerTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Core/Services/Mobile/PreviewProfileControllerTests.cs index 159608f1da4..73bae4d69c7 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Core/Services/Mobile/PreviewProfileControllerTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Core/Services/Mobile/PreviewProfileControllerTests.cs @@ -125,6 +125,7 @@ public void SetUp() public void TearDown() { Globals.DependencyProvider = null; + this.dtProfiles?.Dispose(); } [Test] diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Integration/Tests/DotNetNukeWeb/DotNetNukeWebTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Integration/Tests/DotNetNukeWeb/DotNetNukeWebTests.cs index e68ff21126c..cc71a1b3c30 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Integration/Tests/DotNetNukeWeb/DotNetNukeWebTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Integration/Tests/DotNetNukeWeb/DotNetNukeWebTests.cs @@ -2,43 +2,50 @@ // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information -namespace DotNetNuke.Tests.Integration.Tests.DotNetNukeWeb -{ - using System; - using System.Configuration; - using System.Net; - using System.Net.Http; - using System.Web; - - using DNN.Integration.Test.Framework; - using NUnit.Framework; - - [TestFixture] - public class DotNetNukeWebTests : IntegrationTestBase - { - private const string GetMonikerQuery = "/API/web/mobilehelper/monikers?moduleList="; - private const string GetModuleDetailsQuery = "/API/web/mobilehelper/moduledetails?moduleList="; - - private readonly HttpClient _httpClient; - - private readonly TimeSpan _timeout = TimeSpan.FromSeconds(30); - - public DotNetNukeWebTests() - { - var url = ConfigurationManager.AppSettings["siteUrl"]; - var siteUri = new Uri(url); - this._httpClient = new HttpClient { BaseAddress = siteUri, Timeout = this._timeout }; - } - - [Test] - [TestCase(GetMonikerQuery)] - [TestCase(GetModuleDetailsQuery)] - public void CallingHelperForAnonymousUserShouldReturnSuccess(string query) - { - var result = this._httpClient.GetAsync(query + HttpUtility.UrlEncode("ViewProfile")).Result; - var content = result.Content.ReadAsStringAsync().Result; - LogText(@"content => " + content); - Assert.That(result.StatusCode, Is.EqualTo(HttpStatusCode.OK)); - } - } -} +namespace DotNetNuke.Tests.Integration.Tests.DotNetNukeWeb +{ + using System; + using System.Configuration; + using System.Net; + using System.Net.Http; + using System.Web; + + using DNN.Integration.Test.Framework; + using NUnit.Framework; + + [TestFixture] + public class DotNetNukeWebTests : IntegrationTestBase + { + private const string GetMonikerQuery = "/API/web/mobilehelper/monikers?moduleList="; + private const string GetModuleDetailsQuery = "/API/web/mobilehelper/moduledetails?moduleList="; + + private readonly HttpClient _httpClient; + + private readonly TimeSpan _timeout = TimeSpan.FromSeconds(30); + + public DotNetNukeWebTests() + { + var url = ConfigurationManager.AppSettings["siteUrl"]; + var siteUri = new Uri(url); + this._httpClient = new HttpClient { BaseAddress = siteUri, Timeout = this._timeout }; + } + + [OneTimeTearDown] + public override void TestFixtureTearDown() + { + base.TestFixtureTearDown(); + this._httpClient?.Dispose(); + } + + [Test] + [TestCase(GetMonikerQuery)] + [TestCase(GetModuleDetailsQuery)] + public void CallingHelperForAnonymousUserShouldReturnSuccess(string query) + { + var result = this._httpClient.GetAsync(query + HttpUtility.UrlEncode("ViewProfile")).Result; + var content = result.Content.ReadAsStringAsync().Result; + LogText(@"content => " + content); + Assert.That(result.StatusCode, Is.EqualTo(HttpStatusCode.OK)); + } + } +} diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Integration/Tests/Jwt/JwtAuthTest.cs b/DNN Platform/Tests/DotNetNuke.Tests.Integration/Tests/Jwt/JwtAuthTest.cs index c3290f3ee18..d33240257c0 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Integration/Tests/Jwt/JwtAuthTest.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Integration/Tests/Jwt/JwtAuthTest.cs @@ -66,6 +66,13 @@ public override void TestFixtureSetUp() } } + [OneTimeTearDown] + public override void TestFixtureTearDown() + { + base.TestFixtureTearDown(); + this._httpClient?.Dispose(); + } + [Test] public void InvalidUserLoginShouldFail() { diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Web/InternalServices/FileUploadControllerTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Web/InternalServices/FileUploadControllerTests.cs index a51a8c10bf6..5d086d0834a 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Web/InternalServices/FileUploadControllerTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Web/InternalServices/FileUploadControllerTests.cs @@ -48,6 +48,12 @@ public void SetUp() this.SetupSynchronizationContext(); } + [TearDown] + public void TearDown() + { + this._testInstance?.Dispose(); + } + [Test] [SetCulture("tr-TR")] diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Web/InternalServices/SearchServiceControllerTests.cs b/DNN Platform/Tests/DotNetNuke.Tests.Web/InternalServices/SearchServiceControllerTests.cs index aa37afaf48f..978733312ff 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Web/InternalServices/SearchServiceControllerTests.cs +++ b/DNN Platform/Tests/DotNetNuke.Tests.Web/InternalServices/SearchServiceControllerTests.cs @@ -152,6 +152,7 @@ public void TearDown() { Globals.DependencyProvider = null; this.luceneController.Dispose(); + this.searchServiceController?.Dispose(); this.DeleteIndexFolder(); CBO.ClearInstance(); TabController.ClearInstance(); From a662d24c454023048c9e6d352ec2909cd766ddf5 Mon Sep 17 00:00:00 2001 From: Brian Dukes Date: Tue, 15 Oct 2024 15:57:54 -0500 Subject: [PATCH 4/4] Bump NUnit from 3.14.0 to 4.2.2 --- DNN Platform/Tests/App.config | 4 ++++ .../DNN.Integration.Test.Framework.csproj | 24 +++++++++++++++---- .../packages.config | 6 ++++- .../DotNetNuke.Tests.AspNetCCP/App.config | 4 ++++ .../DotNetNuke.Tests.AspNetCCP.csproj | 24 +++++++++++++++---- .../packages.config | 6 ++++- .../DotNetNuke.Tests.Authentication.csproj | 24 +++++++++++++++---- .../packages.config | 6 ++++- .../DotNetNuke.Tests.Content.csproj | 24 +++++++++++++++---- .../Tests/DotNetNuke.Tests.Content/app.config | 4 ++++ .../DotNetNuke.Tests.Content/packages.config | 6 ++++- .../DotNetNuke.Tests.Core.csproj | 24 +++++++++++++++---- .../DotNetNuke.Tests.Core/packages.config | 6 ++++- .../DotNetNuke.Tests.Data.csproj | 24 +++++++++++++++---- .../DotNetNuke.Tests.Data/packages.config | 6 ++++- .../DotNetNuke.Tests.Integration.csproj | 24 +++++++++++++++---- .../packages.config | 6 ++++- .../Tests/DotNetNuke.Tests.Mail/App.config | 4 ++++ .../DotNetNuke.Tests.Mail.csproj | 24 +++++++++++++++---- .../DotNetNuke.Tests.Mail/packages.config | 6 ++++- .../DotNetNuke.Tests.Modules.csproj | 24 +++++++++++++++---- .../DotNetNuke.Tests.Modules/packages.config | 6 ++++- .../DotNetNuke.Tests.SourceGenerators.csproj | 2 +- .../DotNetNuke.Tests.UI.csproj | 24 +++++++++++++++---- .../Tests/DotNetNuke.Tests.UI/app.config | 4 ++++ .../Tests/DotNetNuke.Tests.UI/packages.config | 6 ++++- .../DotNetNuke.Tests.Urls.csproj | 24 +++++++++++++++---- .../DotNetNuke.Tests.Urls/packages.config | 6 ++++- .../DotNetNuke.Tests.Utilities.csproj | 24 +++++++++++++++---- .../packages.config | 6 ++++- .../DotNetNuke.Tests.Web.Mvc.csproj | 24 +++++++++++++++---- .../Tests/DotNetNuke.Tests.Web.Mvc/app.config | 4 ++++ .../DotNetNuke.Tests.Web.Mvc/packages.config | 6 ++++- .../Tests/DotNetNuke.Tests.Web/App.config | 4 ++++ .../DotNetNuke.Tests.Web.csproj | 24 +++++++++++++++---- .../DotNetNuke.Tests.Web/packages.config | 6 ++++- .../Dnn.PersonaBar.ConfigConsole.Tests.csproj | 24 +++++++++++++++---- .../packages.config | 6 ++++- .../Dnn.PersonaBar.Pages.Tests.csproj | 24 +++++++++++++++---- .../packages.config | 6 ++++- .../Dnn.PersonaBar.Security.Tests.csproj | 24 +++++++++++++++---- .../packages.config | 6 ++++- .../Dnn.PersonaBar.Users.Tests.csproj | 24 +++++++++++++++---- .../packages.config | 6 ++++- 44 files changed, 479 insertions(+), 91 deletions(-) diff --git a/DNN Platform/Tests/App.config b/DNN Platform/Tests/App.config index 41703b7ec6b..7ad6cf31c0e 100644 --- a/DNN Platform/Tests/App.config +++ b/DNN Platform/Tests/App.config @@ -247,6 +247,10 @@ + + + + diff --git a/DNN Platform/Tests/DNN.Integration.Test.Framework/DNN.Integration.Test.Framework.csproj b/DNN Platform/Tests/DNN.Integration.Test.Framework/DNN.Integration.Test.Framework.csproj index 78ba88ecd29..96061284955 100644 --- a/DNN Platform/Tests/DNN.Integration.Test.Framework/DNN.Integration.Test.Framework.csproj +++ b/DNN Platform/Tests/DNN.Integration.Test.Framework/DNN.Integration.Test.Framework.csproj @@ -1,6 +1,6 @@  - + @@ -56,21 +56,37 @@ ..\..\..\packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll - - ..\..\..\packages\NUnit.3.14.0\lib\net45\nunit.framework.dll + + ..\..\..\packages\NUnit.4.2.2\lib\net462\nunit.framework.dll + + + ..\..\..\packages\NUnit.4.2.2\lib\net462\nunit.framework.legacy.dll + + ..\..\..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll + + + ..\..\..\packages\System.Memory.4.5.5\lib\net461\System.Memory.dll + ..\..\..\packages\Microsoft.AspNet.WebApi.Client.5.2.9\lib\net45\System.Net.Http.Formatting.dll + + + ..\..\..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll + ..\..\..\packages\System.Runtime.CompilerServices.Unsafe.6.0.0\lib\net461\System.Runtime.CompilerServices.Unsafe.dll ..\..\..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll + + ..\..\..\packages\System.ValueTuple.4.5.0\lib\net47\System.ValueTuple.dll + ..\..\..\packages\Microsoft.AspNet.WebApi.Core.5.2.9\lib\net45\System.Web.Http.dll @@ -153,7 +169,7 @@ - + diff --git a/DNN Platform/Tests/DNN.Integration.Test.Framework/packages.config b/DNN Platform/Tests/DNN.Integration.Test.Framework/packages.config index 1ed7c27a9e1..ba852732364 100644 --- a/DNN Platform/Tests/DNN.Integration.Test.Framework/packages.config +++ b/DNN Platform/Tests/DNN.Integration.Test.Framework/packages.config @@ -8,10 +8,14 @@ - + + + + + \ No newline at end of file diff --git a/DNN Platform/Tests/DotNetNuke.Tests.AspNetCCP/App.config b/DNN Platform/Tests/DotNetNuke.Tests.AspNetCCP/App.config index 9bd1f3aaa66..0451cc9add5 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.AspNetCCP/App.config +++ b/DNN Platform/Tests/DotNetNuke.Tests.AspNetCCP/App.config @@ -18,6 +18,10 @@ + + + + \ No newline at end of file diff --git a/DNN Platform/Tests/DotNetNuke.Tests.AspNetCCP/DotNetNuke.Tests.AspNetCCP.csproj b/DNN Platform/Tests/DotNetNuke.Tests.AspNetCCP/DotNetNuke.Tests.AspNetCCP.csproj index e63d4c45361..ce169bde160 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.AspNetCCP/DotNetNuke.Tests.AspNetCCP.csproj +++ b/DNN Platform/Tests/DotNetNuke.Tests.AspNetCCP/DotNetNuke.Tests.AspNetCCP.csproj @@ -1,6 +1,6 @@  - + Debug @@ -53,19 +53,35 @@ ..\..\..\packages\Moq.4.20.70\lib\net462\Moq.dll - - ..\..\..\packages\NUnit.3.14.0\lib\net45\nunit.framework.dll + + ..\..\..\packages\NUnit.4.2.2\lib\net462\nunit.framework.dll + + + ..\..\..\packages\NUnit.4.2.2\lib\net462\nunit.framework.legacy.dll + + ..\..\..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll + + + ..\..\..\packages\System.Memory.4.5.5\lib\net461\System.Memory.dll + + + + ..\..\..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll + ..\..\..\packages\System.Runtime.CompilerServices.Unsafe.6.0.0\lib\net461\System.Runtime.CompilerServices.Unsafe.dll ..\..\..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll + + ..\..\..\packages\System.ValueTuple.4.5.0\lib\net47\System.ValueTuple.dll + @@ -121,7 +137,7 @@ - + diff --git a/DNN Platform/Tests/DotNetNuke.Tests.Web/packages.config b/DNN Platform/Tests/DotNetNuke.Tests.Web/packages.config index 1aacbf96847..9115bb6a60e 100644 --- a/DNN Platform/Tests/DotNetNuke.Tests.Web/packages.config +++ b/DNN Platform/Tests/DotNetNuke.Tests.Web/packages.config @@ -9,11 +9,15 @@ - + + + + + \ No newline at end of file diff --git a/Dnn.AdminExperience/Tests/Dnn.PersonaBar.ConfigConsole.Tests/Dnn.PersonaBar.ConfigConsole.Tests.csproj b/Dnn.AdminExperience/Tests/Dnn.PersonaBar.ConfigConsole.Tests/Dnn.PersonaBar.ConfigConsole.Tests.csproj index 53af44db579..8e7134863ad 100644 --- a/Dnn.AdminExperience/Tests/Dnn.PersonaBar.ConfigConsole.Tests/Dnn.PersonaBar.ConfigConsole.Tests.csproj +++ b/Dnn.AdminExperience/Tests/Dnn.PersonaBar.ConfigConsole.Tests/Dnn.PersonaBar.ConfigConsole.Tests.csproj @@ -1,6 +1,6 @@  - + @@ -57,15 +57,31 @@ ..\..\..\packages\Moq.4.20.70\lib\net462\Moq.dll True - - ..\..\..\packages\NUnit.3.14.0\lib\net45\nunit.framework.dll + + ..\..\..\packages\NUnit.4.2.2\lib\net462\nunit.framework.dll + + + ..\..\..\packages\NUnit.4.2.2\lib\net462\nunit.framework.legacy.dll + + ..\..\..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll + + + ..\..\..\packages\System.Memory.4.5.5\lib\net461\System.Memory.dll + + + + ..\..\..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll + ..\..\..\packages\System.Runtime.CompilerServices.Unsafe.6.0.0\lib\net461\System.Runtime.CompilerServices.Unsafe.dll + + ..\..\..\packages\System.ValueTuple.4.5.0\lib\net47\System.ValueTuple.dll + @@ -116,7 +132,7 @@ This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - + \ No newline at end of file diff --git a/Dnn.AdminExperience/Tests/Dnn.PersonaBar.ConfigConsole.Tests/packages.config b/Dnn.AdminExperience/Tests/Dnn.PersonaBar.ConfigConsole.Tests/packages.config index 4053a7c2589..9d9aca0210f 100644 --- a/Dnn.AdminExperience/Tests/Dnn.PersonaBar.ConfigConsole.Tests/packages.config +++ b/Dnn.AdminExperience/Tests/Dnn.PersonaBar.ConfigConsole.Tests/packages.config @@ -5,10 +5,14 @@ - + + + + + \ No newline at end of file diff --git a/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Pages.Tests/Dnn.PersonaBar.Pages.Tests.csproj b/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Pages.Tests/Dnn.PersonaBar.Pages.Tests.csproj index 154099f785f..f7034c7c410 100644 --- a/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Pages.Tests/Dnn.PersonaBar.Pages.Tests.csproj +++ b/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Pages.Tests/Dnn.PersonaBar.Pages.Tests.csproj @@ -1,6 +1,6 @@  - + @@ -48,18 +48,34 @@ ..\..\..\packages\Moq.4.20.70\lib\net462\Moq.dll True - - ..\..\..\packages\NUnit.3.14.0\lib\net45\nunit.framework.dll + + ..\..\..\packages\NUnit.4.2.2\lib\net462\nunit.framework.dll + + + ..\..\..\packages\NUnit.4.2.2\lib\net462\nunit.framework.legacy.dll + + ..\..\..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll + + + ..\..\..\packages\System.Memory.4.5.5\lib\net461\System.Memory.dll + + + + ..\..\..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll + ..\..\..\packages\System.Runtime.CompilerServices.Unsafe.6.0.0\lib\net461\System.Runtime.CompilerServices.Unsafe.dll ..\..\..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll + + ..\..\..\packages\System.ValueTuple.4.5.0\lib\net47\System.ValueTuple.dll + @@ -116,6 +132,6 @@ This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - + \ No newline at end of file diff --git a/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Pages.Tests/packages.config b/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Pages.Tests/packages.config index a9383e135f9..febde3029b8 100644 --- a/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Pages.Tests/packages.config +++ b/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Pages.Tests/packages.config @@ -2,10 +2,14 @@ - + + + + + \ No newline at end of file diff --git a/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Security.Tests/Dnn.PersonaBar.Security.Tests.csproj b/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Security.Tests/Dnn.PersonaBar.Security.Tests.csproj index 485441b43fb..ca18dc3d11f 100644 --- a/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Security.Tests/Dnn.PersonaBar.Security.Tests.csproj +++ b/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Security.Tests/Dnn.PersonaBar.Security.Tests.csproj @@ -1,6 +1,6 @@  - + @@ -51,22 +51,38 @@ ..\..\..\packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll - - ..\..\..\packages\NUnit.3.14.0\lib\net45\nunit.framework.dll + + ..\..\..\packages\NUnit.4.2.2\lib\net462\nunit.framework.dll + + + ..\..\..\packages\NUnit.4.2.2\lib\net462\nunit.framework.legacy.dll + + ..\..\..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll + + + ..\..\..\packages\System.Memory.4.5.5\lib\net461\System.Memory.dll + ..\..\..\packages\Microsoft.AspNet.WebApi.Client.5.2.9\lib\net45\System.Net.Http.Formatting.dll + + + ..\..\..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll + ..\..\..\packages\System.Runtime.CompilerServices.Unsafe.6.0.0\lib\net461\System.Runtime.CompilerServices.Unsafe.dll ..\..\..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll + + ..\..\..\packages\System.ValueTuple.4.5.0\lib\net47\System.ValueTuple.dll + ..\..\..\packages\Microsoft.AspNet.WebApi.Core.5.2.9\lib\net45\System.Web.Http.dll @@ -131,6 +147,6 @@ This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - + \ No newline at end of file diff --git a/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Security.Tests/packages.config b/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Security.Tests/packages.config index 210338fb59f..d7372bd0325 100644 --- a/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Security.Tests/packages.config +++ b/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Security.Tests/packages.config @@ -5,10 +5,14 @@ - + + + + + \ No newline at end of file diff --git a/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Users.Tests/Dnn.PersonaBar.Users.Tests.csproj b/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Users.Tests/Dnn.PersonaBar.Users.Tests.csproj index 3f0affae4e5..6686f905ff6 100644 --- a/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Users.Tests/Dnn.PersonaBar.Users.Tests.csproj +++ b/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Users.Tests/Dnn.PersonaBar.Users.Tests.csproj @@ -1,6 +1,6 @@  - + @@ -49,18 +49,34 @@ ..\..\..\packages\Moq.4.20.70\lib\net462\Moq.dll True - - ..\..\..\packages\NUnit.3.14.0\lib\net45\nunit.framework.dll + + ..\..\..\packages\NUnit.4.2.2\lib\net462\nunit.framework.dll + + + ..\..\..\packages\NUnit.4.2.2\lib\net462\nunit.framework.legacy.dll + + ..\..\..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll + + + ..\..\..\packages\System.Memory.4.5.5\lib\net461\System.Memory.dll + + + + ..\..\..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll + ..\..\..\packages\System.Runtime.CompilerServices.Unsafe.6.0.0\lib\net461\System.Runtime.CompilerServices.Unsafe.dll ..\..\..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll + + ..\..\..\packages\System.ValueTuple.4.5.0\lib\net47\System.ValueTuple.dll + @@ -125,6 +141,6 @@ This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - + \ No newline at end of file diff --git a/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Users.Tests/packages.config b/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Users.Tests/packages.config index a9383e135f9..febde3029b8 100644 --- a/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Users.Tests/packages.config +++ b/Dnn.AdminExperience/Tests/Dnn.PersonaBar.Users.Tests/packages.config @@ -2,10 +2,14 @@ - + + + + + \ No newline at end of file