using ElectricalRepairServiceContract.DataModels; using ElectricalRepairServiceContract.Exceptions; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ElectricalRepairServiceTests.DataModelsTests { [TestFixture] internal class ClientDataModelTest { [Test] public void IdIsNullOrEmptyTest() { var client = CreateDataModel(null, "fio", "email"); Assert.That(() => client.Validate(), Throws.TypeOf()); client = CreateDataModel(string.Empty, "fio", "email"); Assert.That(() => client.Validate(), Throws.TypeOf()); } [Test] public void IdIsNotGuid() { var client = CreateDataModel("id", "fio", "email"); Assert.That(() => client.Validate(), Throws.TypeOf()); } [Test] public void NameIsNullOrEmptty() { var client = CreateDataModel(Guid.NewGuid().ToString(), null, "email"); Assert.That(() => client.Validate(), Throws.TypeOf()); client = CreateDataModel(Guid.NewGuid().ToString(), string.Empty, "email"); Assert.That(() => client.Validate(), Throws.TypeOf()); } [Test] public void EmailIsNUllOrEmpty() { var client = CreateDataModel(Guid.NewGuid().ToString(), "fio", null); Assert.That(() => client.Validate(), Throws.TypeOf()); client = CreateDataModel(Guid.NewGuid().ToString(), "fio", string.Empty); Assert.That(() => client.Validate(), Throws.TypeOf()); } [Test] public void EmailInvalid() { var client = CreateDataModel(Guid.NewGuid().ToString(), "fio", "null"); Assert.That(() => client.Validate(), Throws.TypeOf()); } [Test] public void AllFieldsCorrect() { var id = Guid.NewGuid().ToString(); var fio = "fio"; var email = "some@gmail.com"; var client = CreateDataModel(id, fio, email); Assert.That(client.Id, Is.EqualTo(id)); Assert.That(client.Name, Is.EqualTo(fio)); Assert.That(client.Email, Is.EqualTo(email)); } private ClientDataModel CreateDataModel(string id, string name, string email) => new ClientDataModel(id, name, email); } }