-
Notifications
You must be signed in to change notification settings - Fork 2.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Introduce OrchardCore.Testing APIs #13018
base: main
Are you sure you want to change the base?
Conversation
# Conflicts: # src/OrchardCore/OrchardCore.Testing/Apis/Security/PermissionContextAuthorizationHandler.cs # src/OrchardCore/OrchardCore.Testing/Data/TablePrefixGenerator.cs # src/OrchardCore/OrchardCore.Testing/Extensions/HttpContentExtensions.cs # test/OrchardCore.Testing.Tests/Data/TablePrefixGeneratorTests.cs # test/OrchardCore.Testing.Tests/Security/PermissionHandlerTests.cs # test/OrchardCore.Tests/Apis/ContentManagement/ContentApiController/BlogPostApiControllerTests.cs # test/OrchardCore.Tests/Apis/ContentManagement/DeploymentPlans/BlogPostCreateDeploymentPlanTests.cs # test/OrchardCore.Tests/Apis/ContentManagement/DeploymentPlans/BlogPostUpdateDeploymentPlanTests.cs # test/OrchardCore.Tests/Apis/Context/BlogPostApiControllerContext.cs # test/OrchardCore.Tests/Apis/Context/Extensions/HttpRequestExtensions.cs # test/OrchardCore.Tests/Apis/Context/MvcTestFixture.cs # test/OrchardCore.Tests/Apis/Context/SiteContext.cs # test/OrchardCore.Tests/Apis/Context/SiteStartup.cs # test/OrchardCore.Tests/Apis/Context/TestRecipeHarvester.cs # test/OrchardCore.Tests/Apis/GraphQL/ValidationRules/RequiresPermissionValidationRuleTests.cs # test/OrchardCore.Tests/Apis/Lucene/LuceneQueryTests.cs # test/OrchardCore.Tests/DisplayManagement/Decriptors/DefaultShapeTableManagerTests.cs # test/OrchardCore.Tests/DisplayManagement/DefaultDisplayManagerTests.cs # test/OrchardCore.Tests/DisplayManagement/ShapeFactoryTests.cs # test/OrchardCore.Tests/DisplayManagement/ShapeHelperTests.cs # test/OrchardCore.Tests/DisplayManagement/ShapeSerializerTests.cs # test/OrchardCore.Tests/Email/EmailTests.cs # test/OrchardCore.Tests/Extensions/ExtensionManagerTests.cs # test/OrchardCore.Tests/Localization/PortableObjectStringLocalizerFactoryTests.cs # test/OrchardCore.Tests/Localization/PortableObjectStringLocalizerTests.cs # test/OrchardCore.Tests/Modules/OrchardCore.OpenId/OpenIdServerDeploymentSourceTests.cs # test/OrchardCore.Tests/Modules/OrchardCore.Roles/RolesPermissionsHandlerTests.cs # test/OrchardCore.Tests/OrchardCore.Users/UserValidatorTests.cs # test/OrchardCore.Tests/OrchardCore.Users/UsersMockHelper.cs # test/OrchardCore.Tests/ResourceManagement/ResourceDefinitionTests.cs # test/OrchardCore.Tests/ResourceManagement/ResourceManagerTests.cs # test/OrchardCore.Tests/Routing/AutorouteEntriesTests.cs # test/OrchardCore.Tests/Security/PermissionHandlerHelper.cs # test/OrchardCore.Tests/Shell/ShellContainerFactoryTests.cs # test/OrchardCore.Tests/Stubs/MemoryFileBuilder.cs # test/OrchardCore.Tests/Stubs/StubExtensionManager.cs # test/OrchardCore.Tests/Stubs/StubHostingEnvironment.cs # test/OrchardCore.Tests/Stubs/StubPoFileLocationProvider.cs # test/OrchardCore.Tests/Workflows/WorkflowManagerTests.cs
This pull request has merge conflicts. Please resolve those before requesting a review. |
Do you want to get back to this anytime soon, @hishamco? Starting with addressing #13018 (comment). Otherwise, I welcome refactoring the tests and providing some common packages to make it easier for community members to write tests for their OC modules. (A bit of that we also address with the Lombiq Testing Toolbox but this would be better as part of OC itself.) I didn't look deeply into the code under this PR yet. Also, you may want to look into AutoMocker: I briefly checked out the code and I see a lot of manual dependency resolution with mocks, while this library takes care of that. |
I am delaying this because I've been working on Playwright and OC integrations last few weeks, hope to have a demo ASAP. Regarding I will try |
Hello @hishamco, will this PR be a part of OC 2? |
I will try to resolve the changes, there're too much :) |
@hishamco Perfect! If I can help, please let me know. |
@MichaelPetrinolis if you fix the conflict I will be thankful, coz I'm working on other PRs and issues |
@hishamco weekend is over but i will try to get time for it this week. |
@hishamco why is preferable to use the UseCulture attribute in tests instead of using the CultureScope ? |
We could but I did it as a wrapper, attributes are easier to use |
@hishamco I merged main into a new branch. I have some failed tests, I believe due to HttpContextAccessor not set and PermissionsContext. You can check it out here https://github.com/MichaelPetrinolis/OrchardCore/tree/merge_testing |
You're right @MichaelPetrinolis could you please commit directly here, I will spend time today to make it ready, also adding your commits here is useful to have a credit for you :) Hope to get this finished before the end of next week |
@hishamco I don't have permission to directly push to your branch |
You're not in OC team?!! |
don't know, I usually send PRs from my fork |
Seems you're not because I didn't see the So I will look to your changes, and see how it goes |
Ι can send a PR to your branch, if you can perform a merge commit |
the PR is ready, there are some tests that fail, I think because the HttpContextAccessor is not properly set. Also, I did not include the readme.md in the nav configuration and the check fails. |
Is it there before? |
I did a quick check, and it was not. Obviously, we should add it. |
Look I will check if I can merge your commits locally |
Before anything else, what I told previously needs to be addressed:
|
Maybe we should extract and merge the OrchardCore.Testing library from OrchardCore.Tests and in another issue refactor the tests to use AutoMocker. |
This PR adds a lot of new stuff, which isn't needed with AutoMocker. So I don't see why we'd add these, and then remove them in a second step, instead of not adding them in the first place. |
Hello @hishamco, is there anything else I can do to contribute to this PR? |
Sorry @MichaelPetrinolis for late I will try to make this as a top of my ToDo list |
This is one of the PRs that I'm working on testing part of Orchard Core, the plan is to provide an essential testing APIs infrastructure for creating unit tests easily for OC APIs and modules
For reference #11865 (comment)
Fixes #11865.