69 lines
2.5 KiB
C#
69 lines
2.5 KiB
C#
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);
|
|
}
|