Ajout des TU Pour GetSuccesses et GetSuccessesInquiryId

pull/40/head
Maxime SAPOUNTZIS 1 year ago
parent a3d9f7c2b7
commit 4df6eac1a0

@ -1,6 +1,6 @@
namespace Dto;
public class SuccessDTO
public class SuccessDTO : IEquatable<SuccessDTO>
{
public int UserId { get; set; }
public int InquiryId { get; set; }
@ -16,4 +16,38 @@ public class SuccessDTO
InquiryId = inquiryId;
IsFinished = isFinished;
}
public override string ToString()
{
return $"User :{UserId}\t Enquête : {InquiryId}\t{IsFinished}";
}
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 SuccessDTO);
}
public bool Equals(SuccessDTO other)
{
return (this.UserId == other.UserId && this.InquiryId == other.InquiryId);
}
public override int GetHashCode()
{
return UserId * InquiryId;
}
}

@ -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 SuccessIdEqualityComparer : EqualityComparer<SuccessDTO>
{
public override bool Equals(SuccessDTO x, SuccessDTO y)
{
return x.UserId == y.UserId && x.InquiryId == y.InquiryId;
}
public override int GetHashCode(SuccessDTO obj)
{
return obj.UserId * obj.InquiryId;
}
}
}

@ -48,8 +48,7 @@ namespace TestAPI
[Fact]
public void GetInquiresListFail()
{
var inquiriesList = GetInquiriesData();
inquiryService.Setup(x => x.GetInquiries(1, 3, 0))
inquiryService.Setup(x => x.GetInquiries(1, 4, 0))
.Returns(new List<InquiryDTO>());
var InquiryController = new InquiriesController(inquiryService.Object, new NullLogger<InquiriesController>());

@ -0,0 +1,155 @@
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 SuccessesUnitTest
{
private readonly Mock<ISuccessService<SuccessDTO>> sucessService;
public SuccessesUnitTest()
{
sucessService = new Mock<ISuccessService<SuccessDTO>>();
}
[Fact]
public void GetSuccessesListSuccess()
{
var successesList = GetSuccessesData();
sucessService.Setup(x => x.GetSuccesses(1, 4, 0))
.Returns(successesList);
var successesController = new SuccessesController(sucessService.Object, new NullLogger<SuccessesController>());
var successesResult = successesController.GetSuccesses(1, 4, 0);
if (successesResult is OkObjectResult okObjectResult)
{
var valeur = okObjectResult.Value;
Assert.NotNull(valeur);
Assert.Equal(GetSuccessesData().ToString(), valeur.ToString());
Assert.True(successesList.SequenceEqual(valeur as IEnumerable<SuccessDTO>, new SuccessIdEqualityComparer()));
}
}
[Fact]
public void GetSuccessesListFail()
{
sucessService.Setup(x => x.GetSuccesses(1, 4, 0))
.Returns(new List<SuccessDTO>());
var successesController = new SuccessesController(sucessService.Object, new NullLogger<SuccessesController>());
var successesResult = successesController.GetSuccesses(2, 3, 0);
if (successesResult is StatusCodeResult statusCodeResult && statusCodeResult.StatusCode == 204)
{
Assert.IsNotType<OkObjectResult>(successesResult);
}
}
[Fact]
public void GetSuccessInquiryIdSuccess()
{
var successesList = GetSuccessesData();
sucessService.Setup(x => x.GetSuccessesByInquiryId(1))
.Returns(new List<SuccessDTO> { successesList[0], successesList[1] });
var SuccessesController = new SuccessesController(sucessService.Object, new NullLogger<SuccessesController>());
var sucessesResult = SuccessesController.GetSuccessByInquiryId(1);
if (sucessesResult is OkObjectResult okObjectResult)
{
List<SuccessDTO> valeur = okObjectResult.Value as List<SuccessDTO>;
Assert.NotNull(valeur);
Assert.Equal(0, valeur[0].UserId);
Assert.Equal(1, valeur[0].InquiryId);
Assert.True(valeur[0].IsFinished);
Assert.Equal(1, valeur[1].UserId);
Assert.Equal(1, valeur[1].InquiryId);
Assert.True(valeur[1].IsFinished);
Assert.Equal(valeur[1].GetHashCode(), successesList[1].GetHashCode());
Assert.True(valeur[1].Equals(successesList[1]));
Assert.False(valeur.Equals(new object()));
Assert.IsType<SuccessDTO>(valeur[0]);
Assert.Contains(valeur[1], successesList);
}
}
[Fact]
public void GetSuccessInquiryIdFail()
{
var successesList = GetSuccessesData();
sucessService.Setup(x => x.GetSuccessesByInquiryId(1))
.Returns(new List<SuccessDTO> { successesList[0], successesList[1] });
var SuccessesController = new SuccessesController(sucessService.Object, new NullLogger<SuccessesController>());
var sucessesResult = SuccessesController.GetSuccessByInquiryId(100);
if (sucessesResult is NotFoundObjectResult NFObjectResult)
{
var valeur = NFObjectResult.Value;
Assert.NotNull(valeur);
Assert.IsNotType<SuccessDTO>(valeur);
Assert.DoesNotContain(valeur, successesList);
}
}
private List<SuccessDTO> GetSuccessesData()
{
List<SuccessDTO> successesData = new List<SuccessDTO>(4)
{
new (0,1,true),
new (1,1,true),
new (2,3,true),
new (3,4,true),
};
return successesData;
}
}
}

@ -47,7 +47,6 @@ namespace TestAPI
[Fact]
public void GetUserListFail()
{
var userList = GetUsersData();
userService.Setup(x => x.GetUsers(1, 4,0))
.Returns(new List<UserDTO>());
var UsersController = new UsersController(new NullLogger<UsersController>(), userService.Object);

Loading…
Cancel
Save