Repository navigation
Expand file tree
/
Copy pathGenericComparerFactoryTest.cs
More file actions
48 lines (40 loc) · 2.1 KB
/
Copy pathGenericComparerFactoryTest.cs
File metadata and controls
48 lines (40 loc) · 2.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
using Workbench.Comparer;
using Xunit;
namespace Workbench.GenericComparer.Tests;
public class GenericComparerFactoryTest
{
private struct PessoaFisica
{
public required string Nome { get; init; }
public required string NomeMae { get; init; }
public required string CPF { get; init; }
}
[Fact(DisplayName = "Data uma coleção com 3 objetos sendo 2 iguais então o DISTINCT com uma comparação simples deve retornar uma lista com 2 objetos.")]
public void ListagemComItensRepetidosComparecaoSimples()
{
IEnumerable<PessoaFisica> pessoas = [
new() { Nome = "Victor Fructuoso", NomeMae = "Ana", CPF = "111.111.111-11" },
new() { Nome = "Victor Fructuoso", NomeMae = "Paula", CPF = "111.111.111-11" },
new() { Nome = "Victor Fructuoso", NomeMae = "Ana", CPF = "222.222.222-22" }
];
pessoas.DistinctBy(p => p.CPF);
var pessoasDiferentes = pessoas.Distinct(GenericComparerFactory<PessoaFisica>.Create(p => p.CPF));
Assert.NotNull(pessoasDiferentes);
Assert.True(pessoasDiferentes.Any());
Assert.Equal(2, pessoasDiferentes.Count());
}
[Fact(DisplayName = "Data uma coleção com 3 objetos sendo 2 iguais então o DISTINCT com uma comparação múltipla deve retornar uma lista com 2 objetos.")]
public void ListagemComItensRepetidosComparecaoMultipla()
{
IEnumerable<PessoaFisica> pessoas = [
new() { Nome = "Victor Fructuoso", NomeMae = "Ana", CPF = "111.111.111-11" },
new() { Nome = "Victor Fructuoso", NomeMae = "Ana", CPF = "222.222.222-22" },
new() { Nome = "Victor Fructuoso", NomeMae = "Paula", CPF = "333.333.333-33" }
];
var pessoasDiferentes = pessoas.Distinct(GenericComparerFactory<PessoaFisica>.Create(p => new { p.Nome, p.NomeMae }));
Assert.NotNull(pessoasDiferentes);
Assert.True(pessoasDiferentes.Any());
Assert.Equal(2, pessoasDiferentes.Count());
Assert.DoesNotContain(pessoasDiferentes, p => p.CPF == "222.222.222-22");
}
}