Files
Freman.Sample.Web/Freman.Sample.Web.UnitTests/Contracts/CreateNoteRequestTests.cs

46 lines
1.1 KiB
C#

using System.ComponentModel.DataAnnotations;
using Freman.Sample.Web.Contracts;
using Shouldly;
namespace Freman.Sample.Web.UnitTests.Contracts;
public class CreateNoteRequestTests
{
[Fact]
public void CreateNoteRequest_EmptyText_IsInvalid()
{
var model = new CreateNoteRequest { Text = "" };
var results = Validate(model);
results.Count.ShouldBeGreaterThan(0);
}
[Fact]
public void CreateNoteRequest_TooLong_IsInvalid()
{
var model = new CreateNoteRequest { Text = new string('a', 501) };
var results = Validate(model);
results.Count.ShouldBeGreaterThan(0);
}
[Fact]
public void CreateNoteRequest_NormalText_IsValid()
{
var model = new CreateNoteRequest { Text = "hello" };
var results = Validate(model);
results.Count.ShouldBe(0);
}
private static List<ValidationResult> Validate(object model)
{
var results = new List<ValidationResult>();
var ctx = new ValidationContext(model);
Validator.TryValidateObject(model, ctx, results, validateAllProperties: true);
return results;
}
}