using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using TwoFromTheCasketContratcs.DataModels; using TwoFromTheCasketContratcs.Enums; using TwoFromTheCasketContratcs.Exceptions; namespace TwoFromTheCasketTest.DataModelsTest; [TestFixture] public class OrderDataModelTests { [Test] public void IdIsNullOrEmptyTest() { var order = CreateDataModel(string.Empty, DateTime.Now, StatusType.Ready, RoomType.Social); Assert.That(() => order.Validate(), Throws.TypeOf()); } [Test] public void IdIsNotGuidTest() { var order = CreateDataModel("id", DateTime.Now, StatusType.Ready, RoomType.Social); Assert.That(() => order.Validate(), Throws.TypeOf()); } [Test] public void DateIsEmptyTest() { var order = CreateDataModel(Guid.NewGuid().ToString(), default, StatusType.Ready, RoomType.Social); Assert.That(() => order.Validate(), Throws.TypeOf()); } [Test] public void StatusIsNoneTest() { var order = CreateDataModel(Guid.NewGuid().ToString(), DateTime.Now, StatusType.None, RoomType.Social); Assert.That(() => order.Validate(), Throws.TypeOf()); } [Test] public void RoomTypeIsNoneTest() { var order = CreateDataModel(Guid.NewGuid().ToString(), DateTime.Now, StatusType.Ready, RoomType.None); Assert.That(() => order.Validate(), Throws.TypeOf()); } [Test] public void AllFieldsAreCorrectTest() { var id = Guid.NewGuid().ToString(); var date = DateTime.Now; var status = StatusType.Ready; var roomType = RoomType.Social; var order = CreateDataModel(id, date, status, roomType); Assert.That(() => order.Validate(), Throws.Nothing); Assert.Multiple(() => { Assert.That(order.Id, Is.EqualTo(id)); Assert.That(order.Date, Is.EqualTo(date)); Assert.That(order.Status, Is.EqualTo(status)); Assert.That(order.RoomType, Is.EqualTo(roomType)); }); } private static OrderDataModel CreateDataModel(string id, DateTime date, StatusType status, RoomType roomType) { return new OrderDataModel(id, date, status, roomType); } }