Selector/Selector.Tests/UriEqual.cs
2021-10-01 22:01:28 +01:00

177 lines
4.5 KiB
C#

using System;
using System.Collections.Generic;
using Xunit;
using Moq;
using FluentAssertions;
using SpotifyAPI.Web;
using Selector;
namespace Selector.Tests
{
public class UriEqualTests
{
public static IEnumerable<object[]> TrackData =>
new List<object[]>
{
// SAME
new object[] {
Helper.FullTrack("1"),
Helper.FullTrack("1"),
true
},
// WRONG
new object[] {
Helper.FullTrack("1"),
Helper.FullTrack("2"),
false
}
};
[Theory]
[MemberData(nameof(TrackData))]
public void TrackEquality(FullTrack track1, FullTrack track2, bool shouldEqual)
{
new UriEqual()
.IsEqual<FullTrack>(track1, track2)
.Should()
.Be(shouldEqual);
}
public static IEnumerable<object[]> AlbumData =>
new List<object[]>
{
// SAME
new object[] {
Helper.SimpleAlbum("1"),
Helper.SimpleAlbum("1"),
true
},
// WRONG
new object[] {
Helper.SimpleAlbum("1"),
Helper.SimpleAlbum("2"),
false
}
};
[Theory]
[MemberData(nameof(AlbumData))]
public void AlbumEquality(SimpleAlbum album1, SimpleAlbum album2, bool shouldEqual)
{
new UriEqual()
.IsEqual<SimpleAlbum>(album1, album2)
.Should()
.Be(shouldEqual);
}
public static IEnumerable<object[]> ArtistData =>
new List<object[]>
{
// SAME
new object[] {
Helper.SimpleArtist("1"),
Helper.SimpleArtist("1"),
true
},
// WRONG
new object[] {
Helper.SimpleArtist("1"),
Helper.SimpleArtist("2"),
false
}
};
[Theory]
[MemberData(nameof(ArtistData))]
public void ArtistEquality(SimpleArtist artist1, SimpleArtist artist2, bool shouldEqual)
{
new UriEqual()
.IsEqual<SimpleArtist>(artist1, artist2)
.Should()
.Be(shouldEqual);
}
public static IEnumerable<object[]> EpisodeData =>
new List<object[]>
{
// SAME
new object[] {
Helper.FullEpisode("1"),
Helper.FullEpisode("1"),
true
},
// WRONG
new object[] {
Helper.FullEpisode("1"),
Helper.FullEpisode("2"),
false
}
};
[Theory]
[MemberData(nameof(EpisodeData))]
public void EpisodeEquality(FullEpisode ep1, FullEpisode ep2, bool shouldEqual)
{
new UriEqual()
.IsEqual<FullEpisode>(ep1, ep2)
.Should()
.Be(shouldEqual);
}
public static IEnumerable<object[]> ContextData =>
new List<object[]>
{
// SAME
new object[] {
Helper.Context("1"),
Helper.Context("1"),
true
},
// WRONG
new object[] {
Helper.Context("1"),
Helper.Context("2"),
false
}
};
[Theory]
[MemberData(nameof(ContextData))]
public void ContextEquality(Context context1, Context context2, bool shouldEqual)
{
new UriEqual()
.IsEqual<Context>(context1, context2)
.Should()
.Be(shouldEqual);
}
public static IEnumerable<object[]> DeviceData =>
new List<object[]>
{
// SAME
new object[] {
Helper.Device("1"),
Helper.Device("1"),
true
},
// WRONG
new object[] {
Helper.Device("1"),
Helper.Device("2"),
false
}
};
[Theory]
[MemberData(nameof(DeviceData))]
public void DeviceEquality(Device device1, Device device2, bool shouldEqual)
{
new UriEqual()
.IsEqual<Device>(device1, device2)
.Should()
.Be(shouldEqual);
}
}
}