59 lines
2.3 KiB
C#

using NorthBridgeContracts.DataModels;
using NorthBridgeContracts.Exceptions;
namespace NorthBridgeTests.DataModelsTests;
[TestFixture]
internal class ManufacturerDataModelTests
{
[Test]
public void IdIsNullOrEmptyTest()
{
var manufacturer = CreateDataModel(null, "ManufacturerName");
Assert.That(() => manufacturer.Validate(), Throws.TypeOf<ValidationException>());
manufacturer = CreateDataModel(string.Empty, "ManufacturerName");
Assert.That(() => manufacturer.Validate(), Throws.TypeOf<ValidationException>());
}
[Test]
public void IdIsNotGuidTest()
{
var manufacturer = CreateDataModel("not-a-guid", "ManufacturerName");
Assert.That(() => manufacturer.Validate(), Throws.TypeOf<ValidationException>());
}
[Test]
public void ManufacturerNameIsNullOrEmptyTest()
{
var manufacturer = CreateDataModel(Guid.NewGuid().ToString(), null);
Assert.That(() => manufacturer.Validate(), Throws.TypeOf<ValidationException>());
manufacturer = CreateDataModel(Guid.NewGuid().ToString(), string.Empty);
Assert.That(() => manufacturer.Validate(), Throws.TypeOf<ValidationException>());
}
[Test]
public void AllFieldsAreCorrectTest()
{
var manufacturerId = Guid.NewGuid().ToString();
var manufacturerName = "ManufacturerName";
var prevManufacturerName = "PrevManufacturerName";
var prevPrevManufacturerName = "PrevPrevManufacturerName";
var manufacturer = CreateDataModel(manufacturerId, manufacturerName, prevManufacturerName, prevPrevManufacturerName);
Assert.That(() => manufacturer.Validate(), Throws.Nothing);
Assert.Multiple(() =>
{
Assert.That(manufacturer.Id, Is.EqualTo(manufacturerId));
Assert.That(manufacturer.ManufacturerName, Is.EqualTo(manufacturerName));
Assert.That(manufacturer.PrevManufacturerName, Is.EqualTo(prevManufacturerName));
Assert.That(manufacturer.PrevPrevManufacturerName, Is.EqualTo(prevPrevManufacturerName));
});
}
private static ManufacturerDataModel CreateDataModel(string? id, string? manufacturerName, string? prevManufacturerName = null, string? prevPrevManufacturerName = null) =>
new(id, manufacturerName, prevManufacturerName, prevPrevManufacturerName);
}