2025-02-17 16:34:59 +04:00

92 lines
3.1 KiB
C#

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
{
List<ServiceOrderDataModel> serviceOrders = new List<ServiceOrderDataModel>
{
new ServiceOrderDataModel("orderId1", "serviceId1", "masterId1", 60),
new ServiceOrderDataModel("orderId2", "serviceId2", "masterId2", 120)
};
[Test]
public void IdIsNullOrEmptyTest()
{
var order = CreateDataModel(string.Empty, DateTime.Now, StatusType.Ready, RoomType.Social, serviceOrders);
Assert.That(() => order.Validate(), Throws.TypeOf<ValidationException>());
}
[Test]
public void IdIsNotGuidTest()
{
var order = CreateDataModel("id", DateTime.Now, StatusType.Ready, RoomType.Social, serviceOrders);
Assert.That(() => order.Validate(), Throws.TypeOf<ValidationException>());
}
[Test]
public void DateIsEmptyTest()
{
var order = CreateDataModel(Guid.NewGuid().ToString(), default, StatusType.Ready, RoomType.Social, serviceOrders);
Assert.That(() => order.Validate(), Throws.TypeOf<ValidationException>());
}
[Test]
public void StatusIsNoneTest()
{
var order = CreateDataModel(Guid.NewGuid().ToString(), DateTime.Now, StatusType.None, RoomType.Social, serviceOrders);
Assert.That(() => order.Validate(), Throws.TypeOf<ValidationException>());
}
[Test]
public void RoomTypeIsNoneTest()
{
var order = CreateDataModel(Guid.NewGuid().ToString(), DateTime.Now, StatusType.Ready, RoomType.None, serviceOrders);
Assert.That(() => order.Validate(), Throws.TypeOf<ValidationException>());
}
[Test]
public void ListServiceOrderIsEmptyTest()
{
var order = CreateDataModel(Guid.NewGuid().ToString(), DateTime.Now, StatusType.Ready, RoomType.Social, null);
Assert.That(() => order.Validate(), Throws.TypeOf<ValidationException>());
}
[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, serviceOrders);
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));
Assert.That(order.ServiceOrders, Is.EqualTo(serviceOrders));
});
}
private static OrderDataModel CreateDataModel(string id, DateTime date, StatusType status, RoomType roomType, List<ServiceOrderDataModel> serviceOrder)
{
return new OrderDataModel(id, date, status, roomType, serviceOrder);
}
}