- SupplierService: Bestellungen mit Lieferzeit-Berechnung - OrderTerminal: Spieler-Interaktion zum Aufgeben von Bestellungen - StorageCrateRegistry + StorageCrate.Restock: Server registriert Kisten und füllt sie bei Lieferung wieder auf - GameClock.TotalHours: durchgehende Spielzeit für Lieferzeit-Berechnung - ROADMAP: Bestellsystem-Punkt als erledigt markiert Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
38 lines
880 B
C#
38 lines
880 B
C#
using AfterHours.Economy;
|
|
using NUnit.Framework;
|
|
|
|
namespace AfterHours.Tests
|
|
{
|
|
public sealed class PurchaseOrderTests
|
|
{
|
|
[Test]
|
|
public void Total_SumsAllLines()
|
|
{
|
|
var order = new PurchaseOrder();
|
|
order.Add(1, 10, 2f);
|
|
order.Add(2, 5, 4f);
|
|
|
|
Assert.AreEqual(40f, order.Total(), 0.0001f);
|
|
}
|
|
|
|
[Test]
|
|
public void Add_IgnoresNonPositiveQuantity()
|
|
{
|
|
var order = new PurchaseOrder();
|
|
order.Add(1, 0, 5f);
|
|
order.Add(1, -3, 5f);
|
|
|
|
Assert.AreEqual(0, order.Lines.Count);
|
|
}
|
|
|
|
[Test]
|
|
public void LineTotal_IsQuantityTimesUnitPrice()
|
|
{
|
|
var order = new PurchaseOrder();
|
|
order.Add(7, 3, 2.5f);
|
|
|
|
Assert.AreEqual(7.5f, order.Lines[0].LineTotal, 0.0001f);
|
|
}
|
|
}
|
|
}
|