46 lines
2.2 KiB
C#
46 lines
2.2 KiB
C#
namespace XUnitWebApi.SharedUtils
|
|
{
|
|
public static class TestHelper
|
|
{
|
|
public static IEnumerable<Type> GetAllRepositories(string namespaceName = "DAL.Repositories")
|
|
{
|
|
var types = AppDomain.CurrentDomain.GetAssemblies().SelectMany(t => t.GetTypes())
|
|
.Where(t => t.IsClass && !t.Name.StartsWith("<")
|
|
&& (t.Namespace == namespaceName || t.Namespace == "DAL.SharedRepositories")
|
|
);
|
|
return types;
|
|
}
|
|
|
|
public static dynamic GetApiController_BasedOn_BaseController(string controllerName, dynamic repository)
|
|
{
|
|
var typeList = AppDomain.CurrentDomain.GetAssemblies().SelectMany(t => t.GetTypes())
|
|
.Where(t => t.IsClass && !t.Name.StartsWith("<"))
|
|
.Where(t => t.Name.Contains("Controller"))
|
|
.Where(t => t.BaseType.Name.StartsWith("BaseController"))
|
|
.Where(t => controllerName == "" || t.Name == controllerName + "Controller");
|
|
//var entityTypes = typeList.ToList();
|
|
//var entityType = entityTypes.Where(t => controllerName == "" || t.Name.Contains(controllerName)).FirstOrDefault();
|
|
var entityType = typeList.FirstOrDefault();
|
|
if (entityType == default) return default;
|
|
Type type = entityType as Type;
|
|
dynamic instance = Activator.CreateInstance(type, new object[] { repository });
|
|
|
|
return instance;
|
|
}
|
|
|
|
public static dynamic GetRepository_BasedOn_BaseRepository(string repositoryName)
|
|
{
|
|
var typeList = AppDomain.CurrentDomain.GetAssemblies().SelectMany(t => t.GetTypes())
|
|
.Where(t => t.IsClass && !t.Name.StartsWith("<"))
|
|
.Where(t => repositoryName == "" || t.Name == repositoryName + "Repository")
|
|
.Where(t => t.Name.Contains("Repository"))
|
|
.Where(t => t.BaseType.Name.StartsWith("BaseRepository"));
|
|
var entityType = typeList.FirstOrDefault();
|
|
if (entityType == default) return default;
|
|
Type type = entityType as Type;
|
|
dynamic instance = Activator.CreateInstance(type);
|
|
|
|
return instance;
|
|
}
|
|
}
|
|
} |