69 lines
2.5 KiB
C#
Raw Permalink Normal View History

2025-02-13 14:18:53 +04:00
using TwoFromTheCaseContracts.DataModels;
using TwoFromTheCaseContracts.Exceptions;
namespace TwoFromTheCaseTests.DataModelsTests;
[TestFixture]
class CustomerDataModelTests
{
[Test]
public void IdIsNullOrEmptyTest()
{
var customer = CreateDataModel(null, "name", "number");
Assert.That(() => customer.Validate(), Throws.TypeOf<ValidationException>());
customer = CreateDataModel(string.Empty, "name", "number");
Assert.That(() => customer.Validate(), Throws.TypeOf<ValidationException>());
}
[Test]
public void IdIsNotGuidTest()
{
var customer = CreateDataModel("id", "name", "number");
Assert.That(() => customer.Validate(), Throws.TypeOf<ValidationException>());
}
[Test]
public void FIOIsNullOrEmptyTest()
{
var customer = CreateDataModel(Guid.NewGuid().ToString(), null, "number");
Assert.That(() => customer.Validate(), Throws.TypeOf<ValidationException>());
customer = CreateDataModel(Guid.NewGuid().ToString(), string.Empty, "number");
Assert.That(() => customer.Validate(), Throws.TypeOf<ValidationException>());
}
[Test]
public void PhoneNumberIsNullOrEmptyTest()
{
var customer = CreateDataModel(Guid.NewGuid().ToString(), "name", null);
Assert.That(() => customer.Validate(), Throws.TypeOf<ValidationException>());
customer = CreateDataModel(Guid.NewGuid().ToString(), "name", string.Empty);
Assert.That(() => customer.Validate(), Throws.TypeOf<ValidationException>());
}
[Test]
public void PhoneNumberIsIncorrectTest()
{
var customer = CreateDataModel(Guid.NewGuid().ToString(), "name", "777");
Assert.That(() => customer.Validate(), Throws.TypeOf<ValidationException>());
}
[Test]
public void AllFieldsIsCorrectTest()
{
var customerId = Guid.NewGuid().ToString();
var name = "Name";
var phoneNumber = "+77777777777";
var customer = CreateDataModel(customerId, name, phoneNumber);
Assert.That(() => customer.Validate(), Throws.Nothing);
Assert.Multiple(() =>
{
Assert.That(customer.Id, Is.EqualTo(customerId));
Assert.That(customer.Name, Is.EqualTo(name));
Assert.That(customer.PhoneNumber, Is.EqualTo(phoneNumber));
});
}
private static CustomerDataModel CreateDataModel(string? id, string? name, string? phoneNumber) =>
new(id, name, phoneNumber);
}