using SoftwareInstallationContracts.DataModels; using SoftwareInstallationContracts.Exceptions; namespace SoftwareInstallationTests.DataModelsTests; [TestFixture] internal class WarehouseDataModelTests { private WarehouseDataModel warehouse; [Test] public void IdIsEmptyTest() { warehouse = CreateDataModel(null, 10, DateTime.Now); Assert.That(() => warehouse.Validate(), Throws.TypeOf()); warehouse = CreateDataModel(string.Empty, 10, DateTime.Now); Assert.That(() => warehouse.Validate(), Throws.TypeOf()); } [Test] public void IdIsNotGuidTest() { warehouse = CreateDataModel("id", 10, DateTime.Now); Assert.That(() => warehouse.Validate(), Throws.TypeOf()); } [Test] public void TotalCountIsLessOrZeroTest() { warehouse = CreateDataModel(Guid.NewGuid().ToString(), 0, DateTime.Now); Assert.That(() => warehouse.Validate(), Throws.TypeOf()); warehouse = CreateDataModel(Guid.NewGuid().ToString(), -10, DateTime.Now); Assert.That(() => warehouse.Validate(), Throws.TypeOf()); } [Test] public void AllFieldsIsCorrectTest() { string warehouseId = Guid.NewGuid().ToString(); int totalCount = 10; DateTime date = DateTime.UtcNow; warehouse = CreateDataModel(warehouseId, totalCount, date); Assert.That(() => warehouse.Validate(), Throws.Nothing); Assert.Multiple(() => { Assert.That(warehouse.Id, Is.EqualTo(warehouseId)); Assert.That(warehouse.TotalCount, Is.EqualTo(totalCount)); Assert.That(warehouse.ChangeDate, Is.EqualTo(date)); }); } private static WarehouseDataModel CreateDataModel(string? id, int totalCount, DateTime date) => new(id, totalCount, date); }