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 -g 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;

// 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
var generator = new CufflinkGenerator();
var customers = generator.Generate<Customer>(100);

// Insert into database using Tuxedo
using var db = new TuxedoContext(connectionString);
await db.InsertAsync(customers);

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 automatically detects FK relationships
var generator = new CufflinkGenerator(connectionString);

// Generate customers first
generator.GenerateAndInsert<Customer>(50);

// Generate orders - CustomerId will reference existing customers
generator.GenerateAndInsert<Order>(200);

Console.WriteLine("✓ Generated 50 customers and 200 orders with valid relationships");

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.