-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathProdutoServiceTest.cs
More file actions
64 lines (52 loc) · 2.16 KB
/
ProdutoServiceTest.cs
File metadata and controls
64 lines (52 loc) · 2.16 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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using Moq;
using StoreApp.Context;
using StoreApp.Entities;
using StoreApp.Interface;
using StoreApp.Service;
namespace Test
{
public class ProdutoServiceTest
{
private Mock<DbSet<Produto>> _dbSet;
private Mock<StoreAppContext> _context;
private IProdutoService _repository;
[SetUp]
public void Setup()
{
var sampleData = new List<Produto>(new DadosParaTesteUnitario().GetTestProdutos()).AsQueryable();
_dbSet = new Mock<DbSet<Produto>>();
_dbSet.As<IQueryable<Produto>>().Setup(x => x.Provider).Returns(sampleData.Provider);
_dbSet.As<IQueryable<Produto>>().Setup(x => x.Expression).Returns(sampleData.Expression);
_dbSet.As<IQueryable<Produto>>().Setup(x => x.ElementType).Returns(sampleData.ElementType);
_dbSet.As<IQueryable<Produto>>().Setup(x => x.GetEnumerator()).Returns(sampleData.GetEnumerator());
_context = new Mock<StoreAppContext>();
_context.Setup(x => x.Produtos).Returns(_dbSet.Object);
_repository = new ProdutoService(_context.Object);
}
[Test]
public void PostProduto_DeverarCriarumNovoProduto()
{
var simplesProduto = new Produto() { IdProduto = 5, Nome = "Demo1", Preco = 1 };
_repository.PostProduto(simplesProduto);
_dbSet.Verify(m => m.Add(It.IsAny<Produto>()), Times.Once);
_context.Verify(m => m.SaveChanges(), Times.Once);
}
[Test]
public void GetTodosProdutos_DeverarRetonarTodosProdutos()
{
var produtos = _repository.Get_produtos() as List<Produto>;
Assert.IsNotNull(produtos);
Assert.AreEqual(4, produtos.Count());
}
[Test]
public void GetProdutoPorId_DeverarRetonarProdutoPorId()
{
var listaProdutos = new DadosParaTesteUnitario().GetTestProdutos();
var produto = _repository.GetProdutoId(3);
Assert.IsNotNull(produto);
Assert.AreEqual(produto.Nome, listaProdutos[2].Nome);
}
}
}