106 lines
5.4 KiB
C#
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);
|
|
}
|
|
}
|