Untitled
unknown
plain_text
a year ago
2.9 kB
3
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