Фикс багов
This commit is contained in:
@@ -6,9 +6,10 @@ using TwoFromTheCasketContracts.Infastructure;
|
||||
|
||||
namespace TwoFromTheCasketContracts.DataModels;
|
||||
|
||||
public class RoomsDataModel(string id, string address, double space, TypeRoom type) : IValidation
|
||||
public class RoomDataModel(string id, string ownerFIO, string address, double space, TypeRoom type) : IValidation
|
||||
{
|
||||
public string Id { get; private set; } = id;
|
||||
public string OwnerFIO { get; private set; } = ownerFIO;
|
||||
public string Address { get; private set; } = address;
|
||||
public double Space { get; private set; } = space;
|
||||
public TypeRoom Type { get; private set; } = type;
|
||||
@@ -19,6 +20,8 @@ public class RoomsDataModel(string id, string address, double space, TypeRoom ty
|
||||
throw new ValidationException("Field Id is empty");
|
||||
if (!Id.IsGuid())
|
||||
throw new ValidationException("The value in the field Id is not a unique identifier");
|
||||
if (OwnerFIO.IsEmpty())
|
||||
throw new ValidationException("Field OwnerFIO is empty");
|
||||
if (Address.IsEmpty())
|
||||
throw new ValidationException("Field Address is empty");
|
||||
if (!Regex.IsMatch(Address, @"^([А-ЯЁа-яё0-9\s.,-]+),\s?д\.\s?\d+(,\s?кв\.\s?\d+)?$"))
|
||||
@@ -0,0 +1,30 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using TwoFromTheCasketContracts.Enums;
|
||||
using TwoFromTheCasketContracts.Exceptions;
|
||||
using TwoFromTheCasketContracts.Extensions;
|
||||
using TwoFromTheCasketContracts.Infastructure;
|
||||
|
||||
namespace TwoFromTheCasketContracts.DataModels;
|
||||
|
||||
public class RoomHistoryDataModel(string roomId, string ownerFIO, TypeRoom type, DateTime dateChange) : IValidation
|
||||
{
|
||||
public string RoomId { get; private set; } = roomId;
|
||||
public string OwnerFIO { get; private set; } = ownerFIO;
|
||||
public TypeRoom Type { get; private set; } = type;
|
||||
public DateTime DateChange { get; private set; } = dateChange;
|
||||
|
||||
public void Validate()
|
||||
{
|
||||
if (RoomId.IsEmpty())
|
||||
throw new ValidationException("Field RoomId is empty");
|
||||
if (!RoomId.IsGuid())
|
||||
throw new ValidationException("The value in the field RoomId is not a unique identifier");
|
||||
if (OwnerFIO.IsEmpty())
|
||||
throw new ValidationException("Field OwnerFIO is empty");
|
||||
if (Type == TypeRoom.None)
|
||||
throw new ValidationException("Field Type is empty");
|
||||
}
|
||||
}
|
||||
@@ -4,7 +4,7 @@ using TwoFromTheCasketContracts.Infastructure;
|
||||
|
||||
namespace TwoFromTheCasketContracts.DataModels;
|
||||
|
||||
public class SalaryHistoryDataModel(string id, string workerId, double sum) : IValidation
|
||||
public class SalaryDataModel(string id, string workerId, double sum) : IValidation
|
||||
{
|
||||
public string Id { get; private set; } = id;
|
||||
public string WorkerId { get; private set; } = workerId;
|
||||
@@ -0,0 +1,32 @@
|
||||
using TwoFromTheCasketContracts.Extensions;
|
||||
using TwoFromTheCasketContracts.Exceptions;
|
||||
using TwoFromTheCasketContracts.Infastructure;
|
||||
|
||||
namespace TwoFromTheCasketContracts.DataModels;
|
||||
|
||||
public class Specialization(string id, string specializationId, string specializationName, double salary,
|
||||
bool isActual, DateTime changeDate) : IValidation
|
||||
{
|
||||
public string Id { get; private set; } = id;
|
||||
public string SpecializationId { get; private set; } = specializationId;
|
||||
public string SpecializationName { get; private set; } = specializationName;
|
||||
public double Salary { get; private set; } = salary;
|
||||
public bool IsActual { get; private set; } = isActual;
|
||||
public DateTime ChangeDate { get; private set; } = changeDate;
|
||||
public void Validate()
|
||||
{
|
||||
if (Id.IsEmpty())
|
||||
throw new ValidationException("Field Id is empty");
|
||||
if (!Id.IsGuid())
|
||||
throw new ValidationException("The value in the field Id is not a unique identifier");
|
||||
if (SpecializationId.IsEmpty())
|
||||
throw new ValidationException("Field SpecializationId is empty");
|
||||
if (!SpecializationId.IsGuid())
|
||||
throw new ValidationException("The value in the field SpecializationId is not a unique identifier");
|
||||
if (SpecializationName.IsEmpty())
|
||||
throw new ValidationException("Field SpecializationName is empty");
|
||||
if (Salary <= 0)
|
||||
throw new ValidationException("Field Salary is empty");
|
||||
}
|
||||
|
||||
}
|
||||
@@ -6,17 +6,14 @@ using TwoFromTheCasketContracts.Enums;
|
||||
|
||||
namespace TwoFromTheCasketContracts.DataModels;
|
||||
|
||||
public class WorkerDataModel(string id, string fio, Specializations specialization, double salary, string phoneNumber,
|
||||
DateTime dateBirthday) : IValidation
|
||||
public class WorkerDataModel(string id, string fio, string specializationId, string phoneNumber, DateTime dateBirthday) : IValidation
|
||||
{
|
||||
public string Id { get; private set; } = id;
|
||||
public string FIO { get; private set; } = fio;
|
||||
public Specializations Specialization { get; private set; } = specialization;
|
||||
public double Salary { get; private set; } = salary;
|
||||
public string SpecializationId { get; private set; } = specializationId;
|
||||
public string PhoneNumber { get; private set; } = phoneNumber;
|
||||
public DateTime DateBirthDay { get; private set; } = dateBirthday;
|
||||
public DateTime ValidFrom { get; private set; } = DateTime.Today;
|
||||
public DateTime? ValidTo { get; private set; } = null;
|
||||
public bool IsCurrent { get; private set; } = true;
|
||||
|
||||
|
||||
@@ -28,10 +25,10 @@ public class WorkerDataModel(string id, string fio, Specializations specializati
|
||||
throw new ValidationException("The value in the field Id is not a unique identifier");
|
||||
if (FIO.IsEmpty())
|
||||
throw new ValidationException("Field FIO is empty");
|
||||
if(Specialization == Specializations.None)
|
||||
throw new ValidationException("Field Specialization is empty");
|
||||
if(Salary <= 0)
|
||||
throw new ValidationException("Field Salary is empty");
|
||||
if (SpecializationId.IsEmpty())
|
||||
throw new ValidationException("Field SpecializationId is empty");
|
||||
if (!SpecializationId.IsGuid())
|
||||
throw new ValidationException("The value in the field SpecializationId is not a unique identifier");
|
||||
if (PhoneNumber.IsEmpty())
|
||||
throw new ValidationException("Field PhoneNumber is empty");
|
||||
if (!Regex.IsMatch(PhoneNumber, @"^((8|\+7)[\- ]?)?(\(?\d{3}\)?[\-]?)?[\d\- ]{7,10}$"))
|
||||
|
||||
@@ -1,19 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace TwoFromTheCasketContracts.Enums;
|
||||
|
||||
[Flags]
|
||||
public enum Specializations
|
||||
{
|
||||
None = 0,
|
||||
Plasterer = 1,
|
||||
Painter = 2,
|
||||
Carpenter = 4,
|
||||
Electrician = 8,
|
||||
Plumber = 16,
|
||||
Mason = 32
|
||||
}
|
||||
@@ -6,46 +6,46 @@ using System.Text.RegularExpressions;
|
||||
namespace TwoFromTheCasketTests.DataModelsTests;
|
||||
|
||||
[TestFixture]
|
||||
internal class RoomsDataModelTests
|
||||
internal class RoomDataModelTests
|
||||
{
|
||||
[Test]
|
||||
public void IdIsNullOrEmptyTest()
|
||||
{
|
||||
var room = CreateDataModel(null, "Ленина, д. 5", 50, TypeRoom.Office);
|
||||
var room = CreateDataModel(null, "Леонид Иванов Николаевич", "Ленина, д. 5", 50, TypeRoom.Office);
|
||||
Assert.That(() => room.Validate(), Throws.TypeOf<ValidationException>());
|
||||
|
||||
room = CreateDataModel(string.Empty, "Ленина, д. 5", 50, TypeRoom.Office);
|
||||
room = CreateDataModel(string.Empty, "Леонид Иванов Николаевич", "Ленина, д. 5", 50, TypeRoom.Office);
|
||||
Assert.That(() => room.Validate(), Throws.TypeOf<ValidationException>());
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void IdIsNotGuidTest()
|
||||
{
|
||||
var room = CreateDataModel("not-a-guid", "Ленина, д. 5", 50, TypeRoom.Office);
|
||||
var room = CreateDataModel("not-a-guid", "Леонид Иванов Николаевич", "Ленина, д. 5", 50, TypeRoom.Office);
|
||||
Assert.That(() => room.Validate(), Throws.TypeOf<ValidationException>());
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void AddressIsEmptyOrInvalidTest()
|
||||
{
|
||||
var room = CreateDataModel(Guid.NewGuid().ToString(), "", 50, TypeRoom.Office);
|
||||
var room = CreateDataModel(Guid.NewGuid().ToString(), "Леонид Иванов Николаевич", "", 50, TypeRoom.Office);
|
||||
Assert.That(() => room.Validate(), Throws.TypeOf<ValidationException>());
|
||||
|
||||
room = CreateDataModel(Guid.NewGuid().ToString(), "Invalid Address", 50, TypeRoom.Office);
|
||||
room = CreateDataModel(Guid.NewGuid().ToString(), "Леонид Иванов Николаевич", "Invalid Address", 50, TypeRoom.Office);
|
||||
Assert.That(() => room.Validate(), Throws.TypeOf<ValidationException>());
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void SpaceIsNegativeOrZeroTest()
|
||||
{
|
||||
var room = CreateDataModel(Guid.NewGuid().ToString(), "Ленина, д. 5", 0, TypeRoom.Office);
|
||||
var room = CreateDataModel(Guid.NewGuid().ToString(), "Леонид Иванов Николаевич", "Ленина, д. 5", 0, TypeRoom.Office);
|
||||
Assert.That(() => room.Validate(), Throws.TypeOf<ValidationException>());
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TypeIsNoneTest()
|
||||
{
|
||||
var room = CreateDataModel(Guid.NewGuid().ToString(), "Ленина, д. 5", 50, TypeRoom.None);
|
||||
var room = CreateDataModel(Guid.NewGuid().ToString(), "Леонид Иванов Николаевич", "Ленина, д. 5", 50, TypeRoom.None);
|
||||
Assert.That(() => room.Validate(), Throws.TypeOf<ValidationException>());
|
||||
}
|
||||
|
||||
@@ -53,22 +53,24 @@ internal class RoomsDataModelTests
|
||||
public void AllFieldsIsCorrectTest()
|
||||
{
|
||||
var id = Guid.NewGuid().ToString();
|
||||
var ownersFIO = "Леонид Иванов Николаевич";
|
||||
var address = "Ленина, д. 5";
|
||||
var space = 50.0;
|
||||
var type = TypeRoom.Office;
|
||||
|
||||
var room = CreateDataModel(id, address, space, type);
|
||||
var room = CreateDataModel(id, ownersFIO, address, space, type);
|
||||
Assert.That(() => room.Validate(), Throws.Nothing);
|
||||
|
||||
Assert.Multiple(() =>
|
||||
{
|
||||
Assert.That(room.Id, Is.EqualTo(id));
|
||||
Assert.That(room.OwnerFIO, Is.EqualTo(ownersFIO));
|
||||
Assert.That(room.Address, Is.EqualTo(address));
|
||||
Assert.That(room.Space, Is.EqualTo(space));
|
||||
Assert.That(room.Type, Is.EqualTo(type));
|
||||
});
|
||||
}
|
||||
|
||||
private static RoomsDataModel CreateDataModel(string? id, string address, double space, TypeRoom type)
|
||||
=> new(id, address, space, type);
|
||||
private static RoomDataModel CreateDataModel(string? id, string ownersFIO, string address, double space, TypeRoom type)
|
||||
=> new(id, ownersFIO, address, space, type);
|
||||
}
|
||||
@@ -0,0 +1,63 @@
|
||||
using TwoFromTheCasketContracts.DataModels;
|
||||
using TwoFromTheCasketContracts.Enums;
|
||||
using TwoFromTheCasketContracts.Exceptions;
|
||||
|
||||
namespace TwoFromTheCasketTests.DataModelsTests;
|
||||
|
||||
[TestFixture]
|
||||
internal class RoomHistoryDataModelTests
|
||||
{
|
||||
[Test]
|
||||
public void RoomIdIsNullOrEmptyTest()
|
||||
{
|
||||
var roomHistory = CreateDataModel(null, "John Doe", TypeRoom.Office, DateTime.UtcNow);
|
||||
Assert.That(() => roomHistory.Validate(), Throws.TypeOf<ValidationException>());
|
||||
|
||||
roomHistory = CreateDataModel(string.Empty, "John Doe", TypeRoom.Office, DateTime.UtcNow);
|
||||
Assert.That(() => roomHistory.Validate(), Throws.TypeOf<ValidationException>());
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void RoomIdIsNotGuidTest()
|
||||
{
|
||||
var roomHistory = CreateDataModel("not-a-guid", "John Doe", TypeRoom.Office, DateTime.UtcNow);
|
||||
Assert.That(() => roomHistory.Validate(), Throws.TypeOf<ValidationException>());
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void OwnerFIOIsEmptyTest()
|
||||
{
|
||||
var roomHistory = CreateDataModel(Guid.NewGuid().ToString(), string.Empty, TypeRoom.Office, DateTime.UtcNow);
|
||||
Assert.That(() => roomHistory.Validate(), Throws.TypeOf<ValidationException>());
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TypeIsNoneTest()
|
||||
{
|
||||
var roomHistory = CreateDataModel(Guid.NewGuid().ToString(), "John Doe", TypeRoom.None, DateTime.UtcNow);
|
||||
Assert.That(() => roomHistory.Validate(), Throws.TypeOf<ValidationException>());
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void AllFieldsIsCorrectTest()
|
||||
{
|
||||
var roomId = Guid.NewGuid().ToString();
|
||||
var ownerFIO = "John Doe";
|
||||
var type = TypeRoom.Office;
|
||||
var dateChange = DateTime.UtcNow;
|
||||
|
||||
var roomHistory = CreateDataModel(roomId, ownerFIO, type, dateChange);
|
||||
Assert.That(() => roomHistory.Validate(), Throws.Nothing);
|
||||
|
||||
Assert.Multiple(() =>
|
||||
{
|
||||
Assert.That(roomHistory.RoomId, Is.EqualTo(roomId));
|
||||
Assert.That(roomHistory.OwnerFIO, Is.EqualTo(ownerFIO));
|
||||
Assert.That(roomHistory.Type, Is.EqualTo(type));
|
||||
Assert.That(roomHistory.DateChange, Is.EqualTo(dateChange));
|
||||
});
|
||||
}
|
||||
|
||||
private static RoomHistoryDataModel CreateDataModel(string? roomId, string ownerFIO, TypeRoom type, DateTime dateChange)
|
||||
=> new(roomId, ownerFIO, type, dateChange);
|
||||
}
|
||||
@@ -4,7 +4,7 @@ using TwoFromTheCasketContracts.Exceptions;
|
||||
namespace TwoFromTheCasketTests.DataModelsTests;
|
||||
|
||||
[TestFixture]
|
||||
internal class SalaryHistoryDataModelTests
|
||||
internal class SalaryDataModelTests
|
||||
{
|
||||
[Test]
|
||||
public void IdIsNullOrEmptyTest()
|
||||
@@ -58,6 +58,6 @@ internal class SalaryHistoryDataModelTests
|
||||
});
|
||||
}
|
||||
|
||||
private static SalaryHistoryDataModel CreateDataModel(string? id, string? workerId, double sum)
|
||||
private static SalaryDataModel CreateDataModel(string? id, string? workerId, double sum)
|
||||
=> new(id, workerId, sum);
|
||||
}
|
||||
@@ -0,0 +1,83 @@
|
||||
using TwoFromTheCasketContracts.DataModels;
|
||||
using TwoFromTheCasketContracts.Exceptions;
|
||||
|
||||
namespace TwoFromTheCasketTests.DataModelsTests;
|
||||
|
||||
[TestFixture]
|
||||
internal class SpecializationDataModelTests
|
||||
{
|
||||
[Test]
|
||||
public void IdIsNullOrEmptyTest()
|
||||
{
|
||||
var specialization = CreateDataModel(null, Guid.NewGuid().ToString(), "Engineer", 60000, true, DateTime.UtcNow);
|
||||
Assert.That(() => specialization.Validate(), Throws.TypeOf<ValidationException>());
|
||||
|
||||
specialization = CreateDataModel(string.Empty, Guid.NewGuid().ToString(), "Engineer", 60000, true, DateTime.UtcNow);
|
||||
Assert.That(() => specialization.Validate(), Throws.TypeOf<ValidationException>());
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void IdIsNotGuidTest()
|
||||
{
|
||||
var specialization = CreateDataModel("not-a-guid", Guid.NewGuid().ToString(), "Engineer", 60000, true, DateTime.UtcNow);
|
||||
Assert.That(() => specialization.Validate(), Throws.TypeOf<ValidationException>());
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void SpecializationIdIsNullOrEmptyTest()
|
||||
{
|
||||
var specialization = CreateDataModel(Guid.NewGuid().ToString(), null, "Engineer", 60000, true, DateTime.UtcNow);
|
||||
Assert.That(() => specialization.Validate(), Throws.TypeOf<ValidationException>());
|
||||
|
||||
specialization = CreateDataModel(Guid.NewGuid().ToString(), string.Empty, "Engineer", 60000, true, DateTime.UtcNow);
|
||||
Assert.That(() => specialization.Validate(), Throws.TypeOf<ValidationException>());
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void SpecializationIdIsNotGuidTest()
|
||||
{
|
||||
var specialization = CreateDataModel(Guid.NewGuid().ToString(), "not-a-guid", "Engineer", 60000, true, DateTime.UtcNow);
|
||||
Assert.That(() => specialization.Validate(), Throws.TypeOf<ValidationException>());
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void SpecializationNameIsEmptyTest()
|
||||
{
|
||||
var specialization = CreateDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), string.Empty, 60000, true, DateTime.UtcNow);
|
||||
Assert.That(() => specialization.Validate(), Throws.TypeOf<ValidationException>());
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void SalaryIsNegativeOrZeroTest()
|
||||
{
|
||||
var specialization = CreateDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), "Engineer", 0, true, DateTime.UtcNow);
|
||||
Assert.That(() => specialization.Validate(), Throws.TypeOf<ValidationException>());
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void AllFieldsIsCorrectTest()
|
||||
{
|
||||
var id = Guid.NewGuid().ToString();
|
||||
var specializationId = Guid.NewGuid().ToString();
|
||||
var specializationName = "Engineer";
|
||||
var salary = 60000;
|
||||
var isActual = true;
|
||||
var changeDate = DateTime.UtcNow;
|
||||
|
||||
var specialization = CreateDataModel(id, specializationId, specializationName, salary, isActual, changeDate);
|
||||
Assert.That(() => specialization.Validate(), Throws.Nothing);
|
||||
|
||||
Assert.Multiple(() =>
|
||||
{
|
||||
Assert.That(specialization.Id, Is.EqualTo(id));
|
||||
Assert.That(specialization.SpecializationId, Is.EqualTo(specializationId));
|
||||
Assert.That(specialization.SpecializationName, Is.EqualTo(specializationName));
|
||||
Assert.That(specialization.Salary, Is.EqualTo(salary));
|
||||
Assert.That(specialization.IsActual, Is.EqualTo(isActual));
|
||||
Assert.That(specialization.ChangeDate, Is.EqualTo(changeDate));
|
||||
});
|
||||
}
|
||||
|
||||
private static Specialization CreateDataModel(string? id, string? specializationId, string specializationName, double salary, bool isActual, DateTime changeDate)
|
||||
=> new(id, specializationId, specializationName, salary, isActual, changeDate);
|
||||
}
|
||||
@@ -10,48 +10,59 @@ internal class WorkerDataModelTests
|
||||
[Test]
|
||||
public void IdIsNullOrEmptyTest()
|
||||
{
|
||||
var worker = CreateDataModel(null, "John Doe", Specializations.Plasterer, 50000, "+7-777-777-77-77", DateTime.Now.AddYears(-25));
|
||||
var worker = CreateDataModel(null, "John Doe", "1", "+7-777-777-77-77", DateTime.Now.AddYears(-25));
|
||||
Assert.That(() => worker.Validate(), Throws.TypeOf<ValidationException>());
|
||||
|
||||
worker = CreateDataModel(string.Empty, "John Doe", Specializations.Plasterer, 50000, "+7-777-777-77-77", DateTime.Now.AddYears(-25));
|
||||
worker = CreateDataModel(string.Empty, "John Doe", "1", "+7-777-777-77-77", DateTime.Now.AddYears(-25));
|
||||
Assert.That(() => worker.Validate(), Throws.TypeOf<ValidationException>());
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void IdIsNotGuidTest()
|
||||
{
|
||||
var worker = CreateDataModel("not-a-guid", "John Doe", Specializations.Plasterer, 50000, "+7-777-777-77-77", DateTime.Now.AddYears(-25));
|
||||
var worker = CreateDataModel("not-a-guid", "John Doe", "1", "+7-777-777-77-77", DateTime.Now.AddYears(-25));
|
||||
Assert.That(() => worker.Validate(), Throws.TypeOf<ValidationException>());
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void FIOIsEmptyTest()
|
||||
{
|
||||
var worker = CreateDataModel(Guid.NewGuid().ToString(), "", Specializations.Plasterer, 50000, "+7-777-777-77-77", DateTime.Now.AddYears(-25));
|
||||
var worker = CreateDataModel(Guid.NewGuid().ToString(), "", "1", "+7-777-777-77-77", DateTime.Now.AddYears(-25));
|
||||
Assert.That(() => worker.Validate(), Throws.TypeOf<ValidationException>());
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void SpecializationIsNoneTest()
|
||||
public void SpecializationIdIsNullOrEmptyTest()
|
||||
{
|
||||
var worker = CreateDataModel(Guid.NewGuid().ToString(), "John Doe", Specializations.None, 50000, "+7-777-777-77-77", DateTime.Now.AddYears(-25));
|
||||
var worker = CreateDataModel(Guid.NewGuid().ToString(), "John Doe", null, "+7-777-777-77-77", DateTime.Now.AddYears(-25));
|
||||
Assert.That(() => worker.Validate(), Throws.TypeOf<ValidationException>());
|
||||
|
||||
worker = CreateDataModel(Guid.NewGuid().ToString(), "John Doe", string.Empty, "+7-777-777-77-77", DateTime.Now.AddYears(-25));
|
||||
Assert.That(() => worker.Validate(), Throws.TypeOf<ValidationException>());
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void SpecializationIdIsNotGuidTest()
|
||||
{
|
||||
var worker = CreateDataModel("not-a-guid", "John Doe", "not-a-guid", "+7-777-777-77-77", DateTime.Now.AddYears(-25));
|
||||
Assert.That(() => worker.Validate(), Throws.TypeOf<ValidationException>());
|
||||
}
|
||||
|
||||
|
||||
[Test]
|
||||
public void PhoneNumberIsEmptyOrInvalidTest()
|
||||
{
|
||||
var worker = CreateDataModel(Guid.NewGuid().ToString(), "John Doe", Specializations.Plasterer, 50000, string.Empty, DateTime.Now.AddYears(-25));
|
||||
var worker = CreateDataModel(Guid.NewGuid().ToString(), "John Doe", "1", string.Empty, DateTime.Now.AddYears(-25));
|
||||
Assert.That(() => worker.Validate(), Throws.TypeOf<ValidationException>());
|
||||
|
||||
worker = CreateDataModel(Guid.NewGuid().ToString(), "John Doe", Specializations.Plasterer, 50000, "invalid-phone", DateTime.Now.AddYears(-25));
|
||||
worker = CreateDataModel(Guid.NewGuid().ToString(), "John Doe", "1", "invalid-phone", DateTime.Now.AddYears(-25));
|
||||
Assert.That(() => worker.Validate(), Throws.TypeOf<ValidationException>());
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void DateBirthDayIsTooYoungTest()
|
||||
{
|
||||
var worker = CreateDataModel(Guid.NewGuid().ToString(), "John Doe", Specializations.Plasterer, 50000, "+7-777-777-77-77", DateTime.Now.AddYears(-15));
|
||||
var worker = CreateDataModel(Guid.NewGuid().ToString(), "John Doe", "1", "+7-777-777-77-77", DateTime.Now.AddYears(-15));
|
||||
Assert.That(() => worker.Validate(), Throws.TypeOf<ValidationException>());
|
||||
}
|
||||
|
||||
@@ -60,25 +71,23 @@ internal class WorkerDataModelTests
|
||||
{
|
||||
var id = Guid.NewGuid().ToString();
|
||||
var fio = "John Doe";
|
||||
var specialization = Specializations.Plasterer;
|
||||
var salary = 50000;
|
||||
var specializationId = Guid.NewGuid().ToString();
|
||||
var phoneNumber = "+7-777-777-77-77";
|
||||
var dateBirthday = DateTime.Now.AddYears(-25);
|
||||
|
||||
var worker = CreateDataModel(id, fio, specialization, salary, phoneNumber, dateBirthday);
|
||||
var worker = CreateDataModel(id, fio, specializationId, phoneNumber, dateBirthday);
|
||||
Assert.That(() => worker.Validate(), Throws.Nothing);
|
||||
|
||||
Assert.Multiple(() =>
|
||||
{
|
||||
Assert.That(worker.Id, Is.EqualTo(id));
|
||||
Assert.That(worker.FIO, Is.EqualTo(fio));
|
||||
Assert.That(worker.Specialization, Is.EqualTo(specialization));
|
||||
Assert.That(worker.Salary, Is.EqualTo(salary));
|
||||
Assert.That(worker.SpecializationId, Is.EqualTo(specializationId));
|
||||
Assert.That(worker.PhoneNumber, Is.EqualTo(phoneNumber));
|
||||
Assert.That(worker.DateBirthDay, Is.EqualTo(dateBirthday));
|
||||
});
|
||||
}
|
||||
|
||||
private static WorkerDataModel CreateDataModel(string? id, string fio, Specializations specialization, double salary, string phoneNumber, DateTime dateBirthday)
|
||||
=> new(id, fio, specialization, salary, phoneNumber, dateBirthday);
|
||||
private static WorkerDataModel CreateDataModel(string? id, string fio, string specializationId, string phoneNumber, DateTime dateBirthday)
|
||||
=> new(id, fio, specializationId, phoneNumber, dateBirthday);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user