Skip to content

Add Shipping faker for logistics and tracking data - #26

Merged
TheJavaGuy merged 1 commit into
masterfrom
shipping-faker
Feb 9, 2026
Merged

Add Shipping faker for logistics and tracking data#26
TheJavaGuy merged 1 commit into
masterfrom
shipping-faker

Conversation

@TheJavaGuy

Copy link
Copy Markdown
Owner

Summary

Adds a new Shipping faker module for generating realistic shipping and logistics test data. This feature is useful for testing e-commerce order fulfillment systems, shipping carrier integrations, package tracking interfaces, warehouse management systems, and logistics/delivery applications.

What's Included

Data Generation Methods (33 total)

Carrier Information:

  • carrier() - Shipping carrier names (UPS, FedEx, USPS, DHL, etc.)
  • shippingMethod() - Shipping methods (Standard Ground, Express, Overnight, etc.)

Tracking:

  • trackingNumber() - Random carrier-appropriate tracking number
  • trackingNumberUps() - UPS format (1Z + 16 chars)
  • trackingNumberFedEx() - FedEx format (####-####-####)
  • trackingNumberUsps() - USPS format (22 digits)
  • trackingNumberDhl() - DHL format (10 digits)
  • trackingEvent() - Realistic tracking event messages

Package Details:

  • packageType() - Package types (Box, Envelope, Tube, etc.)
  • weight() / weightFormatted() - Package weights with units
  • dimensions() / dimensionValues() - Package dimensions (L x W x H)
  • barcode() - Package barcode numbers

Shipping Costs & Dates:

  • shippingCost() / shippingCostFormatted() - Shipping costs as BigDecimal or formatted strings
  • estimatedDeliveryDate() - Delivery dates 3-14 days ahead
  • shipDate() - Ship dates within last 7 days
  • deliveryDateTime() - Actual delivery timestamps
  • deliveryWindow() - Delivery time windows (e.g., "2:00 PM - 6:00 PM")

Status & Operations:

  • status() - Shipping statuses (pending, in_transit, delivered, etc.)
  • handlingInstruction() - Handling instructions (Fragile, Signature Required, etc.)
  • exceptionType() - Delivery exceptions (Weather Delay, Address Unknown, etc.)
  • facilityLocation() - Facility names for tracking updates
  • zone() - Shipping zones (1-8)

Additional Features:

  • shipmentId() - Order/shipment IDs (SHP-YYYYMMDD-ABC123)
  • referenceNumber() - PO/order reference numbers
  • insuredValue() / codAmount() - Monetary values
  • signatureRequired() / hazardousMaterials() - Boolean flags

Files Changed

  • src/main/java/org/thejavaguy/javafaker/Shipping.java - Main implementation
  • src/main/resources/en/shipping.yml - Data configuration
  • src/test/java/org/thejavaguy/javafaker/ShippingTest.java - 32 comprehensive tests
  • src/main/java/org/thejavaguy/javafaker/Faker.java - Registration
  • src/main/java/org/thejavaguy/javafaker/service/files/EnFile.java - YAML file registration

Test Coverage

All 32 tests passing with validation for:

  • ✅ Tracking number format patterns (carrier-specific)
  • ✅ Date ranges (delivery 3-14 days ahead, ship date within last 7 days)
  • ✅ Cost and weight decimal precision
  • ✅ Dimension and time window formats
  • ✅ Data quality (non-blank values, valid enums)

Example Usage

Faker faker = new Faker();

// Carrier and tracking
faker.shipping().carrier();              // "FedEx"
faker.shipping().trackingNumber();       // "1ZABC1234567890123"
faker.shipping().trackingEvent();        // "Package arrived at Chicago, IL Hub"

// Package details
faker.shipping().packageType();          // "Box"
faker.shipping().dimensions();           // "12 x 8 x 4 in"
faker.shipping().weightFormatted();      // "2.5 lb"

// Costs and dates
faker.shipping().shippingCostFormatted();// "$12.99"
faker.shipping().estimatedDeliveryDate();// LocalDate (3-14 days ahead)
faker.shipping().deliveryWindow();       // "2:00 PM - 6:00 PM"

// Status and operations
faker.shipping().status();               // "in_transit"
faker.shipping().handlingInstruction();  // "Fragile"
faker.shipping().zone();                 // 4

Test Results

Tests run: 32, Failures: 0, Errors: 0, Skipped: 0
Full test suite: 85,179 tests run, 0 failures

Implement comprehensive Shipping faker module to generate realistic shipping and logistics test data including:
- Tracking numbers for major carriers (UPS, FedEx, USPS, DHL)
- Shipping methods, statuses, and package types
- Package dimensions, weights, and costs
- Delivery dates and time windows
- Facility locations and tracking events
- Handling instructions and exception types

Includes 32 test cases with full coverage of all methods.
@TheJavaGuy
TheJavaGuy merged commit 441ca4f into master Feb 9, 2026
2 checks passed
@TheJavaGuy
TheJavaGuy deleted the shipping-faker branch February 9, 2026 08:01
@coveralls

Copy link
Copy Markdown

Pull Request Test Coverage Report for Build 21816861209

Details

  • 0 of 0 changed or added relevant lines in 0 files are covered.
  • No unchanged relevant lines lost coverage.
  • Overall coverage decreased (-0.7%) to 96.276%

Totals Coverage Status
Change from base Build 21816009898: -0.7%
Covered Lines: 1837
Relevant Lines: 1885

💛 - Coveralls

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants