mirror of https://github.com/abpframework/abp.git
14 changed files with 94 additions and 95 deletions
@ -0,0 +1,36 @@ |
|||
using System; |
|||
using System.Reflection; |
|||
using JetBrains.Annotations; |
|||
|
|||
namespace Volo.Abp.Data |
|||
{ |
|||
public class ConnectionStringNameAttribute : Attribute |
|||
{ |
|||
[NotNull] |
|||
public string Name { get; } |
|||
|
|||
public ConnectionStringNameAttribute([NotNull] string name) |
|||
{ |
|||
Check.NotNull(name, nameof(name)); |
|||
|
|||
Name = name; |
|||
} |
|||
|
|||
public static string GetConnStringName<T>() |
|||
{ |
|||
return GetConnStringName(typeof(T)); |
|||
} |
|||
|
|||
public static string GetConnStringName(Type type) |
|||
{ |
|||
var nameAttribute = type.GetTypeInfo().GetCustomAttribute<ConnectionStringNameAttribute>(); |
|||
|
|||
if (nameAttribute == null) |
|||
{ |
|||
return type.FullName; |
|||
} |
|||
|
|||
return nameAttribute.Name; |
|||
} |
|||
} |
|||
} |
|||
@ -1,37 +0,0 @@ |
|||
using System; |
|||
using System.Reflection; |
|||
using JetBrains.Annotations; |
|||
|
|||
namespace Volo.Abp.Data |
|||
{ |
|||
//TODO: Rename DatabaseNameAttribute to ConnectionStringNameAttribute
|
|||
public class DatabaseNameAttribute : Attribute |
|||
{ |
|||
[NotNull] |
|||
public string Name { get; } |
|||
|
|||
public DatabaseNameAttribute([NotNull] string name) |
|||
{ |
|||
Check.NotNull(name, nameof(name)); |
|||
|
|||
Name = name; |
|||
} |
|||
|
|||
public static string GetDatabaseName<T>() |
|||
{ |
|||
return GetDatabaseName(typeof(T)); |
|||
} |
|||
|
|||
public static string GetDatabaseName(Type type) |
|||
{ |
|||
var databaseNameAttribute = type.GetTypeInfo().GetCustomAttribute<DatabaseNameAttribute>(); |
|||
|
|||
if (databaseNameAttribute == null) |
|||
{ |
|||
return type.FullName; |
|||
} |
|||
|
|||
return databaseNameAttribute.Name; |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,34 @@ |
|||
using Shouldly; |
|||
using Xunit; |
|||
|
|||
namespace Volo.Abp.Data |
|||
{ |
|||
public class ConnectionStringNameAttribute_Tests |
|||
{ |
|||
[Fact] |
|||
public void Should_Get_Class_FullName_If_Not_ConnStringNameAttribute_Specified() |
|||
{ |
|||
ConnectionStringNameAttribute |
|||
.GetConnStringName<MyClassWithoutConnStringName>() |
|||
.ShouldBe(typeof(MyClassWithoutConnStringName).FullName); |
|||
} |
|||
|
|||
[Fact] |
|||
public void Should_Get_ConnStringName_If_Not_Specified() |
|||
{ |
|||
ConnectionStringNameAttribute |
|||
.GetConnStringName<MyClassWithConnStringName>() |
|||
.ShouldBe("MyDb"); |
|||
} |
|||
private class MyClassWithoutConnStringName |
|||
{ |
|||
|
|||
} |
|||
|
|||
[ConnectionStringName("MyDb")] |
|||
private class MyClassWithConnStringName |
|||
{ |
|||
|
|||
} |
|||
} |
|||
} |
|||
@ -1,34 +0,0 @@ |
|||
using Shouldly; |
|||
using Xunit; |
|||
|
|||
namespace Volo.Abp.Data |
|||
{ |
|||
public class DatabaseNameAttribute_Tests |
|||
{ |
|||
[Fact] |
|||
public void Should_Get_Class_FullName_If_Not_DatabaseNameAttribute_Specified() |
|||
{ |
|||
DatabaseNameAttribute |
|||
.GetDatabaseName<MyClassWithoutDatabaseName>() |
|||
.ShouldBe(typeof(MyClassWithoutDatabaseName).FullName); |
|||
} |
|||
|
|||
[Fact] |
|||
public void Should_Get_DatabaseName_If_Not_Specified() |
|||
{ |
|||
DatabaseNameAttribute |
|||
.GetDatabaseName<MyClassWithDatabaseName>() |
|||
.ShouldBe("MyDb"); |
|||
} |
|||
private class MyClassWithoutDatabaseName |
|||
{ |
|||
|
|||
} |
|||
|
|||
[DatabaseName("MyDb")] |
|||
private class MyClassWithDatabaseName |
|||
{ |
|||
|
|||
} |
|||
} |
|||
} |
|||
Loading…
Reference in new issue