Skip to content

Commit 56a4422

Browse files
Improve unit tests and assertions for Entities on xUnit with default assertions
1 parent c56a374 commit 56a4422

File tree

4 files changed

+32
-17
lines changed

4 files changed

+32
-17
lines changed

src/CSharp.UnitTesting/CSharp.UnitTesting.Api.Xunit.Test/Data/Entities/ChannelTest.cs

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,13 @@
22
using CSharp.UnitTesting.Api.Utils.DataFaker;
33
using CSharp.UnitTesting.Api.Utils.DataFaker.Interfaces;
44
using System.Collections.Generic;
5+
using System.Linq;
56
using Xunit;
67

78
namespace CSharp.UnitTesting.Api.Xunit.Test.Data.Entities
89
{
9-
[Trait("xUnit", "Entity | Channel")]
10-
public class ChannelTest
10+
[Trait("xUnit + Default | Data | Entities", nameof(Channel))]
11+
public sealed class ChannelTest
1112
{
1213
[Fact]
1314
internal void GivenChannelEntityWhenGeneratedWithDataFakerThenVerifyAllProperties()
@@ -16,7 +17,7 @@ internal void GivenChannelEntityWhenGeneratedWithDataFakerThenVerifyAllPropertie
1617
IDataFaker dataFaker = new DataFaker();
1718

1819
// Act
19-
var channels = dataFaker.FakeChannel.Generate(count: 99);
20+
var channels = dataFaker.FakeChannel.Generate(count: 10);
2021

2122
// Assert
2223
channels.ForEach(channel =>
@@ -34,11 +35,14 @@ internal void GivenChannelEntityWhenGeneratedWithDataFakerThenVerifyAllPropertie
3435
Assert.NotEmpty(channel.OwnerEmail);
3536
Assert.Contains('@', channel.OwnerEmail);
3637
Assert.NotNull(channel.Subscriptions);
37-
Assert.NotEmpty(channel.Subscriptions);
3838
Assert.IsAssignableFrom<IEnumerable<Subscription>>(channel.Subscriptions);
39+
Assert.NotEmpty(channel.Subscriptions);
40+
Assert.Equal(3, channel.Subscriptions.Count());
3941
Assert.NotNull(channel.Videos);
40-
Assert.NotEmpty(channel.Videos);
4142
Assert.IsAssignableFrom<IEnumerable<Video>>(channel.Videos);
43+
Assert.NotEmpty(channel.Videos);
44+
Assert.Equal(3, channel.Videos.Count());
45+
Assert.IsType<bool>(channel.IsDeleted);
4246
});
4347
}
4448
}

src/CSharp.UnitTesting/CSharp.UnitTesting.Api.Xunit.Test/Data/Entities/PlaylistTest.cs

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,16 @@
11
using CSharp.UnitTesting.Api.Data.Entities;
2+
using CSharp.UnitTesting.Api.Data.Entities.Enums;
23
using CSharp.UnitTesting.Api.Utils.DataFaker;
34
using CSharp.UnitTesting.Api.Utils.DataFaker.Interfaces;
45
using System;
56
using System.Collections.Generic;
7+
using System.Linq;
68
using Xunit;
79

810
namespace CSharp.UnitTesting.Api.Xunit.Test.Data.Entities
911
{
10-
[Trait("xUnit", "Entity | Playlist")]
11-
public class PlaylistTest
12+
[Trait("xUnit + Default | Data | Entities", nameof(Playlist))]
13+
public sealed class PlaylistTest
1214
{
1315
[Fact]
1416
internal void GivenPlaylistEntityWhenGeneratedWithDataFakerThenVerifyAllProperties()
@@ -17,7 +19,7 @@ internal void GivenPlaylistEntityWhenGeneratedWithDataFakerThenVerifyAllProperti
1719
IDataFaker dataFaker = new DataFaker();
1820

1921
// Act
20-
var playlists = dataFaker.FakePlaylist.Generate(count: 99);
22+
var playlists = dataFaker.FakePlaylist.Generate(count: 10);
2123

2224
// Assert
2325
playlists.ForEach(playlist =>
@@ -29,10 +31,13 @@ internal void GivenPlaylistEntityWhenGeneratedWithDataFakerThenVerifyAllProperti
2931
Assert.NotNull(playlist.Description);
3032
Assert.NotEmpty(playlist.Description);
3133
Assert.InRange(playlist.Description.Length, 1, 100);
34+
Assert.IsType<PlaylistAccessType>(playlist.AccessType);
3235
Assert.InRange(playlist.CreatedAt, DateTime.UtcNow.AddDays(-365), DateTime.UtcNow);
3336
Assert.NotNull(playlist.Videos);
34-
Assert.NotEmpty(playlist.Videos);
3537
Assert.IsAssignableFrom<IEnumerable<Video>>(playlist.Videos);
38+
Assert.NotEmpty(playlist.Videos);
39+
Assert.Equal(3, playlist.Videos.Count());
40+
Assert.IsType<bool>(playlist.IsDeleted);
3641
});
3742
}
3843
}

src/CSharp.UnitTesting/CSharp.UnitTesting.Api.Xunit.Test/Data/Entities/SubscriptionTest.cs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
1-
using CSharp.UnitTesting.Api.Utils.DataFaker;
1+
using CSharp.UnitTesting.Api.Data.Entities;
2+
using CSharp.UnitTesting.Api.Utils.DataFaker;
23
using CSharp.UnitTesting.Api.Utils.DataFaker.Interfaces;
34
using System;
45
using Xunit;
56

67
namespace CSharp.UnitTesting.Api.Xunit.Test.Data.Entities
78
{
8-
[Trait("xUnit", "Entity | Subscription")]
9-
public class SubscriptionTest
9+
[Trait("xUnit + Default | Data | Entities", nameof(Subscription))]
10+
public sealed class SubscriptionTest
1011
{
1112
[Fact]
1213
internal void GivenSubscriptionEntityWhenGeneratedWithDataFakerThenVerifyAllProperties()
@@ -15,7 +16,7 @@ internal void GivenSubscriptionEntityWhenGeneratedWithDataFakerThenVerifyAllProp
1516
IDataFaker dataFaker = new DataFaker();
1617

1718
// Act
18-
var subscriptions = dataFaker.FakeSubscription.Generate(count: 99);
19+
var subscriptions = dataFaker.FakeSubscription.Generate(count: 10);
1920

2021
// Assert
2122
subscriptions.ForEach(subscription =>
@@ -26,6 +27,7 @@ internal void GivenSubscriptionEntityWhenGeneratedWithDataFakerThenVerifyAllProp
2627
Assert.NotEmpty(subscription.UserEmail);
2728
Assert.Contains('@', subscription.UserEmail);
2829
Assert.InRange(subscription.SubscribedAt, DateTime.UtcNow.AddDays(-365), DateTime.UtcNow);
30+
Assert.IsType<bool>(subscription.IsDeleted);
2931
});
3032
}
3133
}

src/CSharp.UnitTesting/CSharp.UnitTesting.Api.Xunit.Test/Data/Entities/VideoTest.cs

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
1-
using CSharp.UnitTesting.Api.Utils.DataFaker;
1+
using CSharp.UnitTesting.Api.Data.Entities;
2+
using CSharp.UnitTesting.Api.Data.Entities.Enums;
3+
using CSharp.UnitTesting.Api.Utils.DataFaker;
24
using CSharp.UnitTesting.Api.Utils.DataFaker.Interfaces;
35
using System;
46
using Xunit;
57

68
namespace CSharp.UnitTesting.Api.Xunit.Test.Data.Entities
79
{
8-
[Trait("xUnit", "Entity | Video")]
9-
public class PlaVideoTestylistTest
10+
[Trait("xUnit + Default | Data | Entities", nameof(Video))]
11+
public sealed class PlaVideoTestylistTest
1012
{
1113
[Fact]
1214
internal void GivenVideoEntityWhenGeneratedWithDataFakerThenVerifyAllProperties()
@@ -15,7 +17,7 @@ internal void GivenVideoEntityWhenGeneratedWithDataFakerThenVerifyAllProperties(
1517
IDataFaker dataFaker = new DataFaker();
1618

1719
// Act
18-
var videos = dataFaker.FakeVideo.Generate(count: 99);
20+
var videos = dataFaker.FakeVideo.Generate(count: 10);
1921

2022
// Assert
2123
videos.ForEach(video =>
@@ -28,9 +30,11 @@ internal void GivenVideoEntityWhenGeneratedWithDataFakerThenVerifyAllProperties(
2830
Assert.InRange(video.Length, 1, 3600);
2931
Assert.NotNull(video.Thumbnail);
3032
Assert.NotEmpty(video.Thumbnail);
33+
Assert.IsType<VideoAccessType>(video.AccessType);
3134
Assert.NotNull(video.Url);
3235
Assert.NotEmpty(video.Url);
3336
Assert.InRange(video.PublishDate, DateTime.UtcNow.AddDays(-365), DateTime.UtcNow);
37+
Assert.IsType<bool>(video.IsDeleted);
3438
});
3539
}
3640
}

0 commit comments

Comments
 (0)