https://github.com/emrecaglar/mockdatagenerator
Generate mock data for POCO
https://github.com/emrecaglar/mockdatagenerator
mock-data mocking testing-tools unittest
Last synced: 6 months ago
JSON representation
Generate mock data for POCO
- Host: GitHub
- URL: https://github.com/emrecaglar/mockdatagenerator
- Owner: emrecaglar
- License: mit
- Created: 2019-11-05T17:26:02.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2021-12-24T08:50:58.000Z (over 4 years ago)
- Last Synced: 2025-11-27T13:26:51.052Z (7 months ago)
- Topics: mock-data, mocking, testing-tools, unittest
- Language: C#
- Size: 146 KB
- Stars: 12
- Watchers: 2
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# MockDataGenerator
Generate mock data for POCO
[](https://www.nuget.org/packages/MockDataGenerator/)   
```csharp
namespace XUnitTestProject1
{
public class MockGeneratorTests
{
[Fact]
public void Test()
{
var productGenerator = new MockDataGenerator()
.Register(x => x.Name, x => x.Name())
.Register(x => x.Explanation, x => x.LoremIpsum())
.Register(x => x.Category, x => x.Object(
new MockDataGenerator()
.Register(cat => cat.Id, cat => cat.AutoIncrement())
.Register(cat => cat.Name, cat => cat.Random())
))
.Register(x => x.CategoryId, model => model.Category.Id)
.Register(x => x.Comments, x => x.List())
.Register(x => x.Price, x => x.Random())
.Register(x => x.Unit, x => x.Random(5, 15))
.Register(x => x.Amount, (model) => model.Price * model.Unit)
.Register(x => x.Id, x => x.Guid())
.Register(x => x.Barcodes, x => x.Array())
.Register(x => x.CurrencySymbol, x => x.CurrencySymbol())
.Register(x => x.Hash, x => x.MD5())
.Register(x => x.Size, x => x.FromEnum())
.Register(x => x.Sales, x => x.List(
new MockDataGenerator()
.Register(sale => sale.CardNumber, sale => sale.CreditCard())
.Register(sale => sale.Iban, sale => sale.IBAN())
.Register(sale => sale.SaleDate, sale => sale.Random())
.Register(sale => sale.Customer, sale => sale.Object(
new MockDataGenerator()
.Register(cust => cust.Email, cust => cust.Email())
.Register(cust => cust.Gender, cust => cust.Gender())
.Register(cust => cust.Id, cust => cust.Guid())
.Register(cust => cust.Name, cust => cust.Name())
.Register(cust => cust.PersonalPage, cust => cust.Url(true))
.Register(cust => cust.Phone, cust => cust.Phone())
.Register(cust => cust.Region, cust => cust.Region())
.Register(cust => cust.Surname, cust => cust.Surname())
))
));
var data = productGenerator.Generate(5);
}
}
public class Customer
{
public Guid Id { get; set; }
public string Name { get; set; }
public string Surname { get; set; }
public string Phone { get; set; }
public string Email { get; set; }
public string PersonalPage { get; set; }
public string Region { get; set; }
public string Gender { get; set; }
}
public class Sales
{
public DateTime SaleDate { get; set; }
public Customer Customer { get; set; }
public string Iban { get; set; }
public string CardNumber { get; set; }
}
public class Category
{
public int Id { get; set; }
public string Name { get; set; }
}
public class Product
{
public Guid Id { get; set; }
public string Name { get; set; }
public string Explanation { get; set; }
public decimal Price { get; set; }
public int Unit { get; set; }
public decimal Amount { get; set; }
public int CategoryId { get; set; }
public Category Category { get; set; }
public string[] Barcodes { get; set; }
public List Sales { get; set; }
public List Comments { get; set; }
public string Hash { get; set; }
public string CurrencySymbol { get; set; }
public SizeCategory Size { get; set; }
}
public enum SizeCategory
{
Small,
Medium,
Large
}
}
```