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()); manufacturer = CreateDataModel(string.Empty, "ManufacturerName"); Assert.That(() => manufacturer.Validate(), Throws.TypeOf()); } [Test] public void IdIsNotGuidTest() { var manufacturer = CreateDataModel("not-a-guid", "ManufacturerName"); Assert.That(() => manufacturer.Validate(), Throws.TypeOf()); } [Test] public void ManufacturerNameIsNullOrEmptyTest() { var manufacturer = CreateDataModel(Guid.NewGuid().ToString(), null); Assert.That(() => manufacturer.Validate(), Throws.TypeOf()); manufacturer = CreateDataModel(Guid.NewGuid().ToString(), string.Empty); Assert.That(() => manufacturer.Validate(), Throws.TypeOf()); } [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); }