You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
253 lines
7.9 KiB
253 lines
7.9 KiB
using API.Controllers;
|
|
using Dto;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
using Microsoft.Extensions.Logging.Abstractions;
|
|
using Moq;
|
|
using Shared;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using TestAPI.Extensions;
|
|
|
|
namespace TestAPI
|
|
{
|
|
public class ParagraphsUnitTest
|
|
|
|
{
|
|
private readonly Mock<IParagraphService<ParagraphDTO>> paragraphService;
|
|
|
|
public ParagraphsUnitTest()
|
|
{
|
|
paragraphService = new Mock<IParagraphService<ParagraphDTO>>();
|
|
}
|
|
|
|
[Fact]
|
|
public void GetParagraphsListSuccess()
|
|
{
|
|
var paragraphsList = GetParagraphsData();
|
|
paragraphService.Setup(x => x.GetParagraphs(1, 4, 0))
|
|
.Returns(paragraphsList);
|
|
var ParagraphsController = new ParagraphsController(paragraphService.Object, new NullLogger<ParagraphsController>());
|
|
|
|
var paragraphsResult = ParagraphsController.GetParagraphs(1, 4, 0);
|
|
|
|
if (paragraphsResult is OkObjectResult okObjectResult)
|
|
{
|
|
var valeur = okObjectResult.Value;
|
|
|
|
Assert.NotNull(valeur);
|
|
Assert.Equal(GetParagraphsData().ToString(), valeur.ToString());
|
|
Assert.True(paragraphsList.SequenceEqual(valeur as IEnumerable<ParagraphDTO>, new ParagraphIdEqualityComparer()));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
[Fact]
|
|
public void GetParagraphsListFail()
|
|
{
|
|
paragraphService.Setup(x => x.GetParagraphs(1, 4, 0))
|
|
.Returns(new List<ParagraphDTO>());
|
|
var ParagraphsController = new ParagraphsController(paragraphService.Object, new NullLogger<ParagraphsController>());
|
|
|
|
var paragraphsResult = ParagraphsController.GetParagraphs(1, 4, 0);
|
|
|
|
if (paragraphsResult is StatusCodeResult statusCodeResult && statusCodeResult.StatusCode == 204)
|
|
|
|
{
|
|
|
|
Assert.IsNotType<OkObjectResult>(paragraphsResult);
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
[Fact]
|
|
public void GetParagraphIdSuccess()
|
|
{
|
|
var paragraphsList = GetParagraphsData();
|
|
paragraphService.Setup(x => x.GetParagraphById(1))
|
|
.Returns(paragraphsList[1]);
|
|
var ParagraphsController = new ParagraphsController(paragraphService.Object, new NullLogger<ParagraphsController>());
|
|
|
|
var paragraphsResult = ParagraphsController.GetParagraphById(1);
|
|
if (paragraphsResult is OkObjectResult okObjectResult)
|
|
{
|
|
ParagraphDTO valeur = okObjectResult.Value as ParagraphDTO;
|
|
|
|
Assert.NotNull(valeur);
|
|
Assert.Equal("Le titre", valeur.Title);
|
|
Assert.Equal("pas contenu", valeur.Content);
|
|
Assert.Equal("Pas d'infos ici", valeur.Info);
|
|
Assert.Equal("Delete * from Earth", valeur.Query);
|
|
Assert.Equal("Miam", valeur.Comment);
|
|
Assert.Equal(2, valeur.LessonId);
|
|
|
|
|
|
Assert.Equal(valeur.GetHashCode(), paragraphsList[1].GetHashCode());
|
|
Assert.True(valeur.Equals(paragraphsList[1]));
|
|
Assert.False(valeur.Equals(new object()));
|
|
Assert.True(valeur.Equals(valeur));
|
|
Assert.IsType<ParagraphDTO>(valeur);
|
|
Assert.Contains(valeur, paragraphsList);
|
|
}
|
|
|
|
}
|
|
|
|
[Fact]
|
|
public void GetParagraphIdFail()
|
|
{
|
|
var paragraphsList = GetParagraphsData();
|
|
paragraphService.Setup(x => x.GetParagraphById(1))
|
|
.Returns(paragraphsList[1]);
|
|
var ParagraphsController = new ParagraphsController(paragraphService.Object, new NullLogger<ParagraphsController>());
|
|
|
|
var paragraphsResult = ParagraphsController.GetParagraphById(100);
|
|
if (paragraphsResult is NotFoundObjectResult NFObjectResult)
|
|
{
|
|
var valeur = NFObjectResult.Value;
|
|
|
|
Assert.NotNull(valeur);
|
|
Assert.IsNotType<ParagraphDTO>(valeur);
|
|
Assert.DoesNotContain(valeur, paragraphsList);
|
|
}
|
|
|
|
}
|
|
|
|
|
|
[Fact]
|
|
public void GetParagraphTitleSuccess()
|
|
{
|
|
var paragraphsList = GetParagraphsData();
|
|
paragraphService.Setup(x => x.GetParagraphByTitle("Title"))
|
|
.Returns(paragraphsList[3]);
|
|
var ParagraphsController = new ParagraphsController(paragraphService.Object, new NullLogger<ParagraphsController>());
|
|
|
|
var paragraphsResult = ParagraphsController.GetParagraphByTitle("Title");
|
|
if (paragraphsResult is OkObjectResult okObjectResult)
|
|
{
|
|
ParagraphDTO valeur = okObjectResult.Value as ParagraphDTO;
|
|
|
|
Assert.NotNull(valeur);
|
|
Assert.Equal("Title", valeur.Title);
|
|
Assert.Equal("Content", valeur.Content);
|
|
Assert.Equal("Je ne parle pas anglais", valeur.Info);
|
|
Assert.Equal("Select select from select", valeur.Query);
|
|
Assert.Equal("Mais qui est ce commentaire", valeur.Comment);
|
|
Assert.Equal(3, valeur.LessonId);
|
|
Assert.IsType<ParagraphDTO>(valeur);
|
|
Assert.Contains(valeur, paragraphsList);
|
|
}
|
|
|
|
}
|
|
|
|
|
|
[Fact]
|
|
public void GetParagraphTitleFail()
|
|
{
|
|
var paragraphsList = GetParagraphsData();
|
|
paragraphService.Setup(x => x.GetParagraphByTitle("Title"))
|
|
.Returns(paragraphsList[3]);
|
|
var ParagraphsController = new ParagraphsController(paragraphService.Object, new NullLogger<ParagraphsController>());
|
|
|
|
var paragraphsResult = ParagraphsController.GetParagraphByTitle("IUHIUHU");
|
|
|
|
if (paragraphsResult is NotFoundObjectResult NFObjectResult)
|
|
{
|
|
var valeur = NFObjectResult.Value;
|
|
|
|
Assert.NotNull(valeur);
|
|
Assert.IsNotType<ParagraphDTO>(valeur);
|
|
Assert.DoesNotContain(valeur, paragraphsList);
|
|
Assert.False(paragraphsList == valeur);
|
|
}
|
|
}
|
|
|
|
|
|
[Fact]
|
|
public void DeleteParagraphSuccess()
|
|
{
|
|
paragraphService.Setup(x => x.DeleteParagraph(1))
|
|
.Returns(true);
|
|
var ParagraphsController = new ParagraphsController(paragraphService.Object, new NullLogger<ParagraphsController>());
|
|
|
|
var paragraphsResult = ParagraphsController.DeleteParagraph(1);
|
|
if (paragraphsResult is OkObjectResult okObjectResult)
|
|
{
|
|
bool valeur = (bool)okObjectResult.Value;
|
|
|
|
Assert.True(valeur);
|
|
}
|
|
|
|
}
|
|
|
|
|
|
[Fact]
|
|
public void DeleteParagraphFail()
|
|
{
|
|
paragraphService.Setup(x => x.DeleteParagraph(1))
|
|
.Returns(true);
|
|
var ParagraphsController = new ParagraphsController(paragraphService.Object, new NullLogger<ParagraphsController>());
|
|
|
|
var paragraphsResult = ParagraphsController.DeleteParagraph(100);
|
|
if (paragraphsResult is NotFoundObjectResult NFObjectResult)
|
|
{
|
|
Assert.Null(NFObjectResult.Value);
|
|
Assert.IsNotType<bool>(NFObjectResult.Value);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private List<ParagraphDTO> GetParagraphsData()
|
|
{
|
|
List<ParagraphDTO> paragraphsData = new List<ParagraphDTO>(4)
|
|
{
|
|
new (0,"Titre 1","Le contenu","Les infos de ce paragraphes sont ","Select * from C#","Le commentaire",1),
|
|
new (1,"Le titre","pas contenu","Pas d'infos ici","Delete * from Earth","Miam",2),
|
|
new (2,"Ceci n'est pas un titre","Certainement hmmm","OUOOOOO ","Autocommit = {true}","First",1),
|
|
new ("Title","Content","Je ne parle pas anglais","Select select from select","Mais qui est ce commentaire",3),
|
|
|
|
|
|
};
|
|
return paragraphsData;
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|