using ElectricalRepairServiceContract.DataModels; using ElectricalRepairServiceContract.Exceptions; namespace ElectricalRepairServiceTests.DataModelsTests { [TestFixture] internal class DetailsUseDataModelTest { [Test] public void DetailsIdIsNullOrEmptyTest() { var detailsUse = CreateDataModel(null, Guid.NewGuid().ToString(), 1); Assert.That(() => detailsUse.Validate(), Throws.TypeOf()); detailsUse = CreateDataModel(string.Empty, Guid.NewGuid().ToString(), 1); Assert.That(() => detailsUse.Validate(), Throws.TypeOf()); } [Test] public void DetailsIdIsNotGuidTest() { var detailsUse = CreateDataModel("invalid-id", Guid.NewGuid().ToString(), 1); Assert.That(() => detailsUse.Validate(), Throws.TypeOf()); } [Test] public void RequestIdIsNullOrEmptyTest() { var detailsUse = CreateDataModel(Guid.NewGuid().ToString(), null, 1); Assert.That(() => detailsUse.Validate(), Throws.TypeOf()); detailsUse = CreateDataModel(Guid.NewGuid().ToString(), string.Empty, 1); Assert.That(() => detailsUse.Validate(), Throws.TypeOf()); } [Test] public void RequestIdIsNotGuidTest() { var detailsUse = CreateDataModel(Guid.NewGuid().ToString(), "invalid-id", 1); Assert.That(() => detailsUse.Validate(), Throws.TypeOf()); } [Test] public void CountIsZeroOrNegativeTest() { var detailsUse = CreateDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), -1); Assert.That(() => detailsUse.Validate(), Throws.TypeOf()); detailsUse = CreateDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 0); Assert.That(() => detailsUse.Validate(), Throws.TypeOf()); } [Test] public void AllFieldsCorrectTest() { var detailsId = Guid.NewGuid().ToString(); var requestId = Guid.NewGuid().ToString(); var count = 10; var detailsUse = CreateDataModel(detailsId, requestId, count); Assert.That(detailsUse.DetailsId, Is.EqualTo(detailsId)); Assert.That(detailsUse.RequestId, Is.EqualTo(requestId)); Assert.That(detailsUse.Count, Is.EqualTo(count)); } private DetailsUseDataModel CreateDataModel(string detailsId, string requestId, int count) => new DetailsUseDataModel(detailsId, requestId, count); } }