Noundry.Tuxedo.Cufflink

Intelligent fake data generation library and CLI for Noundry.Tuxedo ORM. Generate realistic test data with automatic foreign key and primary key relationship detection.

100+
Data Types
Auto
FK Detection
Realistic
Test Data
CLI + Lib
Two Modes

Why Cufflink?

Generate realistic test data for your database with intelligent relationship handling and customizable fake data providers.

Smart Relationship Detection

Automatically detects and respects foreign key relationships, ensuring referential integrity in your test data.

Customizable Generators

Built-in support for names, addresses, emails, phone numbers, and more. Easily extend with custom data generators.

CLI & Library

Use as a command-line tool for quick test data generation or integrate directly into your .NET test projects.

Installation

Get started with Cufflink via NuGet package or CLI tool.

NuGet Package

For integration into your test projects:

$ dotnet add package Noundry.Tuxedo.Cufflink

CLI Tool

For command-line data generation:

$ dotnet tool install --global Noundry.Tuxedo.Cufflink.CLI

Usage Examples

Generate realistic test data using the library or CLI.

Basic Data Generation

using Noundry.Tuxedo.Cufflink;
using Noundry.Tuxedo.Cufflink.Core;

// Define your model
public class Customer
{
 public int Id { get; set; }
 public string Name { get; set; }
 public string Email { get; set; }
 public string Phone { get; set; }
}

// Generate fake data and insert directly
var engine = new CufflinkEngine();
await engine.GenerateFakeAsync(
 recordCount: 1000,
 connectionString: "your-connection-string",
 provider: DatabaseProvider.SqlServer,
 batchSize: 500);

Automatic Relationship Handling

public class Order
{
 public int Id { get; set; }
 public int CustomerId { get; set; } // FK to Customer
 public DateTime OrderDate { get; set; }
 public decimal Total { get; set; }
}

// Cufflink auto-detects FK relationships from the assembly
var engine = new CufflinkEngine();

// Generate from specific assembly - respects FK ordering
await engine.GenerateFakeAsync(
 assembly: typeof(Customer).Assembly,
 recordCount: 1000,
 connectionString: "your-connection-string",
 provider: DatabaseProvider.SqlServer);

// Or seed predefined data
await engine.SeedAsync(
 seedData,
 connectionString: "your-connection-string",
 provider: DatabaseProvider.SqlServer);

CLI Tool Usage

# Generate data for a specific table
$ cufflink generate \
 --table Customers \
 --rows 100 \
 --connection "Server=localhost;Database=TestDb;..."

✓ Generated 100 rows for Customers table

# Generate data for entire database with relationships
$ cufflink generate-all \
 --connection "Server=localhost;Database=TestDb;..." \
 --rows-per-table 50

✓ Analyzing schema...
✓ Generated data for 5 tables respecting FK constraints

# Export generated data to JSON
$ cufflink generate \
 --table Products \
 --rows 100 \
 --output products.json \
 --format json

Built-in Data Generators

Cufflink includes realistic generators for common data types.

Personal Data

  • • First & last names
  • • Email addresses
  • • Phone numbers
  • • Dates of birth

Address Data

  • • Street addresses
  • • Cities & states
  • • ZIP/postal codes
  • • Countries

Business Data

  • • Company names
  • • Job titles
  • • Department names
  • • Industry types

Financial Data

  • • Credit card numbers
  • • Bank account numbers
  • • Currency amounts
  • • Transaction types

Internet Data

  • • Usernames
  • • Domain names
  • • URLs
  • • IP addresses

Product Data

  • • Product names
  • • SKUs & barcodes
  • • Descriptions
  • • Categories

Ready to Generate Test Data?

Start using Cufflink today for intelligent fake data generation with automatic relationship handling.