Created
January 18, 2019 08:24
-
-
Save yohey03518/f70d361cec325b1dfd18df520d357a31 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using Microsoft.VisualStudio.TestTools.UnitTesting; | |
using NSubstitute; | |
using System; | |
using System.Collections.Generic; | |
using System.Data.Linq; | |
using System.Linq; | |
namespace UnitTestProject8 | |
{ | |
[TestClass] | |
public class UnitTest1 | |
{ | |
[TestMethod] | |
public void TestMethod1() | |
{ | |
var model = Substitute.For<IOrderModel>(); | |
var orderService = new OrderService(model); | |
List<string> names = new List<string> { "Book", "Table", "Pen", "Mouse" }; | |
// Act | |
orderService.CreateOrdersByNames(names); | |
model.Received(1).Add(orders: Arg.Is<List<OrderDomain>>(orders => | |
orders.Count() == 4 && | |
orders[0].Name == "Book" && | |
orders[1].Name == "Table" && | |
orders[2].Name == "Pen" && | |
orders[3].Name == "Mouse")); | |
} | |
} | |
public class OrderService | |
{ | |
private readonly IOrderModel _model; | |
public OrderService(IOrderModel model) | |
{ | |
_model = model; | |
} | |
public void CreateOrdersByNames(List<string> names) | |
{ | |
var orders = names.Select(name => new OrderDomain(name)).ToList(); | |
_model.Add(orders); | |
} | |
} | |
public class OrderDomain | |
{ | |
public string Name { get; } | |
public OrderDomain(string name) | |
{ | |
Name = name; | |
} | |
} | |
public interface IOrderModel | |
{ | |
void Add(List<OrderDomain> orders); | |
void Add(OrderDomain orderDomain); | |
} | |
public class OrderModel : IOrderModel | |
{ | |
public void Add(OrderDomain orderDomain) | |
{ | |
Add(new List<OrderDomain> { orderDomain }); | |
} | |
public void Add(List<OrderDomain> orders) | |
{ | |
foreach (OrderDomain item in orders) | |
{ | |
new Order(item.Name).Save(); | |
} | |
} | |
} | |
/// <summary> | |
/// Mapping Database's Table : ORDER | |
/// </summary> | |
public class Order : BaseTableObject | |
{ | |
private string _Name; | |
private DateTime _CreateDate; | |
public Order(string name) | |
{ | |
_Name = name; | |
_CreateDate = DateTime.Now; | |
} | |
public void Save() | |
{ | |
string sql = "INSERT INTO ORDER .... "; | |
dataContext.ExecuteCommand(sql); | |
} | |
} | |
public class BaseTableObject | |
{ | |
protected DataContext dataContext; | |
public BaseTableObject() | |
{ | |
dataContext = new DataContext("Connection String........"); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment