//esta prueba contiene un contacto al que le faltan el nombre y el email, por lo que el validador deberia devolver una lista con dos errores solamente public void IsContactValid_ShoudlReturnMissingSome() { //este es contacto de prueba TempContact contact = new TempContact() { FirstName = "", LastName = "Perez", Company = "JuanPerez S.A.", Email = "", PhoneNumber = "11-1212-4455" }; //este es el valor esperado con el detalle de error correspondiente List <string> expected = new List <string>(); expected.Add(" el campo nombre no puede estar vacío "); expected.Add(" el campo correo electrónico no puede estar vacío"); List <string> actual = Validator.IsContactValid(contact); CollectionAssert.AreEqual(expected, actual); }
private void SetTempPerson(object contact) { currentContact = contact == null ? new Models.Contacts() { ID = Guid.NewGuid().ToString() } : contact as Models.Contacts; //TODO: Можно ли вместо создания нового прокси-контакта //присвоить занчение полю TemporaryContact (Проверить) var temporary = new ProxyContact(currentContact) { FirstName = currentContact.FirstName, LastName = currentContact.LastName, IsFavorite = currentContact.IsFavorite, Email = currentContact.Email, PhoneNumber = currentContact.PhoneNumber, GroupID = currentContact.GroupID, Validator = i => { var u = i as ProxyContact; if (string.IsNullOrEmpty(u.FirstName)) { u.Properties[nameof(u.FirstName)].Errors.Add("Firstname is required"); } if (string.IsNullOrEmpty(u.LastName)) { u.Properties[nameof(u.LastName)].Errors.Add("Lastname is required"); } else if (u.LastName.Length < 3) { u.Properties[nameof(u.LastName)].Errors.Add("Lastname must consist of minimum 3 characters"); } }, }; TempContact = temporary; TempContact.Validate(); }