Files
Course/Test/ArticleTests.cs
2025-06-07 17:59:09 +04:00

71 lines
2.7 KiB
C#

using ClassLibrary1;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Test;
[TestFixture]
internal class ArticleTests
{
[Test]
public void IdIsNullOrEmptyTest()
{
var article = CreateArticle(null, Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), DateTime.UtcNow.AddDays(-1));
Assert.That(() => article.Validate(), Throws.TypeOf<ValidationException>());
article = CreateArticle(string.Empty, Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), DateTime.UtcNow.AddDays(-1));
Assert.That(() => article.Validate(), Throws.TypeOf<ValidationException>());
}
[Test]
public void IdIsNotGuidTest()
{
var article = CreateArticle("not-a-guid", Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), DateTime.UtcNow.AddDays(-1));
Assert.That(() => article.Validate(), Throws.TypeOf<ValidationException>());
}
[Test]
public void TitleIsNullOrEmptyTest()
{
var article = CreateArticle(Guid.NewGuid().ToString(), null, Guid.NewGuid().ToString(), DateTime.UtcNow.AddDays(-1));
Assert.That(() => article.Validate(), Throws.TypeOf<ValidationException>());
article = CreateArticle(Guid.NewGuid().ToString(), string.Empty, Guid.NewGuid().ToString(), DateTime.UtcNow.AddDays(-1));
Assert.That(() => article.Validate(), Throws.TypeOf<ValidationException>());
}
[Test]
public void TemaIsNullOrEmptyTest()
{
var article = CreateArticle(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), null, DateTime.UtcNow.AddDays(-1));
Assert.That(() => article.Validate(), Throws.TypeOf<ValidationException>());
article = CreateArticle(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), string.Empty, DateTime.UtcNow.AddDays(-1));
Assert.That(() => article.Validate(), Throws.TypeOf<ValidationException>());
}
[Test]
public void AllFieldsAreCorrectTest()
{
var id = Guid.NewGuid().ToString();
var title = Guid.NewGuid().ToString();
var tema = Guid.NewGuid().ToString();
var dateCreat = DateTime.UtcNow.AddDays(-1);
var article = CreateArticle(id, title, tema, dateCreat);
Assert.That(() => article.Validate(), Throws.Nothing);
Assert.Multiple(() =>
{
Assert.That(article.Id, Is.EqualTo(id));
Assert.That(article.Title, Is.EqualTo(title));
Assert.That(article.Tema, Is.EqualTo(tema));
Assert.That(article.DateCreat, Is.EqualTo(dateCreat));
});
}
private static Article CreateArticle(string? id, string? title, string? tema, DateTime dateCreat) =>
new(id, title, tema, dateCreat);
}