An open API service indexing awesome lists of open source software.

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

Awesome Lists containing this project

README

          

# MockDataGenerator
Generate mock data for POCO

[![NuGet](https://img.shields.io/nuget/v/MockDataGenerator.svg?style=flat-square&label=nuget)](https://www.nuget.org/packages/MockDataGenerator/) ![Nuget](https://img.shields.io/nuget/dt/mockdatagenerator) ![AppVeyor](https://img.shields.io/appveyor/ci/EmreALAR/mockdatagenerator) ![AppVeyor tests](https://img.shields.io/appveyor/tests/EmreALAR/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
}
}

```