ne_kroman 1ebb95b7b1 lab1
2025-02-13 18:16:23 +04:00

106 lines
5.4 KiB
C#

using ElectricalRepairServiceContract.DataModels;
using ElectricalRepairServiceContract.Enums;
using ElectricalRepairServiceContract.Exceptions;
using NUnit.Framework;
using System;
using System.Collections.Generic;
namespace ElectricalRepairServiceTests.DataModelsTests
{
[TestFixture]
internal class RequestDataModelTest
{
[Test]
public void IdIsNullOrEmptyTest()
{
var request = CreateDataModel(null, RequestType.Repair, "Description", 1000, DateTime.Now, Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), new List<DetailsUseDataModel>());
Assert.That(() => request.Validate(), Throws.TypeOf<ValidationException>());
request = CreateDataModel(string.Empty, RequestType.Repair, "Description", 1000, DateTime.Now, Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), new List<DetailsUseDataModel>());
Assert.That(() => request.Validate(), Throws.TypeOf<ValidationException>());
}
[Test]
public void IdIsNotGuidTest()
{
var request = CreateDataModel("invalid-id", RequestType.Repair, "Description", 1000, DateTime.Now, Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), new List<DetailsUseDataModel>());
Assert.That(() => request.Validate(), Throws.TypeOf<ValidationException>());
}
[Test]
public void EmploeeIdIsNullOrEmptyTest()
{
var request = CreateDataModel(Guid.NewGuid().ToString(), RequestType.Repair, "Description", 1000, DateTime.Now, null, Guid.NewGuid().ToString(), new List<DetailsUseDataModel>());
Assert.That(() => request.Validate(), Throws.TypeOf<ValidationException>());
request = CreateDataModel(Guid.NewGuid().ToString(), RequestType.Repair, "Description", 1000, DateTime.Now, string.Empty, Guid.NewGuid().ToString(), new List<DetailsUseDataModel>());
Assert.That(() => request.Validate(), Throws.TypeOf<ValidationException>());
}
[Test]
public void EmploeeIdIsNotGuidTest()
{
var request = CreateDataModel(Guid.NewGuid().ToString(), RequestType.Repair, "Description", 1000, DateTime.Now, "invalid-id", Guid.NewGuid().ToString(), new List<DetailsUseDataModel>());
Assert.That(() => request.Validate(), Throws.TypeOf<ValidationException>());
}
[Test]
public void ClientIdIsNotGuidTest()
{
var request = CreateDataModel(Guid.NewGuid().ToString(), RequestType.Repair, "Description", 1000, DateTime.Now, Guid.NewGuid().ToString(), "invalid-client-id", new List<DetailsUseDataModel>());
Assert.That(() => request.Validate(), Throws.TypeOf<ValidationException>());
}
[Test]
public void CostIsNegativeTest()
{
var request = CreateDataModel(Guid.NewGuid().ToString(), RequestType.Repair, "Description", -1000, DateTime.Now, Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), new List<DetailsUseDataModel>());
Assert.That(() => request.Validate(), Throws.TypeOf<ValidationException>());
}
[Test]
public void DescriptionIsEmptyTest()
{
var request = CreateDataModel(Guid.NewGuid().ToString(), RequestType.Repair, string.Empty, 1000, DateTime.Now, Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), new List<DetailsUseDataModel>());
Assert.That(() => request.Validate(), Throws.TypeOf<ValidationException>());
}
[Test]
public void DetailsUseIsEmptyTest()
{
var request = CreateDataModel(Guid.NewGuid().ToString(), RequestType.Repair, "Description", 1000, DateTime.Now, Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), new List<DetailsUseDataModel>());
Assert.That(() => request.Validate(), Throws.TypeOf<ValidationException>());
}
[Test]
public void AllFieldsCorrectTest()
{
var id = Guid.NewGuid().ToString();
var requestType = RequestType.Repair;
var description = "Valid description";
var cost = 1500;
var dateComplete = DateTime.Now;
var emploeeId = Guid.NewGuid().ToString();
var clientId = Guid.NewGuid().ToString();
var detailsUses = new List<DetailsUseDataModel>
{
new DetailsUseDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 10)
};
var request = CreateDataModel(id, requestType, description, cost, dateComplete, emploeeId, clientId, detailsUses);
Assert.That(request.Id, Is.EqualTo(id));
Assert.That(request.RequestType, Is.EqualTo(requestType));
Assert.That(request.Description, Is.EqualTo(description));
Assert.That(request.Cost, Is.EqualTo(cost));
Assert.That(request.DateComplete, Is.EqualTo(dateComplete));
Assert.That(request.EmploeeId, Is.EqualTo(emploeeId));
Assert.That(request.ClientId, Is.EqualTo(clientId));
Assert.That(request.DetailsUse, Is.EqualTo(detailsUses));
}
private RequestDataModel CreateDataModel(string id, RequestType requestType, string? description, int cost, DateTime dateComplete, string emploeeId, string? clientId, List<DetailsUseDataModel>? detailsUses)
=> new RequestDataModel(id, requestType, description, cost, dateComplete, emploeeId, clientId, detailsUses);
}
}