AdoS0QualityDtosValidationTests.cs 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. using System.ComponentModel.DataAnnotations;
  2. using Admin.NET.Plugin.AiDOP.Dto.S0.Quality;
  3. using Xunit;
  4. namespace Admin.NET.Plugin.AiDOP.Tests.S0.Quality;
  5. public class AdoS0QualityDtosValidationTests
  6. {
  7. private static IReadOnlyList<ValidationResult> Validate(object model)
  8. {
  9. var context = new ValidationContext(model);
  10. var results = new List<ValidationResult>();
  11. Validator.TryValidateObject(model, context, results, validateAllProperties: true);
  12. return results;
  13. }
  14. [Fact]
  15. public void RawWhitelist_WhenSupplierFieldsMissing_ReturnsRequiredErrors()
  16. {
  17. var dto = new AdoS0QmsRawWhitelistUpsertDto
  18. {
  19. SupplierCode = "",
  20. SupplierName = ""
  21. };
  22. var results = Validate(dto);
  23. Assert.Contains(results, r => r.ErrorMessage == "供应商编码不能为空");
  24. Assert.Contains(results, r => r.ErrorMessage == "供应商名称不能为空");
  25. }
  26. [Theory]
  27. [InlineData(typeof(AdoS0QmsSamplingSchemeUpsertDto))]
  28. [InlineData(typeof(AdoS0QmsInspectionInstrumentUpsertDto))]
  29. [InlineData(typeof(AdoS0QmsInspectionMethodUpsertDto))]
  30. [InlineData(typeof(AdoS0QmsInspectionItemUpsertDto))]
  31. [InlineData(typeof(AdoS0QmsInspectionFrequencyUpsertDto))]
  32. [InlineData(typeof(AdoS0QmsInspectionBasisUpsertDto))]
  33. [InlineData(typeof(AdoS0QmsInspectionStandardUpsertDto))]
  34. [InlineData(typeof(AdoS0QmsInspectionPlanUpsertDto))]
  35. public void NumberNameDtos_WhenDefaultsUsed_ReturnRequiredErrors(Type dtoType)
  36. {
  37. var dto = Activator.CreateInstance(dtoType)!;
  38. var results = Validate(dto);
  39. Assert.Contains(results, r => r.ErrorMessage == "编号不能为空");
  40. Assert.Contains(results, r => r.ErrorMessage == "名称不能为空");
  41. }
  42. [Theory]
  43. [InlineData(typeof(AdoS0QmsRawInspectionSpecUpsertDto))]
  44. [InlineData(typeof(AdoS0QmsProcessInspectionSpecUpsertDto))]
  45. public void FileNumberDtos_WhenDefaultsUsed_ReturnRequiredError(Type dtoType)
  46. {
  47. var dto = Activator.CreateInstance(dtoType)!;
  48. var results = Validate(dto);
  49. Assert.Contains(results, r => r.ErrorMessage == "文件编号不能为空");
  50. }
  51. }