using CartWise.Domain.Entities; namespace CartWise.Domain.Tests; public class RetailerAndStoreLocationTests { private static readonly DateTime Now = new(2026, 8, 10, 12, 0, 0, DateTimeKind.Utc); [Fact] public void Retailer_Constructor_SetsNormalizedName() { var retailer = new Retailer("Trader Joe's"); Assert.Equal("TRADER JOE'S", retailer.NormalizedName); } [Theory] [InlineData("")] [InlineData(" ")] [InlineData(null)] public void Retailer_Constructor_ThrowsWhenNameIsMissing(string? name) { Assert.Throws(() => new Retailer(name!)); } [Fact] public void StoreLocation_Constructor_SetsRequiredFields() { var retailer = new Retailer("Trader Joe's"); var store = new StoreLocation(retailer.RetailerId, "Downtown", Now, city: "Springfield"); Assert.Equal(retailer.RetailerId, store.RetailerId); Assert.Equal("Downtown", store.Name); Assert.Equal("Springfield", store.City); Assert.Equal(Now, store.CreatedUtc); } [Fact] public void StoreLocation_Constructor_ThrowsWhenRetailerIdIsEmpty() { Assert.Throws(() => new StoreLocation(Guid.Empty, "Downtown", Now)); } [Theory] [InlineData("")] [InlineData(" ")] [InlineData(null)] public void StoreLocation_Constructor_ThrowsWhenNameIsMissing(string? name) { Assert.Throws(() => new StoreLocation(Guid.NewGuid(), name!, Now)); } }