Untitled
unknown
plain_text
2 years ago
2.9 kB
14
Indexable
using System.Collections.Generic;
using System.Linq;
using Microsoft.EntityFrameworkCore;
using Moq;
using Product_Stock_Maintenance.models;
namespace UnitTest
{
public static class DbSetExtensions
{
public static DbSet<T> ReturnsDbSet<T>(this Mock<TemplateContext> mockContext, List<T> list)
where T : class
{
var queryableList = list.AsQueryable();
var dbSetMock = new Mock<DbSet<T>>();
dbSetMock.As<IQueryable<T>>().Setup(m => m.Provider).Returns(queryableList.Provider);
dbSetMock.As<IQueryable<T>>().Setup(m => m.Expression).Returns(queryableList.Expression);
dbSetMock.As<IQueryable<T>>().Setup(m => m.ElementType).Returns(queryableList.ElementType);
dbSetMock.As<IQueryable<T>>().Setup(m => m.GetEnumerator()).Returns(() => queryableList.GetEnumerator());
mockContext.Setup(x => x.Set<T>()).Returns(dbSetMock.Object);
return dbSetMock.Object;
}
}
}
using Microsoft.AspNetCore.Mvc;
using Moq;
using NUnit.Framework;
using Product_Stock_Maintenance.models;
using ProductStockMaintenance.Controllers;
using ProductStockMaintenance.Repo;
using Microsoft.EntityFrameworkCore;
using static UnitTest.DbSetExtensions;
namespace UnitTest
{
[TestFixture]
public class RepoTest
{
public virtual DbSet<Categoryname> Categorynames { get; set; }
public virtual DbSet<Inventory> Inventories { get; set; }
public virtual DbSet<Login> Logins { get; set; }
private Repo Repo;
private Mock<TemplateContext> mockrepo;
[SetUp]
public void setup(){
mockrepo = new Mock<TemplateContext>();
Repo = new Repo(mockrepo.Object);
}
[Test]
public async Task Test(){
try{
var vaildUser = new Login {AdminId = 1 ,Username = "bharadwaj" , Password = "bharadwaj@123", AdminAccess = false};
var vaildAdmin = new Login {AdminId = 2,Username = "pavan" , Password = "pavan@123" , AdminAccess = true };
var loginlist =new List<Login> {vaildAdmin,vaildUser};
//mockrepo.Setup(x => x.Logins.FirstOrDefaultAsync(y => y.Username == "pavan" && y.Password == "pavan@123" )).ReturnsAsync(vaildAdmin);
mockrepo.Setup(x => x.Logins).ReturnsDbSet(loginlist);
var Result = await Repo.ValidateUser(vaildAdmin.Username,vaildAdmin.Password);
switch(Result){
case "Admin":
Assert.Pass();
break;
default:
Assert.Fail();
break;
}
}
catch(Exception){
Assert.Fail();
}
}
}
}Editor is loading...
Leave a Comment