Skip to content

Commit

Permalink
Fix xUnit analyzers errors
Browse files Browse the repository at this point in the history
Resolves #14106

3 of them are suppressed due to bugs in xunit analyzers
- xUnit1003 - Theory method does not have test data.
  - Happens in derived class when we put attribute to skip the test.
- xUnit1010 - The value is not convertible to the method parameter
  - Enum to int conversion, test runs perfectly fine.
- xUnit1013 - Test class has public method which is not marked as Fact
  - If any method in test class marked as Fact them all public methods need to add attribute. Even though other public methods are tests being overriden from base class which are already marked as test.
  • Loading branch information
smitpatel committed Sep 7, 2019
1 parent 4bf5c6b commit 6cd2b45
Show file tree
Hide file tree
Showing 111 changed files with 942 additions and 888 deletions.
8 changes: 8 additions & 0 deletions test/Directory.Build.props
@@ -0,0 +1,8 @@
<Project>
<Import Project="..\Directory.Build.props" />

<PropertyGroup>
<NoWarn>$(NoWarn);xUnit1003;xUnit1010;xUnit1013</NoWarn>
</PropertyGroup>

</Project>
10 changes: 0 additions & 10 deletions test/Directory.Build.targets

This file was deleted.

4 changes: 4 additions & 0 deletions test/EFCore.Analyzers.Tests/EFCore.Analyzers.Test.csproj
Expand Up @@ -16,4 +16,8 @@
<PackageReference Include="Microsoft.Extensions.DependencyModel" Version="$(MicrosoftExtensionsDependencyModelPackageVersion)" />
</ItemGroup>

<ItemGroup>
<PackageReference Include="xunit" Version="$(XUnitVersion)" />
</ItemGroup>

</Project>
Expand Up @@ -15,13 +15,13 @@ public ConcurrencyDetectorCosmosTest(NorthwindQueryCosmosFixture<NoopModelCustom
{
}

[ConditionalTheory(Skip = "Issue #17246")]
[ConditionalFact(Skip = "Issue #17246")]
public override Task Any_logs_concurrent_access_nonasync()
{
return base.Any_logs_concurrent_access_nonasync();
}

[ConditionalTheory(Skip = "Issue #17246")]
[ConditionalFact(Skip = "Issue #17246")]
public override Task Any_logs_concurrent_access_async()
{
return base.Any_logs_concurrent_access_async();
Expand Down
8 changes: 3 additions & 5 deletions test/EFCore.Cosmos.FunctionalTests/EmbeddedDocumentsTest.cs
Expand Up @@ -26,8 +26,7 @@ public NestedDocumentsTest(ITestOutputHelper testOutputHelper)
//TestSqlLoggerFactory.SetTestOutputHelper(testOutputHelper);
}

// #13579
// [ConditionalFact]
[ConditionalFact(Skip = "Issue#17670")]
public virtual async Task Can_update_dependents()
{
await using (var testDatabase = CreateTestStore())
Expand Down Expand Up @@ -56,8 +55,7 @@ await using (var testDatabase = CreateTestStore())
}
}

// #13579
// [ConditionalFact]
[ConditionalFact(Skip = "Issue#17670")]
public virtual async Task Can_update_owner_with_dependents()
{
await using (var testDatabase = CreateTestStore())
Expand Down Expand Up @@ -209,7 +207,7 @@ await using (var context = CreateContext())
{
var people = await context.Set<Person>().OrderBy(o => o.Id).ToListAsync();
var addresses = people[0].Addresses.ToList();
Assert.Equal(1, addresses.Count);
Assert.Single(addresses);

Assert.Equal(address.Street, addresses[0].Street);
Assert.Equal(address.City, addresses[0].City);
Expand Down
Expand Up @@ -12,7 +12,7 @@ namespace Microsoft.EntityFrameworkCore.Query
{
public partial class SimpleQueryCosmosTest
{
[ConditionalTheory(Skip = "Issue#17246")]
[ConditionalFact(Skip = "Issue#17246")]
public override void Select_All()
{
base.Select_All();
Expand Down Expand Up @@ -1224,7 +1224,7 @@ public override async Task OrderBy_Skip_Last_gives_correct_result(bool isAsync)
WHERE (c[""Discriminator""] = ""Customer"")");
}

[ConditionalTheory(Skip = "Issue#17246 (Contains not implemented)")]
[ConditionalFact(Skip = "Issue#17246 (Contains not implemented)")]
public override void Contains_over_entityType_should_rewrite_to_identity_equality()
{
base.Contains_over_entityType_should_rewrite_to_identity_equality();
Expand Down Expand Up @@ -1290,7 +1290,7 @@ public override async Task Contains_with_constant_list_value_type_id(bool isAsyn
WHERE ((c[""Discriminator""] = ""Order"") AND (c[""OrderID""] = 10248))");
}

[ConditionalTheory(Skip = "Issue#17246 (Contains not implemented)")]
[ConditionalFact(Skip = "Issue#17246 (Contains not implemented)")]
public override void Contains_over_entityType_with_null_should_rewrite_to_identity_equality()
{
base.Contains_over_entityType_with_null_should_rewrite_to_identity_equality();
Expand Down
Expand Up @@ -270,7 +270,7 @@ public override async Task Select_nested_collection(bool isAsync)
WHERE ((c[""Discriminator""] = ""Customer"") AND (c[""City""] = ""London""))");
}

[ConditionalTheory(Skip = "Issue #17246")]
[ConditionalFact(Skip = "Issue #17246")]
public override void Select_nested_collection_multi_level()
{
base.Select_nested_collection_multi_level();
Expand All @@ -281,7 +281,7 @@ public override void Select_nested_collection_multi_level()
WHERE (c[""Discriminator""] = ""Customer"")");
}

[ConditionalTheory(Skip = "Issue#17246")]
[ConditionalFact(Skip = "Issue#17246")]
public override void Select_nested_collection_multi_level2()
{
base.Select_nested_collection_multi_level2();
Expand All @@ -292,7 +292,7 @@ public override void Select_nested_collection_multi_level2()
WHERE (c[""Discriminator""] = ""Customer"")");
}

[ConditionalTheory(Skip = "Issue#17246")]
[ConditionalFact(Skip = "Issue#17246")]
public override void Select_nested_collection_multi_level3()
{
base.Select_nested_collection_multi_level3();
Expand All @@ -303,7 +303,7 @@ public override void Select_nested_collection_multi_level3()
WHERE (c[""Discriminator""] = ""Customer"")");
}

[ConditionalTheory(Skip = "Issue#17246")]
[ConditionalFact(Skip = "Issue#17246")]
public override void Select_nested_collection_multi_level4()
{
base.Select_nested_collection_multi_level4();
Expand All @@ -314,7 +314,7 @@ public override void Select_nested_collection_multi_level4()
WHERE (c[""Discriminator""] = ""Customer"")");
}

[ConditionalTheory(Skip = "Issue#17246")]
[ConditionalFact(Skip = "Issue#17246")]
public override void Select_nested_collection_multi_level5()
{
using (var context = CreateContext())
Expand All @@ -335,7 +335,7 @@ public override void Select_nested_collection_multi_level5()
})
.ToList();

Assert.Equal(1, customers.Count);
Assert.Single(customers);
Assert.Equal(0, customers.Count(c => c.Order != null && c.Order != 0));
}

Expand All @@ -345,7 +345,7 @@ public override void Select_nested_collection_multi_level5()
WHERE ((c[""Discriminator""] = ""Customer"") AND (c[""CustomerID""] = ""ALFKI""))");
}

[ConditionalTheory(Skip = "Issue#17246")]
[ConditionalFact(Skip = "Issue#17246")]
public override void Select_nested_collection_multi_level6()
{
base.Select_nested_collection_multi_level6();
Expand Down
56 changes: 29 additions & 27 deletions test/EFCore.Cosmos.FunctionalTests/Query/SimpleQueryCosmosTest.cs
Expand Up @@ -44,7 +44,7 @@ public virtual async Task Simple_IQueryable(bool isAsync)
WHERE (c[""Discriminator""] = ""Customer"")");
}

[ConditionalTheory(Skip = "Issue #17246")]
[ConditionalFact(Skip = "Issue #17246")]
public override void Shaper_command_caching_when_parameter_names_different()
{
base.Shaper_command_caching_when_parameter_names_different();
Expand All @@ -59,7 +59,7 @@ public override void Shaper_command_caching_when_parameter_names_different()
WHERE (((c[""Discriminator""] = ""Customer"") AND (c[""CustomerID""] = ""ALFKI"")) AND true)");
}

[ConditionalTheory(Skip = "Issue #17246")]
[ConditionalFact(Skip = "Issue #17246")]
public override void Lifting_when_subquery_nested_order_by_anonymous()
{
base.Lifting_when_subquery_nested_order_by_anonymous();
Expand Down Expand Up @@ -179,7 +179,7 @@ public override async Task Entity_equality_not_null(bool isAsync)
WHERE ((c[""Discriminator""] = ""Customer"") AND (c[""CustomerID""] != null))");
}

[ConditionalTheory(Skip = "Issue #17246")]
[ConditionalFact(Skip = "Issue #17246")]
public override void Query_when_evaluatable_queryable_method_call_with_repository()
{
using (var context = CreateContext())
Expand All @@ -194,23 +194,23 @@ var results
.Where(c => orderRepository.Find().Any(o => o.CustomerID == c.CustomerID))
.ToList();

Assert.Equal(1, results.Count);
Assert.Single(results);

results
= (from c in customerRepository.Find().Where(c => c.CustomerID == "ALFKI")
where orderRepository.Find().Any(o => o.CustomerID == c.CustomerID)
select c)
.ToList();

Assert.Equal(1, results.Count);
Assert.Single(results);

var orderQuery = orderRepository.Find();

results = customerRepository.Find().Where(c => c.CustomerID == "ALFKI")
.Where(c => orderQuery.Any(o => o.CustomerID == c.CustomerID))
.ToList();

Assert.Equal(1, results.Count);
Assert.Single(results);

context.ChangeTracker.QueryTrackingBehavior = QueryTrackingBehavior.TrackAll;
}
Expand Down Expand Up @@ -488,7 +488,7 @@ public override void Select_Where_Subquery_Deep_Single()
WHERE ((c[""Discriminator""] = ""OrderDetail"") AND (c[""OrderID""] = 10344))");
}

[ConditionalTheory(Skip = "Issue #17246")]
[ConditionalFact(Skip = "Issue #17246")]
public override void Select_Where_Subquery_Deep_First()
{
base.Select_Where_Subquery_Deep_First();
Expand Down Expand Up @@ -600,7 +600,7 @@ public override async Task OrderBy_ternary_conditions(bool isAsync)
WHERE (c[""Discriminator""] = ""Product"")");
}

[ConditionalTheory(Skip = "Issue #17246")]
[ConditionalFact(Skip = "Issue #17246")]
public override void OrderBy_any()
{
base.OrderBy_any();
Expand Down Expand Up @@ -990,7 +990,7 @@ public override async Task Any_nested3(bool isAsync)
WHERE (c[""Discriminator""] = ""Customer"")");
}

[ConditionalTheory(Skip = "Issue #17246")]
[ConditionalFact(Skip = "Issue #17246")]
public override void Any_with_multiple_conditions_still_uses_exists()
{
base.Any_with_multiple_conditions_still_uses_exists();
Expand Down Expand Up @@ -1876,7 +1876,7 @@ public override void Select_DTO_distinct_translated_to_server()
WHERE ((c[""Discriminator""] = ""Order"") AND (c[""OrderID""] < 10300))");
}

[ConditionalTheory(Skip = "Issue #17246")]
[ConditionalFact(Skip = "Issue #17246")]
public override void Select_DTO_constructor_distinct_translated_to_server()
{
base.Select_DTO_constructor_distinct_translated_to_server();
Expand All @@ -1887,7 +1887,7 @@ public override void Select_DTO_constructor_distinct_translated_to_server()
WHERE ((c[""Discriminator""] = ""Order"") AND (c[""OrderID""] < 10300))");
}

[ConditionalTheory(Skip = "Issue #17246")]
[ConditionalFact(Skip = "Issue #17246")]
public override void Select_DTO_with_member_init_distinct_translated_to_server()
{
base.Select_DTO_with_member_init_distinct_translated_to_server();
Expand All @@ -1898,7 +1898,7 @@ public override void Select_DTO_with_member_init_distinct_translated_to_server()
WHERE ((c[""Discriminator""] = ""Order"") AND (c[""OrderID""] < 10300))");
}

[ConditionalTheory(Skip = "Issue #17246")]
[ConditionalFact(Skip = "Issue #17246")]
public override void Select_nested_collection_count_using_DTO()
{
base.Select_nested_collection_count_using_DTO();
Expand All @@ -1920,7 +1920,7 @@ public override async Task Select_DTO_with_member_init_distinct_in_subquery_tran
WHERE ((c[""Discriminator""] = ""Order"") AND (c[""OrderID""] < 10300))");
}

[ConditionalTheory(Skip = "Issue #17246")]
[ConditionalFact(Skip = "Issue #17246")]
public override void Select_DTO_with_member_init_distinct_in_subquery_used_in_projection_translated_to_server()
{
base.Select_DTO_with_member_init_distinct_in_subquery_used_in_projection_translated_to_server();
Expand Down Expand Up @@ -2136,7 +2136,7 @@ public override async Task Select_take_skip_null_coalesce_operator3(bool isAsync
WHERE (c[""Discriminator""] = ""Customer"")");
}

[ConditionalTheory(Skip = "Issue #17246")]
[ConditionalFact(Skip = "Issue #17246")]
public override void Selected_column_can_coalesce()
{
base.Selected_column_can_coalesce();
Expand Down Expand Up @@ -2296,7 +2296,7 @@ public override async Task String_concat_with_navigation2(bool isAsync)
WHERE (c[""Discriminator""] = ""Order"")");
}

[ConditionalTheory(Skip = "Issue #17246")]
[ConditionalFact(Skip = "Issue #17246")]
public override void Select_bitwise_or()
{
base.Select_bitwise_or();
Expand All @@ -2307,7 +2307,7 @@ public override void Select_bitwise_or()
WHERE (c[""Discriminator""] = ""Customer"")");
}

[ConditionalTheory(Skip = "Issue #17246")]
[ConditionalFact(Skip = "Issue #17246")]
public override void Select_bitwise_or_multiple()
{
base.Select_bitwise_or_multiple();
Expand All @@ -2318,7 +2318,7 @@ public override void Select_bitwise_or_multiple()
WHERE (c[""Discriminator""] = ""Customer"")");
}

[ConditionalTheory(Skip = "Issue #17246")]
[ConditionalFact(Skip = "Issue #17246")]
public override void Select_bitwise_and()
{
base.Select_bitwise_and();
Expand All @@ -2329,7 +2329,7 @@ public override void Select_bitwise_and()
WHERE (c[""Discriminator""] = ""Customer"")");
}

[ConditionalTheory(Skip = "Issue #17246")]
[ConditionalFact(Skip = "Issue #17246")]
public override void Select_bitwise_and_or()
{
base.Select_bitwise_and_or();
Expand Down Expand Up @@ -2376,7 +2376,7 @@ public override async Task Where_bitwise_and_with_logical_or(bool isAsync)
WHERE ((c[""Discriminator""] = ""Customer"") AND (((c[""CustomerID""] = ""ALFKI"") & (c[""CustomerID""] = ""ANATR"")) OR (c[""CustomerID""] = ""ANTON"")))");
}

[ConditionalTheory(Skip = "Issue #17246")]
[ConditionalFact(Skip = "Issue #17246")]
public override void Select_bitwise_or_with_logical_or()
{
base.Select_bitwise_or_with_logical_or();
Expand All @@ -2387,7 +2387,7 @@ public override void Select_bitwise_or_with_logical_or()
WHERE (c[""Discriminator""] = ""Customer"")");
}

[ConditionalTheory(Skip = "Issue #17246")]
[ConditionalFact(Skip = "Issue #17246")]
public override void Select_bitwise_and_with_logical_and()
{
base.Select_bitwise_and_with_logical_and();
Expand Down Expand Up @@ -3681,7 +3681,7 @@ public override async Task OrderBy_empty_list_does_not_contains(bool isAsync)
WHERE (c[""Discriminator""] = ""Customer"")");
}

[ConditionalTheory(Skip = "Issue #17246")]
[ConditionalFact(Skip = "Issue #17246")]
public override void Manual_expression_tree_typed_null_equality()
{
base.Manual_expression_tree_typed_null_equality();
Expand Down Expand Up @@ -3889,7 +3889,7 @@ public override Task Multiple_collection_navigation_with_FirstOrDefault_chained_
return base.Multiple_collection_navigation_with_FirstOrDefault_chained_projecting_scalar(isAsync);
}

[ConditionalTheory(Skip = "Issue #17246")]
[ConditionalFact(Skip = "Issue #17246")]
public override void Can_convert_manually_build_expression_with_default()
{
base.Can_convert_manually_build_expression_with_default();
Expand Down Expand Up @@ -3973,7 +3973,7 @@ public override Task SelectMany_primitive_select_subquery(bool isAsync)
return base.SelectMany_primitive_select_subquery(isAsync);
}

[ConditionalTheory(Skip = "Issue #17246")]
[ConditionalFact(Skip = "Issue #17246")]
public override void Select_DTO_constructor_distinct_with_navigation_translated_to_server()
{
base.Select_DTO_constructor_distinct_with_navigation_translated_to_server();
Expand Down Expand Up @@ -4100,16 +4100,18 @@ public override Task FirstOrDefault_over_empty_collection_of_value_type_returns_
}

[ConditionalTheory(Skip = "Issue #17246")]
public override Task All_client(bool isAsync) => null;
public override Task All_client(bool isAsync) => base.All_client(isAsync);

[ConditionalTheory(Skip = "Issue #17246")]
public override Task Client_OrderBy_GroupBy_Group_ordering_works(bool isAsync) => null;
public override Task Client_OrderBy_GroupBy_Group_ordering_works(bool isAsync)
=> base.Client_OrderBy_GroupBy_Group_ordering_works(isAsync);

[ConditionalTheory(Skip = "Issue #17246")]
public override Task Subquery_member_pushdown_does_not_change_original_subquery_model2(bool isAsync) => null;
public override Task Subquery_member_pushdown_does_not_change_original_subquery_model2(bool isAsync)
=> base.Subquery_member_pushdown_does_not_change_original_subquery_model2(isAsync);

[ConditionalTheory(Skip = "Issue #17246")]
public override Task Where_query_composition3(bool isAsync) => null;
public override Task Where_query_composition3(bool isAsync) => base.Where_query_composition3(isAsync);

public override async Task Member_binding_after_ctor_arguments_fails_with_client_eval(bool isAsync)
{
Expand Down

0 comments on commit 6cd2b45

Please sign in to comment.