using ElectricalRepairServiceContract.DataModels; using ElectricalRepairServiceContract.Exceptions; using NUnit.Framework; using System; namespace ElectricalRepairServiceTests.DataModelsTests { [TestFixture] internal class EmploeeDataModelTest { [Test] public void IdIsNullOrEmptyTest() { var employee = CreateDataModel(null, "ValidName", Guid.NewGuid().ToString()); Assert.That(() => employee.Validate(), Throws.TypeOf()); employee = CreateDataModel(string.Empty, "ValidName", Guid.NewGuid().ToString()); Assert.That(() => employee.Validate(), Throws.TypeOf()); } [Test] public void IdIsNotGuidTest() { var employee = CreateDataModel("invalid-id", "ValidName", Guid.NewGuid().ToString()); Assert.That(() => employee.Validate(), Throws.TypeOf()); } [Test] public void NameIsNullOrEmptyTest() { var employee = CreateDataModel(Guid.NewGuid().ToString(), null, Guid.NewGuid().ToString()); Assert.That(() => employee.Validate(), Throws.TypeOf()); employee = CreateDataModel(Guid.NewGuid().ToString(), string.Empty, Guid.NewGuid().ToString()); Assert.That(() => employee.Validate(), Throws.TypeOf()); } [Test] public void PostIdIsNullOrEmptyTest() { var employee = CreateDataModel(Guid.NewGuid().ToString(), "ValidName", null); Assert.That(() => employee.Validate(), Throws.TypeOf()); employee = CreateDataModel(Guid.NewGuid().ToString(), "ValidName", string.Empty); Assert.That(() => employee.Validate(), Throws.TypeOf()); } [Test] public void PostIdIsNotGuidTest() { var employee = CreateDataModel(Guid.NewGuid().ToString(), "ValidName", "invalid-post-id"); Assert.That(() => employee.Validate(), Throws.TypeOf()); } [Test] public void AllFieldsCorrectTest() { var id = Guid.NewGuid().ToString(); var name = "ValidName"; var postId = Guid.NewGuid().ToString(); var employee = CreateDataModel(id, name, postId); Assert.That(employee.Id, Is.EqualTo(id)); Assert.That(employee.Name, Is.EqualTo(name)); Assert.That(employee.PostId, Is.EqualTo(postId)); } private EmploeeDataModel CreateDataModel(string id, string name, string postId) => new EmploeeDataModel(id, name, postId); } }