Skip to content

Commit ef567d6

Browse files
committed
Fix failing unit tests due to static reordering
1 parent 81af4ed commit ef567d6

File tree

5 files changed

+66
-54
lines changed

5 files changed

+66
-54
lines changed

src/Tests/Tests.Core/Extensions/SerializationTesterAssertionExtensions.cs

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,18 @@
1-
using FluentAssertions;
1+
using System;
22
using Tests.Core.Serialization;
33

44
namespace Tests.Core.Extensions
55
{
66
public static class SerializationTesterAssertionExtensions
77
{
8-
public static void ShouldBeValid(this SerializationResult result, string message = null) =>
9-
result.Success.Should().BeTrue("{0}", (message ?? string.Empty) + result);
8+
public static void ShouldBeValid(this SerializationResult result, string message = null)
9+
{
10+
if (result.Success) return;
11+
12+
throw new Exception($@"Expected serialization to succeed but failed.
13+
{(message ?? string.Empty) + result}
14+
");
15+
}
1016

1117
public static T AssertRoundTrip<T>(this SerializationTester tester, T @object, string message = null, bool preserveNullInExpected = false)
1218
{

src/Tests/Tests.Domain/CommitActivity.cs

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,23 @@ namespace Tests.Domain
1010
{
1111
public class CommitActivity
1212
{
13-
public static IList<CommitActivity> CommitActivities { get; } =
14-
Generator.Clone().Generate(1000);
15-
1613
public Developer Committer { get; set; }
1714
public double ConfidenceFactor { get; set; }
1815
public TimeSpan? Duration { get; set; }
1916

17+
public string Id { get; set; }
18+
public string Message { get; set; }
19+
public string ProjectName { get; set; }
20+
public long SizeInBytes { get; set; }
21+
22+
[JsonConverter(typeof(StringTimeSpanConverter))]
23+
public TimeSpan? StringDuration
24+
{
25+
get => Duration;
26+
set => Duration = value;
27+
}
28+
29+
// @formatter:off — enable formatter after this line
2030
public static Faker<CommitActivity> Generator { get; } =
2131
new Faker<CommitActivity>()
2232
.UseSeed(TestConfiguration.Instance.Seed)
@@ -37,17 +47,8 @@ public class CommitActivity
3747
TimeSpan.FromDays(5),
3848
}));
3949

40-
public string Id { get; set; }
41-
public string Message { get; set; }
42-
public string ProjectName { get; set; }
43-
public long SizeInBytes { get; set; }
44-
45-
[JsonConverter(typeof(StringTimeSpanConverter))]
46-
public TimeSpan? StringDuration
47-
{
48-
get => Duration;
49-
set => Duration = value;
50-
}
50+
public static IList<CommitActivity> CommitActivities { get; } = Generator.Clone().Generate(1000);
51+
// @formatter:on — enable formatter after this line
5152
}
5253

5354
internal class StringTimeSpanConverter : JsonConverter

src/Tests/Tests.Domain/Developer.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,9 @@ namespace Tests.Domain
99
{
1010
public class Developer : Person
1111
{
12-
public static IList<Developer> Developers { get; } =
13-
Generator.Clone().Generate(1000);
14-
1512
public Gender Gender { get; set; }
1613

14+
// @formatter:off — enable formatter after this line
1715
public static new Faker<Developer> Generator { get; } =
1816
new Faker<Developer>()
1917
.UseSeed(TestConfiguration.Instance.Seed)
@@ -27,6 +25,9 @@ public class Developer : Person
2725
.RuleFor(p => p.PrivateValue, p => "THIS SHOULD NEVER BE INDEXED")
2826
.RuleFor(p => p.IPAddress, p => p.Internet.Ip());
2927

28+
public static IList<Developer> Developers { get; } = Generator.Clone().Generate(1000);
29+
// @formatter:on — enable formatter after this line
30+
3031
// not populated by generator. Used by ingest geoip test
3132
public GeoIp GeoIp { get; set; }
3233
public string IPAddress { get; set; }

src/Tests/Tests.Domain/Project.cs

Lines changed: 36 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -12,33 +12,26 @@ namespace Tests.Domain
1212
{
1313
public class Project
1414
{
15-
public static Project Instance = new Project
16-
{
17-
Name = Projects.First().Name,
18-
LeadDeveloper = new Developer() { FirstName = "Martijn", LastName = "Laarman" },
19-
StartedOn = new DateTime(2015, 1, 1),
20-
DateString = new DateTime(2015, 1, 1).ToString("yyyy-MM-ddTHH\\:mm\\:ss.fffffffzzz"),
21-
Location = new SimpleGeoPoint { Lat = 42.1523, Lon = -80.321 }
22-
};
23-
24-
public static object InstanceAnonymous = new
25-
{
26-
name = Projects.First().Name,
27-
state = "BellyUp",
28-
startedOn = "2015-01-01T00:00:00",
29-
lastActivity = "0001-01-01T00:00:00",
30-
dateString = new DateTime(2015, 1, 1).ToString("yyyy-MM-ddTHH\\:mm\\:ss.fffffffzzz"),
31-
leadDeveloper = new { gender = "Male", id = 0, firstName = "Martijn", lastName = "Laarman" },
32-
location = new { lat = Instance.Location.Lat, lon = Instance.Location.Lon }
33-
};
34-
3515
public IEnumerable<string> Branches { get; set; }
3616
public IList<Tag> CuratedTags { get; set; }
3717
public string DateString { get; set; }
3818
public string Description { get; set; }
3919

40-
public static Project First { get; } = Projects.First();
20+
public DateTime LastActivity { get; set; }
21+
public Developer LeadDeveloper { get; set; }
22+
public SimpleGeoPoint Location { get; set; }
23+
public Dictionary<string, Metadata> Metadata { get; set; }
24+
public string Name { get; set; }
25+
public int? NumberOfCommits { get; set; }
26+
public int? NumberOfContributors { get; set; }
27+
28+
public Ranges Ranges { get; set; }
29+
public DateTime StartedOn { get; set; }
30+
public StateOfBeing State { get; set; }
31+
public CompletionField Suggest { get; set; }
32+
public IEnumerable<Tag> Tags { get; set; }
4133

34+
// @formatter:off — enable formatter after this line
4235
public static Faker<Project> Generator { get; } =
4336
new Faker<Project>()
4437
.UseSeed(TestConfiguration.Instance.Seed)
@@ -65,20 +58,29 @@ public class Project
6558
}
6659
);
6760

68-
public DateTime LastActivity { get; set; }
69-
public Developer LeadDeveloper { get; set; }
70-
public SimpleGeoPoint Location { get; set; }
71-
public Dictionary<string, Metadata> Metadata { get; set; }
72-
public string Name { get; set; }
73-
public int? NumberOfCommits { get; set; }
74-
public int? NumberOfContributors { get; set; }
75-
7661
public static IList<Project> Projects { get; } = Generator.Clone().Generate(100);
77-
public Ranges Ranges { get; set; }
78-
public DateTime StartedOn { get; set; }
79-
public StateOfBeing State { get; set; }
80-
public CompletionField Suggest { get; set; }
81-
public IEnumerable<Tag> Tags { get; set; }
62+
63+
public static Project First { get; } = Projects.First();
64+
65+
public static Project Instance = new Project
66+
{
67+
Name = Projects.First().Name,
68+
LeadDeveloper = new Developer() { FirstName = "Martijn", LastName = "Laarman" },
69+
StartedOn = new DateTime(2015, 1, 1),
70+
DateString = new DateTime(2015, 1, 1).ToString("yyyy-MM-ddTHH\\:mm\\:ss.fffffffzzz"),
71+
Location = new SimpleGeoPoint { Lat = 42.1523, Lon = -80.321 }
72+
};
73+
74+
public static object InstanceAnonymous = new
75+
{
76+
name = Projects.First().Name,
77+
state = "BellyUp",
78+
startedOn = "2015-01-01T00:00:00",
79+
lastActivity = "0001-01-01T00:00:00",
80+
dateString = new DateTime(2015, 1, 1).ToString("yyyy-MM-ddTHH\\:mm\\:ss.fffffffzzz"),
81+
leadDeveloper = new { gender = "Male", id = 0, firstName = "Martijn", lastName = "Laarman" },
82+
location = new { lat = Instance.Location.Lat, lon = Instance.Location.Lon }
83+
};
8284
}
8385

8486
[JsonConverter(typeof(StringEnumConverter))]

src/Tests/Tests/Search/Request/SuggestUsageTests.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ public class SuggestUsageTests : SearchUsageTestBase
2020
{
2121
public SuggestUsageTests(ReadOnlyCluster cluster, EndpointUsage usage) : base(cluster, usage) { }
2222

23+
protected override bool SupportsDeserialization => false;
24+
2325
protected override object ExpectJson =>
2426
new
2527
{

0 commit comments

Comments
 (0)