using System.Collections.Generic; using Xunit; using adminBlazor.Models; using System.ComponentModel.DataAnnotations; namespace TestUnit { public class UserModel_UT { [Theory] //correct (minimal) [InlineData(true, 0, "password", null, "name", null, null, null)] //Email correct [InlineData(true, 0, "password", "test@example.com", "name", null, null, null)] //Surname correct [InlineData(true, 0, "password", null, "name", "surname", null, null)] //Nickname correct [InlineData(true, 0, "password", null, "name", null, "nickname", null)] //Group correct [InlineData(true, 0, "password", null, "name", null, null, 5)] //Password incorrect (required) [InlineData(false, 0, "", null, "name", null, null, null)] //Password incorrect (required) [InlineData(false, 0, null, null, "name", null, null, null)] //Password incorrect (too long) [InlineData(false, 0, "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", null, "name", null, null, null)] //Email incorrect (format) [InlineData(false, 0, "password", "test", "name", null, null, null)] //Name incorrect (required) [InlineData(false, 0, "password", null, "", null, null, null)] //Name incorrect (required) [InlineData(false, 0, "password", null, null, null, null, null)] //Name incorrect (too long) [InlineData(false, 0, "password", null, "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", null, null, null)] //Surname incorrect (too long) [InlineData(false, 0, "password", null, "name", "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", null, null)] //Nickname incorrect (too long) [InlineData(false, 0, "password", null, "name", null, "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", null)] //Group incorrect (range) [InlineData(false, 0, "password", null, "name", null, null, 5000)] public void UserModel_Validation(bool isValid, int id, string password, string email, string name, string surname, string nickname, int group) { var userModel = new UserModel { Id = id, Password = password, Email = email, Name = name , Surname = surname, Nickname = nickname, Group = group}; Assert.Equal(isValid, ValidateModel(userModel)); } public static bool ValidateModel(UserModel userModel) { var validationContext = new ValidationContext(userModel, serviceProvider: null, items: null); var validationResults = new List(); Validator.TryValidateObject(userModel, validationContext, validationResults, validateAllProperties: true); return !validationResults.Any(); } } }