Ajout des TU GetLessons pour LessonController

pull/40/head
Maxime SAPOUNTZIS 1 year ago
parent 957e864770
commit 72808c98ba

@ -1,6 +1,6 @@
namespace Dto; namespace Dto;
public class LessonDTO public class LessonDTO : IEquatable<LessonDTO>
{ {
public int Id { get; } public int Id { get; }
public string? Title { get; set; } public string? Title { get; set; }
@ -26,4 +26,38 @@ public class LessonDTO
LastPublisher = lastPublisher; LastPublisher = lastPublisher;
LastEdit = lastEdit; LastEdit = lastEdit;
} }
public override string ToString()
{
return $"{Id}\t{Title}\t{LastPublisher}\t{LastEdit}";
}
public override bool Equals(object right)
{
if (object.ReferenceEquals(right, null))
{
return false;
}
if (object.ReferenceEquals(this, right))
{
return true;
}
if (this.GetType() != right.GetType())
{
return false;
}
return this.Equals(right as LessonDTO);
}
public bool Equals(LessonDTO other)
{
return (this.Id == other.Id);
}
public override int GetHashCode()
{
return Id;
}
} }

@ -0,0 +1,22 @@
using Dto;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace TestAPI.Extensions
{
class LessonIdEqualityComparer : EqualityComparer<LessonDTO>
{
public override bool Equals(LessonDTO x, LessonDTO y)
{
return x.Id == y.Id;
}
public override int GetHashCode(LessonDTO obj)
{
return obj.Id;
}
}
}

@ -0,0 +1,101 @@
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 LessonUnitTest
{
private readonly Mock<ILessonService<LessonDTO>> lessonService;
public LessonUnitTest()
{
lessonService = new Mock<ILessonService<LessonDTO>>();
}
[Fact]
public void GetLessonsListSuccess()
{
var lessonList = GetLessonsData();
lessonService.Setup(x => x.GetLessons(1, 4, 0))
.Returns(lessonList);
var LessonsController = new LessonsController(lessonService.Object, new NullLogger<LessonsController>());
var lessonsResult = LessonsController.GetLessons(1, 4, 0);
if (lessonsResult is OkObjectResult okObjectResult)
{
var valeur = okObjectResult.Value;
Assert.NotNull(valeur);
Assert.Equal(GetLessonsData().ToString(), valeur.ToString());
Assert.True(lessonList.SequenceEqual(valeur as IEnumerable<LessonDTO>, new LessonIdEqualityComparer()));
}
}
[Fact]
public void GetLessonsListFail()
{
lessonService.Setup(x => x.GetLessons(1, 4, 0))
.Returns(new List<LessonDTO>());
var LessonsController = new LessonsController(lessonService.Object, new NullLogger<LessonsController>());
var lessonsResult = LessonsController.GetLessons(2, 3, 0);
if (lessonsResult is StatusCodeResult statusCodeResult && statusCodeResult.StatusCode == 204)
{
Assert.IsNotType<OkObjectResult>(lessonsResult);
}
}
private List<LessonDTO> GetLessonsData()
{
List<LessonDTO> lessonsData = new List<LessonDTO>(4)
{
new (1,"Le titre", "Clément",new DateOnly(2024,03,10)),
new (2,"Pas titre", "Erwan",new DateOnly(2024,02,11)),
new (3,"Chiant la", "Une personne",new DateOnly(2012,12,25)),
new ("Les fleurs du mal", "Baudelaire",new DateOnly(1872,10,01)),
};
return lessonsData;
}
}
}

@ -279,34 +279,6 @@ namespace TestAPI
Assert.Equal(400, BDObjectResult.StatusCode); Assert.Equal(400, BDObjectResult.StatusCode);
} }
} }
private List<ParagraphDTO> GetParagraphsData() private List<ParagraphDTO> GetParagraphsData()
{ {
List<ParagraphDTO> paragraphsData = new List<ParagraphDTO>(4) List<ParagraphDTO> paragraphsData = new List<ParagraphDTO>(4)

Loading…
Cancel
Save