using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; using System.Text; using System.Threading.Tasks; using WildPlum.DataModels; namespace WildPlumTests.DataModelsTests; [TestFixture] public class OrderDataModelTests { [Test] public void IdIsNullOrEmptyTest() { var order = CreateDataModel(null, 100, DateTime.UtcNow, DateTime.UtcNow.AddDays(1), "1"); Assert.That(() => order.Validate(), Throws.TypeOf()); order = CreateDataModel(string.Empty, 100, DateTime.UtcNow, DateTime.UtcNow.AddDays(1), "1"); Assert.That(() => order.Validate(), Throws.TypeOf()); } [Test] public void BuyerIdIsNullOrEmptyTest() { var order = CreateDataModel("1", 100, DateTime.UtcNow, DateTime.UtcNow.AddDays(1), null); Assert.That(() => order.Validate(), Throws.TypeOf()); order = CreateDataModel("1", 100, DateTime.UtcNow, DateTime.UtcNow.AddDays(1), string.Empty); Assert.That(() => order.Validate(), Throws.TypeOf()); } [Test] public void StartDateAndEndDateIsNotCorrect() { var order = CreateDataModel("1", 100, DateTime.UtcNow.AddDays(2), DateTime.UtcNow, "1"); Assert.That(() => order.Validate(), Throws.TypeOf()); } private static OrderDataModel CreateDataModel(string? id, int price, DateTime dateStart, DateTime dateEnd, string? buyerId) => new(id, price, dateStart, dateEnd, buyerId); }