Skip to content

Instantly share code, notes, and snippets.

@arielsrv
Created July 27, 2021 01:10
Show Gist options
  • Save arielsrv/e65eba0954a9873abff25ce363eb3a5f to your computer and use it in GitHub Desktop.
Save arielsrv/e65eba0954a9873abff25ce363eb3a5f to your computer and use it in GitHub Desktop.
moq
using System;
using System.Collections.Generic;
using Moq;
using NUnit.Framework;
namespace TestProject1
{
[TestFixture]
public class UserServiceTest
{
[Test]
public void TenOrders()
{
Mock<IOrderDao> mockOrderDao = new Mock<IOrderDao>();
mockOrderDao.Setup(x => x.GetOrderByUserId(123)).Returns(GetOrders());
UserService userService = new UserService(mockOrderDao.Object);
bool result = userService.HaveTenOrders(123);
Assert.True(result);
}
[Test]
public void MenorTenOrders()
{
Mock<IOrderDao> mockOrderDao = new Mock<IOrderDao>();
mockOrderDao.Setup(x => x.GetOrderByUserId(123)).Returns(new List<Order> {new Order()});
UserService userService = new UserService(mockOrderDao.Object);
bool result = userService.HaveTenOrders(123);
Assert.False(result);
}
private List<Order> GetOrders()
{
List<Order> orders = new List<Order>();
orders.Add(new Order());
orders.Add(new Order());
orders.Add(new Order());
return orders;
}
}
public interface IOrderDao
{
List<Order> GetOrderByUserId(int userId);
}
public class Order
{
public int Id { get; set; }
public double Amount { get; set; }
}
public class OrderDao : IOrderDao
{
public List<Order> GetOrderByUserId(int userId)
{
throw new System.NotImplementedException();
}
}
public class User
{
public int Id { get; set; }
public string Name { get; set; }
}
public class UserService
{
private IOrderDao orderDao;
public UserService(IOrderDao orderDao)
{
this.orderDao = orderDao;
}
public bool HaveTenOrders(int userId)
{
List<Order> orders = orderDao.GetOrderByUserId(userId);
if (orders.Count > 2)
{
return true;
}
return false;
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment