-
-
Notifications
You must be signed in to change notification settings - Fork 158
Refactor tests #941
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
Merged
Merged
Refactor tests #941
Changes from 1 commit
Commits
Show all changes
48 commits
Select commit
Hold shift + click to select a range
355083c
Refactored tests for HttpReadOnly/NoHttpPost/Patch/Delete controller …
90274c6
Refactored tests for casing convention
4bdb3e8
Refactored tests for custom exception handler
cbe01c2
Refactored tests for nulls/default query string parameters; removed s…
0c5d5e8
Refactored tests for DisableQueryStringAttribute
7057c89
Refactored tests for resource injection
8756f25
Fixed assertions on DateTime/DateTimeOffset in tests
44653f8
Refactored tests for non-json:api controllers
22738b6
Refactored tests for ActionResult usage
e12d27f
Refactored tests for custom routes
ddcd4ac
Refactored tests for links rendering
8b443d8
Refactored tests for exception handling in serializer
64e09db
Refactored tests for serialization
8bf0989
Refactored tests for resource hooks
255ed36
General cleanup
c7000b8
Extracted test building blocks in shared project
db9778e
Auto-adjust namespaces
d9a2ac7
Refactored tests for service discovery
53f8c82
Refactored tests for no EF Core
86bac20
Renamed IntegrationTestContext to ExampleIntegrationTestContext becau…
d94235d
Adjusted test names for ModelStateValidationTests
c8a6012
Adjusted test names for pagination
cb983b9
Adjusted test names for meta
5ad5c76
Fixed broken tests; simpler bootstrap setup
838a158
Adjusted test names for hooks
d3ff09a
Enable concurrent testruns (makes running all tests 60% faster)
64c5b4a
Removed unused using
e2a2bb0
Merge branch 'master' into refactor-tests
bcb7320
Cleanup tests for hooks
60ac856
Cleanup example models
de40fb7
Revert "Enable concurrent testruns (makes running all tests 60% faste…
bd11b52
fixed failing testrunner
b0ac024
Enable running integration tests in parallel
f343d08
test
38c127a
Disable duplicate builds
9ee3fc5
Revert "Disable duplicate builds"
59fccd8
Addressed review feedback
21b94c5
Moved integration tests for filter/include/page/sort/fields into Quer…
a044cf0
Move types into separate files
78bc0c3
Moved unit tests for query string parameters into ExampleTests projec…
c2da909
Refactored query string integration tests to use private models. Chan…
e594391
Refactored query string unit tests to use private models.
f2fd733
Cleanup models in example project
f97b81f
Addressed review feedback
2516d2e
Rename
114dc07
Refactored tests for logging
37487cf
Refactored tests for meta
ea404bf
renamed ResourceHook tests and fixed a few wrong assertions
maurei File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
3 changes: 0 additions & 3 deletions
3
src/Examples/JsonApiDotNetCoreExample/Controllers/CountriesController.cs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
2 changes: 0 additions & 2 deletions
2
src/Examples/JsonApiDotNetCoreExample/Controllers/TagsController.cs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
67 changes: 0 additions & 67 deletions
67
test/JsonApiDotNetCoreExampleTests/Acceptance/Spec/DisableQueryAttributeTests.cs
This file was deleted.
Oops, something went wrong.
2 changes: 2 additions & 0 deletions
2
...etCoreExampleTests/IntegrationTests/RestrictedControllers/BlockingHttpDeleteController.cs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
85 changes: 85 additions & 0 deletions
85
...iDotNetCoreExampleTests/IntegrationTests/RestrictedControllers/DisableQueryStringTests.cs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,85 @@ | ||
using System.Net; | ||
using System.Threading.Tasks; | ||
using FluentAssertions; | ||
using JsonApiDotNetCore.QueryStrings; | ||
using JsonApiDotNetCore.Serialization.Objects; | ||
using Microsoft.Extensions.DependencyInjection; | ||
using Xunit; | ||
|
||
namespace JsonApiDotNetCoreExampleTests.IntegrationTests.RestrictedControllers | ||
{ | ||
public sealed class DisableQueryStringTests | ||
: IClassFixture<IntegrationTestContext<TestableStartup<RestrictionDbContext>, RestrictionDbContext>> | ||
{ | ||
private readonly IntegrationTestContext<TestableStartup<RestrictionDbContext>, RestrictionDbContext> _testContext; | ||
private readonly RestrictionFakers _fakers = new RestrictionFakers(); | ||
|
||
public DisableQueryStringTests(IntegrationTestContext<TestableStartup<RestrictionDbContext>, RestrictionDbContext> testContext) | ||
{ | ||
_testContext = testContext; | ||
|
||
testContext.ConfigureServicesAfterStartup(services => | ||
{ | ||
services.AddScoped<SkipCacheQueryStringParameterReader>(); | ||
services.AddScoped<IQueryStringParameterReader>(sp => sp.GetRequiredService<SkipCacheQueryStringParameterReader>()); | ||
}); | ||
} | ||
|
||
[Fact] | ||
public async Task Cannot_sort_if_query_string_parameter_is_blocked_by_controller() | ||
{ | ||
// Arrange | ||
var route = "/sofas?sort=id"; | ||
|
||
// Act | ||
var (httpResponse, responseDocument) = await _testContext.ExecuteGetAsync<ErrorDocument>(route); | ||
|
||
// Assert | ||
httpResponse.Should().HaveStatusCode(HttpStatusCode.BadRequest); | ||
|
||
responseDocument.Errors.Should().HaveCount(1); | ||
responseDocument.Errors[0].StatusCode.Should().Be(HttpStatusCode.BadRequest); | ||
responseDocument.Errors[0].Title.Should().Be("Usage of one or more query string parameters is not allowed at the requested endpoint."); | ||
responseDocument.Errors[0].Detail.Should().Be("The parameter 'sort' cannot be used at this endpoint."); | ||
responseDocument.Errors[0].Source.Parameter.Should().Be("sort"); | ||
} | ||
|
||
[Fact] | ||
public async Task Cannot_paginate_if_query_string_parameter_is_blocked_by_controller() | ||
{ | ||
// Arrange | ||
var route = "/sofas?page[number]=2"; | ||
|
||
// Act | ||
var (httpResponse, responseDocument) = await _testContext.ExecuteGetAsync<ErrorDocument>(route); | ||
|
||
// Assert | ||
httpResponse.Should().HaveStatusCode(HttpStatusCode.BadRequest); | ||
|
||
responseDocument.Errors.Should().HaveCount(1); | ||
responseDocument.Errors[0].StatusCode.Should().Be(HttpStatusCode.BadRequest); | ||
responseDocument.Errors[0].Title.Should().Be("Usage of one or more query string parameters is not allowed at the requested endpoint."); | ||
responseDocument.Errors[0].Detail.Should().Be("The parameter 'page[number]' cannot be used at this endpoint."); | ||
responseDocument.Errors[0].Source.Parameter.Should().Be("page[number]"); | ||
} | ||
|
||
[Fact] | ||
public async Task Cannot_use_custom_query_string_parameter_if_blocked_by_controller() | ||
{ | ||
// Arrange | ||
var route = "/beds?skipCache=true"; | ||
|
||
// Act | ||
var (httpResponse, responseDocument) = await _testContext.ExecuteGetAsync<ErrorDocument>(route); | ||
|
||
// Assert | ||
httpResponse.Should().HaveStatusCode(HttpStatusCode.BadRequest); | ||
|
||
responseDocument.Errors.Should().HaveCount(1); | ||
responseDocument.Errors[0].StatusCode.Should().Be(HttpStatusCode.BadRequest); | ||
responseDocument.Errors[0].Title.Should().Be("Usage of one or more query string parameters is not allowed at the requested endpoint."); | ||
responseDocument.Errors[0].Detail.Should().Be("The parameter 'skipCache' cannot be used at this endpoint."); | ||
responseDocument.Errors[0].Source.Parameter.Should().Be("skipCache"); | ||
} | ||
} | ||
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.