From a1d43653fb874ce5b72cc16846ddd51897713825 Mon Sep 17 00:00:00 2001
From: hang <872297557@qq.com>
Date: Mon, 15 May 2023 14:47:06 +0800
Subject: [PATCH] x
---
.../Context/IRaCISDBContext.cs | 4 +
.../Repository/Repository.cs | 6 +-
IRaCIS.Core.Test/IRaCIS.Core.Test.csproj | 7 +-
IRaCIS.Core.Test/UnitTest1.cs | 171 ++++++++++++++++--
4 files changed, 170 insertions(+), 18 deletions(-)
diff --git a/IRaCIS.Core.Infra.EFCore/Context/IRaCISDBContext.cs b/IRaCIS.Core.Infra.EFCore/Context/IRaCISDBContext.cs
index a1c877d0..299c6ab3 100644
--- a/IRaCIS.Core.Infra.EFCore/Context/IRaCISDBContext.cs
+++ b/IRaCIS.Core.Infra.EFCore/Context/IRaCISDBContext.cs
@@ -41,6 +41,10 @@ namespace IRaCIS.Core.Infra.EFCore
//_configuration = configuration;
}
+ public IRaCISDBContext()
+ {
+
+ }
//比数据库上下文构造函数先执行 不能构造函数注入的方式使用配置文件
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
diff --git a/IRaCIS.Core.Infra.EFCore/Repository/Repository.cs b/IRaCIS.Core.Infra.EFCore/Repository/Repository.cs
index 586e9ea3..befa523f 100644
--- a/IRaCIS.Core.Infra.EFCore/Repository/Repository.cs
+++ b/IRaCIS.Core.Infra.EFCore/Repository/Repository.cs
@@ -47,7 +47,11 @@ namespace IRaCIS.Core.Infra.EFCore
}
-
+ public Repository(IRaCISDBContext dbContext )
+ {
+
+ _dbContext = dbContext;
+ }
#region 异步 EF 跟踪 添加
diff --git a/IRaCIS.Core.Test/IRaCIS.Core.Test.csproj b/IRaCIS.Core.Test/IRaCIS.Core.Test.csproj
index 5f49abc8..6b02ee5c 100644
--- a/IRaCIS.Core.Test/IRaCIS.Core.Test.csproj
+++ b/IRaCIS.Core.Test/IRaCIS.Core.Test.csproj
@@ -13,8 +13,9 @@
-
+
+
@@ -112,4 +113,8 @@
+
+
+
+
diff --git a/IRaCIS.Core.Test/UnitTest1.cs b/IRaCIS.Core.Test/UnitTest1.cs
index 1084bdf8..e1111b75 100644
--- a/IRaCIS.Core.Test/UnitTest1.cs
+++ b/IRaCIS.Core.Test/UnitTest1.cs
@@ -1,18 +1,157 @@
-//using NUnit.Framework;
+using AutoMapper;
+using IRaCIS.Core.Domain.Models;
+using IRaCIS.Core.Domain.Share;
+using IRaCIS.Core.Infra.EFCore;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.Extensions.Localization;
+using Moq;
+using NUnit.Framework;
+using NUnit.Framework.Interfaces;
+using System.Collections.Generic;
+using System.Linq;
+using System;
+using System.Threading.Tasks;
+using Microsoft.EntityFrameworkCore.Metadata;
+using Moq.EntityFrameworkCore;
+using System.Xml;
+using SharpCompress.Common;
-//namespace IRaCIS.Core.Test
-//{
-// public class Tests
-// {
-// [SetUp]
-// public void Setup()
-// {
-// }
+namespace IRaCIS.Core.Test
+{
+ [TestFixture]
+ public class RepositoryTests
+ {
+ private Repository _userRepository;
+ private Mock _mockDbContext;
+ private Mock> _mockSet;
+ private List _users;
-// [Test]
-// public void Test1()
-// {
-// Assert.Pass();
-// }
-// }
-//}
\ No newline at end of file
+ [SetUp]
+ public void Setup()
+ {
+ // Create a mock DbContext with an in-memory list of users
+ _users = new List
+ {
+ new User { UserName = "Alice" },
+ new User { UserName = "Bob" },
+ new User { UserName = "Charlie" }
+ };
+ _mockDbContext = new Mock();
+ _mockSet = new Mock>();
+ _mockSet.As>().Setup(m => m.Provider).Returns(_users.AsQueryable().Provider);
+ _mockSet.As>().Setup(m => m.Expression).Returns(_users.AsQueryable().Expression);
+ _mockSet.As>().Setup(m => m.ElementType).Returns(_users.AsQueryable().ElementType);
+ _mockSet.As>().Setup(m => m.GetEnumerator()).Returns(_users.GetEnumerator());
+
+ _mockDbContext.Setup(x => x.Set()).Returns(_mockSet.Object);
+ _userRepository = new Repository(_mockDbContext.Object);
+ }
+
+ [Test]
+ public void GetAll_ReturnsAllUsers()
+ {
+ // Act
+ var result = _userRepository._dbSet.ToList();
+
+ // Assert
+ Assert.AreEqual(_users.Count, result.Count);
+ CollectionAssert.AreEquivalent(_users, result);
+ }
+
+
+ [Test]
+ public async Task Test_Add()
+ {
+ var addEntity = new User { UserName = "test" };
+
+
+ //Act
+ await _userRepository.AddAsync(addEntity);
+
+ //Assert
+ _mockDbContext.Verify(x => x.Add(addEntity), Times.Once);
+
+
+
+ //Act
+
+ }
+
+
+
+ }
+ public class Tests
+ {
+ [SetUp]
+ public void Setup()
+ {
+ }
+
+ [Test]
+ public void Test1()
+ {
+ Assert.Pass();
+ }
+
+ public class MoqService
+ {
+
+ [Test]
+ public async Task testAdd()
+ {
+ var users = new List
+ {
+ new User { UserName = "test 1"},
+ new User {UserName = "Product 2"},
+ new User { UserName = "Product 3"}
+ };
+
+ //Arrange
+ var dbContext = new Mock();
+ dbContext.Setup(x => x.Set()).ReturnsDbSet(users);
+ var mapperMock = new Mock();
+ var userInfoMock = new Mock();
+ var localizerMock = new Mock();
+
+ var repository = new Repository(dbContext.Object, mapperMock.Object, userInfoMock.Object, localizerMock.Object);
+
+
+ var entity = new User { UserName = "Test Entity" };
+
+ //Act
+ await repository.AddAsync(entity);
+
+ //Assert
+ dbContext.Verify(x => x.Add(entity), Times.Once);
+ dbContext.Verify(x => x.SaveChanges(), Times.Once);
+ }
+
+ }
+
+ [Test]
+ public async Task Add_Success()
+ {
+ // Arrange
+ var mockSet = new Mock>();
+ var mockContext = new Mock();
+ mockContext.Setup(m => m.Set()).Returns(mockSet.Object);
+
+
+ var mapperMock = new Mock();
+ var userInfoMock = new Mock();
+ var localizerMock = new Mock();
+
+ var repository = new Repository(mockContext.Object, mapperMock.Object, userInfoMock.Object, localizerMock.Object);
+
+
+ var entity = new User { UserName = "Test Entity" };
+
+ //Act
+ await repository.AddAsync(entity);
+
+
+ // Assert
+ mockContext.Verify(x => x.Add(entity), Times.Once);
+ }
+ }
+}
\ No newline at end of file